Haltech (v2 protocol)
Applies to: IOcan · Standalone controller. What this means
You have a ZF 8HP or a Porsche PDK to run and a Haltech Elite or Nexus managing the engine. This is the richest stream of any supported ECU, and the only one that sends a brake signal at all — as a pressure rather than a switch. The preset also transmits transmission state back, so the Haltech can display and log it.
This page covers the ECU side. The transmission side — which controller to add and which transmission preset to pair — is on the per-transmission pages (8HP · PDK).
Choosing between devices? Which device do I need? settles it in one question, and compares the IOcan CAN gateway with the standalone transmission controller.
Compatibility summary
| Preset name in the app | Haltech v2 |
| Torque broadcast | No |
| Injector pulse width | Yes |
| Recommended torque method | Fuel + Air (arbitrated) |
The preset belongs to the shared CAN layer, so it behaves the same behind the IOcan gateway drivers and the standalone transmission drivers.
The richest stream of any supported ECU — 29 input signals, and the only one that carries a brake signal, as brake pressure rather than a switch.
Because brake arrives as a pressure, decide the threshold at which it counts as 'pressed' and confirm the derived on/off state in the datalogger, not the raw value.
This preset also transmits back to the ECU. It sends gear, transmission temperature, cut and blip levels, next-gear RPM and shift mode on 0x2C1, 0x2C3 and 0x2C7, so the ECU can display and log transmission state without any hand-mapping. See what the device transmits.
What this preset does not provide
The OEM gateways require seven mandatory inputs — eight on PDK. This preset does not carry the following, so they must be supplied from a device input, another CAN preset, or hand-mapped CAN inputs:
- Vehicle speed
A missing mandatory input raises fault 0x0001 and the driver will not run,
so resolve these at the wiring stage rather than during commissioning. The full
set is on the
signal requirements matrix.
Signals this preset does provide: RPM, MAP, TPS, Pedal position, Oil temperature, Coolant temperature, Brake pressure, IAT, Fuel temperature, Lambda ×4, Injector PW (primary and secondary), Wheel speeds, Flex fuel
Target input shaft speed / clutch torque capacity outputs. assignable but not transmitted by the current entity
Wiring
- One CAN bus between the ECU and the device.
- The bitrate must match on both ends.
- Termination: exactly two 120 Ω terminators, one at each physical end — the device's is software-switchable, so enable it only if the device sits at an end. See CAN Bus Diagnostics.
- Twisted pair, routed away from ignition and injector wiring.
Setup
- Enable the CAN stream output in the ECU's own software, and note its base ID or configured frame set.
- Add a CAN bus in the device configuration, at the matching bitrate.
- Add the Haltech v2 preset to that bus.
- Assign the preset's signals to the inputs your controller needs.
- Supply the missing mandatory signals listed above.
- Choose a torque calculation method — see below.
- Set a Timeout and Timeout mode on every input feeding the torque
estimate.
UsePreviousholds a stale value forever and is the wrong choice on anything safety-relevant.
Torque signal setup and validation
No. This ECU does not broadcast engine torque, so the device must calculate it.
Recommended, in order:
- Fuel + Air (arbitrated) — injector pulse width is available in this stream, and this method cross-checks it against an air model, so an over-reading injector signal is caught.
- Air Model — if the injector signal proves unreliable.
Both need the engine parameters and, for a good estimate, the VE tables.
The full method reference, the correction maps and the all-or-nothing VE table warning are on Engine torque estimation.
Validate before driving. The torque value sets clutch pressure, nothing checks whether it is plausible, and under-reporting is the direction that slips and overheats clutches. On a gateway it also sets the depth of every shift cut, because the TCU's requested torque limit is rescaled against it.
Verification checklist
- [ ] RPM tracks the ECU's own RPM channel.
- [ ] TPS reads zero closed and full scale at wide-open throttle.
- [ ] MAP is plausible at idle and tracks load.
- [ ] Every signal from the "does not provide" list above is present and correct from its alternative source.
- [ ] Engine torque is present, changing, and passes the verification points.
- [ ] No mandatory-input faults are active.