TurboLamik to Haltech: Complete Integration and Signal Guide
A TurboLamik to Haltech link is two jobs running on one pair of CAN wires. The TCU has to receive engine data from the Haltech so it can work out engine torque, and it can send transmission data back to the Haltech for logging and display. The manual configures the first with CAN 2A Type CAR set to 8, and the second by making the TCU present itself as a Haltech I/O Expander on Send ID 704.
The two directions at a glance
| Direction | What moves | Where it is set | Manual value |
|---|---|---|---|
| Haltech into TCU | Engine stream used for torque calculation | TCU CAN settings: Can2A Type CAR | 8 |
| Haltech into TCU | Drive by wire status | TCU: Sensor Call. then Sensor Input | 13 for DBW, 0 otherwise |
| TCU out to Haltech | Transmission values as analogue channels | TCU Custom CAN TX | Send ID 704 |
| TCU out to Haltech | Scaling of those channels | TCU Custom CAN TX | Analogue CAN Out maximum 4095 |
| TCU out to Haltech | Turns the analogue frames on | TCU Custom CAN TX | Send ID+0: Set and Send ID+1: Set |
Step 1: turn on the engine feed from the Haltech
Three settings do the work on the engine side of the TCU.
| Setting | Value | Purpose |
|---|---|---|
| Can2A Type CAR | 8 | Tells the TCU to interpret the Haltech stream |
| Can2 Speed | 4 | The speed setting must match the bus the Haltech is on |
| Sensor Input (Sensor Call.) | 13 if the car is drive by wire, 0 if it is not | Sets where the TCU takes DBW status from |
The DBW line is easy to skip and it matters. If you are using drive by wire, set the Sensor Input to 13. If the car is not drive by wire, the manual says leave it at 0.
Step 2: make the TCU look like a Haltech I/O Expander
This is the part that surprises people. You do not build a custom receive template inside Haltech NSP for the transmission data. The TCU emulates a Haltech I/O Expander, and the Haltech then reads the values as analogue inputs.
| Setting | Value |
|---|---|
| Send ID | 704 |
| Analogue CAN Out maximum value | 4095 |
| Send ID+0 | Set |
| Send ID+1 | Set |
Two details are worth reading twice. First, Send ID+0 and Send ID+1 must both be set, because the analogue values are spread across the base ID and the frames immediately above it. Second, the Haltech page specifies 4095 as the top of the analogue scale. The manual's general description of the analogue CAN out channels gives a standard range of 0 to 5000, so the scale is not the same everywhere. For a Haltech build, use the 4095 the Haltech page lists.
The channels themselves are values you assign in the TCU software. Decide what you actually need before you start, because a Haltech I/O Expander only carries a small number of analogue channels.
Step 3: what the TCU already knows
The analogue channels are a window onto values the TCU is already computing. The transmit stream documents what is on the bus, and it is more than most builds use:
| Value on the TCU transmit stream | Unit or format |
|---|---|
| Gearbox calculated engine torque | Nm, signed 16 bit |
| Target engine torque (torque reduction) | Nm, signed 16 bit |
| Torque reduction percentage | 0.5 per bit, 0x00 none, 0xC8 is 100% |
| Current gear and target gear | -2 parking, -1 reverse, 0 neutral, 1 to 8 forward |
| Transmission oil temperature | 1 C per bit, offset -40 |
| Vehicle speed | scale 16, km/h |
| Gearbox program mode | 1 to 8 |
| Gearbox mode | 0 manual, 1 automatic, 2 sport |
| Lockup clutch activation | 0.4 per bit, 0xFA is 100% |
| Clutch slip and converter slip | per cent, signed, -200 to 200 |
| Input shaft speed and output shaft speed | rpm |
| Error code | unsigned 16 bit |
| Flags | torque reduction, blip request, t brake, launch control, burnout, gear shift, parking, neutral, hand brake, foot brake, adaptation, lockup state, oil fan, safe mode |
That list is what the TCU can report. Which of those you place on the four analogue channels is your call in the software.
Step 4: torque reduction on the Haltech side
The TCU can ask for a torque cut on a shift, but the Haltech has to be told to act on it. The manual's worked example is:
- Activate "Generic 1 Correction".
- Configure the axis so the correction is indexed by the signal you are sending.
- Build the torque reduction map inside the correction table.
The manual shows an example torque reduction map for that correction. Treat the shape of it as a starting point and tune it against how your car behaves on a shift, because the correction acts on the engine side.
The standalone torque warning
The manual puts the same warning at the top of both the Haltech and the Link pages: in standalone controllers, torque is not transmitted correctly over CAN bus, and the internal torque calculation in the TCU must be calibrated correctly.
That has a practical consequence. If the Haltech does not broadcast a torque value the TCU can trust, the TCU falls back on its own torque table, and that table is indexed by engine speed and manifold pressure. The base torque table is supplied as a starting point and has to be adjusted to reflect what your engine actually produces at a given manifold pressure. Rough shifting on a standalone is very often a torque table problem rather than a transmission problem.
If you have no MAP over CAN, the alternative in the manual is a MAP sensor wired to the TCU.
If the TCU parameters reset after you configure CAN
One specific failure mode is called out. If, after you configure the CAN bus, the parameters in the TCU flash or reset, it usually means there is a CAN frame conflict. The remedy the manual gives is to change the CAN address in the TCU and the ECU. Check for overlapping IDs before you start chasing anything else.
Frequently asked questions
Does the TCU need a custom CAN template inside Haltech NSP? No. It emulates a Haltech I/O Expander, so the template work happens in the TCU instead.
What CAN ID does the TCU transmit on to the Haltech? 704, with Send ID+0 and Send ID+1 both set.
Do I have to touch the DBW sensor input? Only if the car is drive by wire, in which case set it to 13. Otherwise the manual says leave it at 0.
What analogue maximum does the Haltech page use?
- The generic analogue CAN out range elsewhere in the manual is 0 to 5000, so do not assume they are interchangeable.
Will engine torque come over CAN from a standalone Haltech? The manual warns that it does not transmit correctly from standalone controllers, so expect to calibrate the TCU's internal torque calculation.
My TCU parameters reset after I set the bus up. What now? That points at a CAN frame conflict. Change the CAN address in the TCU and the ECU.
Next step
Tell us your engine, your Haltech model and which 8HP you are running, and we will go through the signal plan with you before you commit to an adapter or a controller. Compare the ZF 8HP controllers and harnesses we supply, then send your setup through. Getting the CAN exchange and the torque strategy settled first saves rework later.
Figures and configuration values in this article are taken from the TurboLamik official manual (manual.turbolamik.eu), Haltech and TCU stream pages, with ZF published data for the 8HP family.
Related 8HP.Shop Links
- TCU Controllers & Harnesses — current controller and harness options
- TurboLamik 8HP Integration — controller setup overview
- TurboLamik Australia — supply and build support
- CanTCU 8HP Controller — pinout, wiring and fitment guide
- TurboLamik Adaptations Guide — adaptation and learning notes
- ZF 8HP Gearboxes — current gearbox listings
- Contact 8HP.Shop — send your engine, ECU and gearbox code
Looking for the Haltech route? See the Haltech TCU transmission controller for the current listing and fitment notes.
