Why cruise control on an aftermarket ECU?
Events like Drag Week have turned race cars back into road cars. Hundreds of highway miles between tracks is miserable with your foot pinned at a steady throttle, especially in a car with a big turbo and a light pedal. Because a Haltech Elite with drive by wire already controls the throttle blade, it can hold a road speed for you, provided it has enough information to do it safely.
What you need before you start
Cruise control is one of the functions ESP won't let you finish setting up until its safety inputs exist. That's a good thing. Here's the list:
| Requirement | Why the ECU needs it |
|---|---|
| Drive by wire throttle | The ECU has to move the throttle itself. That limits cruise to the Elite 1500, Elite 2500 and the Elite PRO Plug-in (Barra) |
| Vehicle speed input | A transmission output sensor or a wheel speed sensor, so the ECU knows what it's holding |
| Brake pedal switch | Touching the brake must cancel cruise instantly |
| Gear detection or a neutral switch | Stops the system chasing speed out of gear |
| Clutch switch (manual) | Pressing the clutch cancels cruise so the engine can't flare |
| Gear selector position input (automatic) | The ECU needs to know the selector is in a drive range |
Miss one and ESP shows a red error explaining what's missing when you try to enable the function. If you still need to set these up, start with brake pedal switch, clutch switch, gear detection and the DBW wiring information. For speed, see vehicle speed sensors.
The three connections
Search for cruise control in the Main Setup and you'll find one input and two optional outputs:
- Input: how the driver's requests (on, off, set, faster, slower, and so on) reach the ECU.
- Enabled output: drives a light telling you the cruise system is switched on and ready.
- Active output: drives a light telling you cruise is controlling road speed right now.
The two outputs are handy on a dash, but only the input is required.
Option 1: CAN input
Some late model cars don't send button presses as a voltage at all. On a Ford Falcon with an Elite plug-in, for instance, the cruise buttons are messages on the car's CAN bus. Every manufacturer's messages are different, so the ECU has to be told which vehicle it's listening to. Go to the Devices tab, pick your car from the vehicle bus dropdown, and if it's listed the cruise requests come straight through.
Option 2: Analog buttons
If your car has no factory CAN bus (a '64 Nova, say) or Haltech doesn't support its protocol yet, you'll need a physical set of buttons. The easiest route is to borrow an OEM cruise stalk or steering wheel switch pack. These use a resistor ladder, so each button pulls the signal to a different voltage. Wiring is only two wires: a signal ground and a signal wire to the AVI you assign as the cruise input. Inside ESP, each voltage is then assigned a job.
Calibrating the buttons
There's no standard for how many buttons a cruise switch has, so ESP lets you describe up to six on the Buttons tab. Work through it in this order:
- Rest first. Every switch has a rest voltage when nothing is pressed. Leave the switch alone and click calibrate.
- Enable/disable next. Choose that function from the dropdown, hold the button and click calibrate.
- Everything else. For each remaining button, select its function, hold it down, and calibrate.
Turn on voltage tolerance and you can set how far from the calibrated voltage a reading may drift and still count as that button. Headlights, indicators and marginal grounds can all nudge the signal a little, and a sensible window stops phantom or missed presses.
One button, two jobs
A lot of factory switches share a button between set and accelerate. ESP handles this with a long press setting. We'd name it something like "Set / Accel / +", with a short press setting the current speed and holding it raising the target. Not sure what a field does? Hover over its name and click the question mark for ESP's built-in help.
Tuning the speed control
Once cruise is enabled, a group of cruise control maps appears in the mapping tree. The base maps come with sensible values, but a 200 hp car and a 2,000 hp car in the same body react very differently to the same throttle movement, so expect to tweak them.
| Map | What it does | Our advice |
|---|---|---|
| Max control error | Caps how much speed error the controller will act on | Leave at the base value until you have logs showing why it should move |
| Max throttle ramp-in rate | Limits how quickly cruise can open the throttle | Keep it gentle on high-power cars so a small speed drop doesn't become a surge |
| Proportional gain | How hard it reacts to the current error, so how fast it heads for the target | Raise it if the car is lazy getting back to speed |
| Integral gain | Works away the small error that remains once you're close | Raise it if the car settles a mile or two per hour off target |
| Derivative gain | Reacts to how quickly the error is changing | Small changes only, it's easy to make the throttle twitchy |
The gain maps are plotted against speed error, and the base values are shaped deliberately. When you're well off target, proportional and derivative do most of the work to close the gap fast. As the error shrinks they fade out and integral takes over to hold speed steady. Keep that shape when you edit. For a refresher on how the three terms interact, read our PID control mapping guide.
Worked example
Say you set 65 mph on a flat road and the car overshoots to 69, drops to 62, then slowly hunts. That's too much proportional gain or too fast a ramp-in rate. Take a little off, test again, and log speed, target and throttle angle together. If instead it creeps up to 63 and stays there, the proportional side is fine and integral is too weak.
Troubleshooting
| Symptom | Usually |
|---|---|
| Red error, can't enable cruise | A required input is missing: brake, clutch, gear/neutral, speed or DBW |
| Buttons do the wrong thing | Rest or button voltages calibrated out of order, or tolerance windows overlapping |
| Missed or phantom presses with lights on | Ground issue first. Then check the tolerance window: too tight misses presses, too wide overlaps neighboring buttons |
| Speed surges and hunts | Proportional gain or throttle ramp-in rate too high |
| Holds speed a little under target | Integral gain too low |
| CAN buttons ignored | Wrong vehicle selected on the Devices tab, or that car isn't supported |
Cruise control FAQ
Can I add cruise control to an Elite 750 or 1000?
No. Cruise needs the ECU to drive the throttle, and drive by wire is only available on the Elite 1500, Elite 2500 and Elite PRO Plug-in. An Elite 1500 is the smallest option.
Do I need a wheel speed sensor?
You need some speed signal. A transmission output sensor is fine for most street cars. See using ABS wheel speed sensors if that's easier on your car.
Is this the same on a Nexus?
The idea is the same, but the menus differ. See our Nexus cruise control article.




