Cerbera fly-by-wire throttle conversion (experimental)
Status — bench rig moving under PID control. Not in the car yet. No driving yet.
The Cerbera’s original throttle cable runs over the brake servo, around the steering column, and through the bulkhead at an awkward angle. It’s a notorious source of sticky throttles and is largely responsible for the “feels rubbery” complaint a lot of owners have. The plan: replace the cable half of the run with wires, a controller, and an electronic throttle body driving a short output cable — without disturbing the existing ITB linkage at all.
Architecture
Section titled “Architecture” cabin engine bay+---------------+ 6 wires +---------------------------+| Audi DBW | ─── 2 sensors + V+G ──▶ | Bosch DV-E5 throttle body || pedal | | (motor + position pot) |+---------------+ +---------------------------+ ▲ ▲ │ │ shaft → lever │ CABIN │ → Bowden cable │ +--------------------+ │ → ITB linkage │ | Raspberry Pi Pico | IN1 / IN2 │ └────▶ | (dual core) | 1 kHz PWM ─────▶│ | PID + safety loop │ │ +--------------------+ │ │ +─────────────────+ │ └───────────│ IBT-4 H-bridge │─┘ │ opto-isolated │ +─────────────────+Sometimes called “cable-output DBW” or “Bowden DBW” in motorsport. Used by some race teams when they want the side-effects of drive-by-wire (cruise, throttle map, anti-stall) without converting every ITB to its own DBW motor.
What we keep, what we change
Section titled “What we keep, what we change”| Component | Stock | This build |
|---|---|---|
| ITBs (intake throttle bodies) | Stay exactly as fitted | Untouched |
| Linkage between ITBs | Stays — keeps butterflies in sync | Untouched |
| Throttle cable from pedal | Removed | Replaced with wires + electronic throttle body |
| Pedal | Mechanical lever, sprung | Donor DBW pedal with dual Hall position sensors |
| Throttle servo | n/a | Donor electronic throttle body, shaft drives a lever via short Bowden |
| Mechanical return spring on linkage | Already there | Strengthened — it’s the master failsafe |
Why a “donor DBW throttle body” rather than a custom servo
Section titled “Why a “donor DBW throttle body” rather than a custom servo”Cruise-control actuators look tempting (they already have a Bowden cable output) but they’re designed for slow, gentle adjustments to track road speed. Best-case full-sweep time is around 250 ms — feels rubbery as a throttle. A modern factory Bosch electronic throttle body (DV-E5 family) hits 80–120 ms full sweep and is purpose-built to fight a return spring and atmospheric pressure all day. It’s also rated for engine-bay heat because it lives there from the factory.
We don’t dismantle the throttle body — the motor, gearbox and position sensors are all already inside it, bearings aligned and lubricated. We just bolt a lever to the external end of the throttle shaft and run a short Bowden cable from the lever to the ITB linkage. The butterfly inside the housing carries on spinning uselessly. It doesn’t care.
Parts list
Section titled “Parts list”| # | Part | What it does |
|---|---|---|
| 1 | DBW pedal assembly (donor: Audi A4 B7 2.0 TDI, part 8E2721523J) | Dual Hall sensors give pedal position with built-in cross-check |
| 1 | Electronic throttle body (donor: Vauxhall Z18XER, Bosch DV-E5 family) | Source of motor + planetary gearbox + 2-track position pot. Shaft modified with a lever for cable output |
| 1 | Raspberry Pi Pico (RP2040) | Brain. Dual core: control loop on one, safety + USB tuning on the other |
| 1 | IBT-4 H-bridge (BTS7960 + EG3013S gate drivers) | Opto-isolated H-bridge. Drives the throttle body motor at 1 kHz PWM from the Pico’s 3.3 V logic. 50 A continuous rating, onboard 5 V regulator |
| 1 | 12 V → 5 V automotive DC-DC | Powers Pico + sensors |
| 1 | TVS diode | Clamps load-dump spikes on the 12 V rail |
| 1 | Strong return spring | On the ITB linkage. Default state = closed. Master failsafe |
| ~ | Deutsch DT connectors, cable glands, sheathed automotive wire, sealed enclosure | The mundane but important stuff |
Note on the driver choice. The original design used a Pololu G2 18v17, but Uncle Mark (reverse-engineering the Cerbera Speed Six ECU on a parallel project) recommended the IBT-4 for optical isolation on the inputs — cleaner sensor readings in a noisy engine bay — and better headroom on current. Trade-off: no /SLP enable pin (we use both-IN-low for coast) and no current-sense output (a future ADS1115 can add that if needed).
Total bill of materials: ~£90 including the donor pedal and ETB from UK eBay breakers.
Safety architecture
Section titled “Safety architecture”The throttle is the one thing where “controller crashed” must equal “engine returns to idle.” Four independent layers, only one of them software:
- Mechanical return spring on the ITB linkage. Default state = closed. Master failsafe.
- IBT-4 coasts on idle inputs. The driver needs both inputs PWM-driven to push the motor. Both inputs low = coast = spring closes throttle. Lose power, lose signal, lose firmware — motor coasts. Anything that isn’t “actively driving” falls to idle.
- Stuck-linkage detector (firmware, ~5 ms latency). If the PID is commanding significant duty (>30%) but the position sensor isn’t responding within 500 ms, latch a fault and release the outputs. Catches seized cables, dead motors, stuck sensors, broken linkage.
- RP2040 hardware watchdog at 100 ms + software pedal cross-check every PID tick. Firmware hangs → chip resets → outputs float low → spring closes throttle. Meanwhile the two Hall sensors on the DBW pedal are cross-checked continuously; disagreement by more than ~5 % latches a fault.
Plus a “wait politely” firmware behaviour: if the throttle is sat open or the pedal is depressed when the operator tries to arm, the firmware refuses with waiting for throttle to be closed / waiting for pedal to be at idle instead of latching a hard fault. Has to start from a known-good state.
Every reset is logged with its reason (watchdog, brown-out, external reset, POR) via rp2040.getResetReason() — makes it trivial to spot if the safety net has been catching something during bench testing.
Side benefits
Section titled “Side benefits”Once the controller is in the loop, these things become essentially free (software, no extra hardware):
- Cruise control — Pico already knows pedal position, can hold a steady throttle independent of the foot.
- Programmable throttle map — make the first 20 % of pedal travel softer for traffic, then linear/aggressive at the top. Configurable from a laptop.
- Anti-stall — blip the throttle if RPM drops below a threshold.
- Rev limiter — throttle won’t open past X% if RPM is above Y.
- Pit-lane limiter (if you ever take it on a track).
These are the actual reasons race teams do this on cars that originally had cable throttles.
Status
Section titled “Status”| Design | Complete (architecture, safety, BOM, pinouts) |
| Pico firmware | v1 running — 200 Hz PID loop, 1 kHz PWM, dual core, hardware watchdog, config schema versioning + LittleFS persistence, runtime-tunable safety thresholds |
| Tuner (browser config tool) | Live at mattgreenworks.co.uk/tools/flybywire-tuner — WebSerial, four needle gauges, draggable throttle map editor, calibration capture, simulate mode |
| Bench rig | Working — motor moving under PID control from pedal input. Pedal + throttle body wired, calibrated, closed-loop |
| GitHub repo | Public — github.com/16vmini/cerbera-flybywire (firmware + tuner + wiring notes) |
| Formal failsafe testing | In progress — 10-point bench test plan, all must pass before car install |
| Install in car | Way off. Not until every bench failure mode demonstrably idles the throttle |
This is being built in public — the full build log lives on the mattgreenworks build page, and the tuner itself runs in the browser at mattgreenworks.co.uk/tools/flybywire-tuner (Chrome / Edge — WebSerial). Both firmware and tuner are MIT-licensed on GitHub.
Watch the build
Section titled “Watch the build”Filmed across the mattgreenworks YouTube channel as part of the Cerbera restoration arc.
- First signs of life on the bench — pedal reading through the tuner.
- Bench rig walkthrough — 2-min tour of the whole rig including the IBT-4 pivot.
Compiled from the in-progress build notes. Things will change as bench testing throws up real-world quirks. Don’t copy this design for a road car without doing your own safety analysis end-to-end.