What drive by wire actually changes
With a cable throttle, your foot moves the blade directly. With drive by wire (DBW), there is no mechanical link at all. An accelerator pedal position (APP) sensor tells the ECU what you're asking for, and the ECU drives an electric motor on the throttle body to open the blade to match. Because the ECU is in the middle, it can shape the pedal-to-throttle relationship, add air for idle control, hold the blade open for lift-off anti-lag, and refuse to open the throttle when something doesn't add up.
That last part is the reason DBW setup looks busy. OEM-style DBW hardware uses two sensors in the pedal and two in the throttle body. The Elite constantly compares each pair against each other, and runs a second, independent supervisor that cross-checks the main readings. If any check fails, the ECU stops powering the throttle motor. The blade then springs back to its rest position, which is a small fixed opening set by the throttle body's own design, not by the ECU. The car will limp, but the throttle can't run away.
Wiring the DBW system
The Elite expects each DBW signal on a specific input. Don't improvise here, because the DBW logic is tied to these pins.
| Signal | Elite input | Notes |
|---|---|---|
| Throttle position sensor 1 | AVI-2 | TPS 1 and TPS 2 can be swapped; calibration sorts it out |
| Throttle position sensor 2 | AVI-3 | |
| Pedal sensor 1 | AVI-4 | APP 1 and APP 2 can be swapped; calibration sorts it out |
| Pedal sensor 2 | AVI-5 | |
| Throttle motor | DBW-1 and DBW-2 | Polarity doesn't matter; direction is learned during calibration |
A few rules we treat as non-negotiable on every DBW install:
- The Elite powers every DBW sensor. Both the 5V supply and the signal ground for all four sensors must come from the Elite, and that 5V feed shouldn't be shared with any other ECU.
- Use Haltech signal ground only. Run sensor grounds back to the ECU's signal ground pins (B14, B15 and B16), not to the battery negative, the chassis or the engine block. Mixing grounds is the fastest way to get noisy readings and correlation faults.
- Remove the regular Throttle Position Sensor function. That function is for cable throttles. DBW uses its own sensor inputs, so leaving the old one enabled just confuses things.
- Leave AVI-10 alone. It's normally reserved for a cable throttle TPS and shouldn't carry any DBW sensor.
- Wire a brake pedal switch. It's optional, but it unlocks the brake-based throttle limit below, and we fit one on every DBW car we build. See brake pedal switch setup.
For pinouts and harness detail, see our notes on DBW throttle wiring and Elite 1500/2500 DBW wiring. If you're building from scratch, Haltech's Bosch DBW pedal and Bosch electronic throttle bodies are a well-proven pairing.
Calibrating the pedal and throttle
The Calibration tab walks you through this with an on-screen wizard. Do it in this order, with the engine off and the ignition on.
- Pedal (APP) calibration. With your foot completely off the pedal, click Calibrate so the ECU records 0%. Then push the pedal all the way to its stop, keep it there, and click Calibrate again. Don't let go until the process finishes. You should see Calibration Good.
- Throttle (TPS) calibration. Click Calibrate and keep your hands and tools away from the throttle body. The ECU sweeps the blade through a series of positions on its own. Internally this runs in three stages: a fast sweep to find the rest, closed and open limits, a slower detailed sweep to map the throttle, then a run check to confirm the blade can be positioned accurately with the new data.
- Pedal to throttle curve. The APP to TPS Calibration graph sets how much throttle you get for a given pedal position. Drag the two control dots to reshape it. Pulling the right-hand dot toward the left makes the response sharper, so less pedal gives more throttle. Changes take effect when you click Apply or OK.
Our starting point for the curve on a street car is a gentle, close to linear shape through the first part of the pedal travel. An aggressive curve feels exciting on the first drive and tiring on the hundredth, and it makes smooth part-throttle driving harder in traffic.
Throttle limits
| Setting | What it does | Our advice |
|---|---|---|
| Max TPS | The most throttle the ECU will ever command in normal driving | Normally full throttle. Lower it only as a deliberate power limit |
| Brake Pedal Check | Turns on the brake-based limit. Needs a wired and configured brake switch | Enable it whenever a brake switch is fitted |
| Max Braking TPS | Throttle ceiling while the brake is pressed. It overrides every other throttle request | Low enough that brake plus throttle can't produce big power. It also stops brake-held burnouts, if that's a concern |
| Vehicle Speed Check | Turns on the stationary limit. Needs a configured vehicle speed sensor | Useful on customer and valet-driven cars |
| Max Stopped TPS | Throttle ceiling while the car isn't moving | Enough to rev the engine for checks, not enough to abuse it |
Voltage limits and fault codes
The Diagnostics tab sets a minimum and maximum voltage for the throttle sensors and for the pedal sensors. A healthy sensor never reaches the very top or bottom of the 0 to 5V range, so a reading outside your window almost always means an open circuit, a short or a failing sensor. Set the limits just outside what each sensor reads at its real end stops, and log a few sweeps first so you know what those are.
When something goes wrong, the ECU logs a DTC. We've grouped them by what they point to:
| Codes | What they point to |
|---|---|
| P0227, P0228, P2122, P2123 | A throttle sensor voltage went below or above your Min/Max TPS Voltage limits (P0227/P0228 for sensor 1, P2122/P2123 for sensor 2) |
| P2127, P2128, P2132, P2133 | A pedal sensor voltage went outside your Min/Max APP Voltage limits |
| P2135, P2136 | The two throttle sensors stopped moving together (P2136 is the backup check) |
| P2138, P2139 | The two pedal sensors stopped moving together (P2139 is the backup check) |
| P1590, P1591, P1592, P1593 | The main ECU and the supervisor read different voltages from the same sensor (throttle sensors, then pedal sensors) |
| P2113, P2116 | The throttle isn't reaching the position the ECU is asking for |
| P2163, P2165 | After a tracking or correlation fault, the ECU has loosened its tolerances so the throttle can keep working |
| P061F | The motor has been driven at 100% duty for over 30 seconds, usually a sticking or obstructed throttle |
| P2109, P2166 | DBW has been shut down and the motor outputs switched off (P2166 means the backup system did it) |
| P2167, P2168 | The backup system found bad DBW settings or a pedal reading that disagrees with the main one |
| P2169 | Idle control is asking for more throttle offset than the DBW max position allows |
The channels worth logging
ESP exposes a long list of DBW channels. You don't need all of them day to day, but these are the ones we reach for first:
- DBW Engine Demand and DBW Throttle Position: what the ECU wants versus what the blade is doing. If they separate, you have a tracking problem.
- DBW Throttle Position Error: how far apart they are. The tracking DTC sets when this reaches 100%.
- Sensor 1 and 2 voltages, plus the Supervisor Voltage versions: compare the pairs to find which sensor or wire is misbehaving.
- Match Error channels: how close each disagreement is to setting a fault, also triggered at 100%.
- DBW Throttle Motor Duty Cycle: positive values open the throttle, negative values close it. Duty that's pinned high points to a mechanical bind.
- DBW Throttle Position Status and DBW Accelerator Pedal Position Status: 0 means normal, 7 means an error has disabled DBW, and the values in between flag calibration steps or early warnings of misalignment or tracking issues.
- DBW Throttle Calibration Status and the Pedal/Throttle Calibration Outcome channels: tell you which calibration step failed (range, regression or run check) or whether the last calibration was interrupted and not saved.
If DBW Engine Demand ever shows an internal error, contact Haltech with the error number, or get in touch with us and we'll help you report it.
Troubleshooting DBW
| Symptom | Usually |
|---|---|
| Throttle calibration fails at the first sweep | Motor not connected, throttle obstructed, or a TPS signal missing |
| Correlation codes that come and go | Sensor grounds not on Haltech signal ground, a shared 5V feed, or a loose pin |
| Supervisor mismatch codes | Noise or a poor connection on that specific sensor wire |
| Tracking error under load or when hot | Throttle body binding, carbon buildup, or a weak motor |
| Throttle won't open with the brake pressed | Working as intended if Brake Pedal Check is on |
| Engine idles high after enabling DBW | Idle control offset and rest position; see idle control |
For a deeper fault-finding routine, see how to diagnose DBW issues. Once DBW is solid, it's also the foundation for anti-lag and rotational idle.
Drive by wire FAQ
Can I use a throttle body or pedal with only one sensor?
No. The Elite's DBW safety logic depends on two sensors in the pedal and two in the throttle, so it can catch a failed sensor before it causes an unwanted opening.
Why does the throttle sit slightly open with the engine off?
That's the throttle body's rest position. When the motor isn't powered, a spring holds the blade at a small fixed opening. The ECU can't change it, and it's also where the throttle goes if DBW is shut down by a fault.
Do I need to recalibrate after swapping a throttle body?
Yes. Run the throttle calibration again any time the throttle body, its sensors or its wiring change, and redo the pedal calibration if the pedal is touched.




