TurboLamik TCU and Haltech Setup Guide

Technical Library › Tuning tips and guidesUpdated Oct 2026

Running a ZF 8HP on a TurboLamik controller behind a Haltech? This is the whole setup in order: what the TCU needs, the exact CAN settings on both sides, gear position, upshift torque reduction, and the torque table that makes or breaks shift quality.

The short version

The TurboLamik TCU runs the ZF 8HP; your Haltech keeps running the engine. The TCU pretends to be a Haltech I/O expander box on CAN, which is how gear position and a torque reduction request get into the Haltech. Because a standalone ECU can't hand the TCU an accurate engine torque number, the TCU works torque out from manifold pressure, and that torque table has to be right or shifts will be rough.

Before you touch a laptop

Check off these four things first. If any of them is missing, nothing below will work properly.

  1. The mechatronics is converted. The 8HP's internal controller board has to be swapped for TurboLamik's board. It's delicate soldering work, and TurboLamik will do it for you if you send the unit in. Our 8HP and TurboLamik overview covers this step.
  2. The TCU can see four engine signals: throttle position, the brake pedal, engine RPM and engine load (torque). They can arrive as wired analog inputs or over CAN.
  3. The TCU has a MAP signal. On a Haltech build the TCU calculates torque from boost/vacuum, so either wire a MAP sensor straight to the TCU or pick MAP up from CAN (in TunerPro that's MAP input 13).
  4. You have a way to choose gears: a supported CAN shifter, paddles or a DCT-style shifter, or an analog selector or switch.

Step 1: Set up the TCU (TunerPro RT)

Open your TCU file in TunerPro RT. Everything CAN-related lives under CAN › Can2 (Engine) in the parameter tree; the custom transmit settings are in Custom Can TX.

SettingValueWhat it does
Sensor Call. › Sensor Input (DBW input)13 with drive-by-wire, 0 withoutDrive-by-wire input source; leave it at 0 on a cable throttle
Can2A Type CAR8Engine-side CAN type TurboLamik specifies for Haltech
Can2 Speed4Engine CAN bus speed setting TurboLamik specifies for Haltech
Custom Can TX › Send ID704 (decimal)Base ID for the messages the Haltech reads as an expander box
Send ID+0 and Send ID+1Both ticked (Set)Turns on the two messages that carry the analog channels
Analog Can Out maximum value4095 on all eight channelsFull scale, so 0-5 V in the Haltech covers the whole range
Analog Can Out (channels 1-4)TurboLamik's example uses 13, 14, 18, 25Picks which TCU value goes out on each virtual analog input

In TurboLamik's example, analog channel 2 is the gear position and channel 3 is the torque reduction request. On the Haltech they show up as I/O Box A analog inputs 2 and 3, which is how the steps below use them.

Step 2: Turn on the expander boxes in the Haltech (NSP)

  1. Go to Haltech CAN System (see our Haltech CAN System article).
  2. Under Input/Output Expander Boxes, enable I/O Expander 12 (Box A) and I/O Expander 12 (Box B). Leave DTC Severity at None unless you want a warning when the TCU drops off the bus.
  3. Write the change and power cycle. Box A's analog inputs (IOA AVI 1-4) should now appear when you assign inputs, with live voltages showing.
Already running a real I/O box?

If an actual IO12 box already uses Box A, the two will fight over the same CAN ID. Settings that flash or flicker in the TCU after you set up CAN are the classic symptom. Move one of them to a different address in both the TCU and the ECU.

Step 3: Gear position

Go to Transmission and set:

  • Transmission Type: Auto with separate controller
  • Drive Type: whatever your car is (the example is Rear Wheel Drive)
  • Number of Forward Gears: 8
  • Gear Detection Type: Gear Position Sensor
  • Enable the Gear Ratio function

Then in Gear Detection Wiring, assign Gear Voltage Input to IOA AVI 2 and leave Pull Up on Disable. In Gear Detection Position, enter the voltage the TCU sends for each gear:

GearNominal voltageTolerance
Reverse (enable it)0.00 V0.10 V
Neutral0.50 V0.10 V
1st1.00 V0.10 V
2nd1.50 V0.10 V
3rd2.00 V0.10 V
4th2.50 V0.10 V
5th3.00 V0.10 V
6th3.50 V0.10 V
7th and 8thKeep going in 0.5 V steps0.10 V

TurboLamik's screenshot stops at 6th, so confirm 7th and 8th against the live IOA AVI 2 voltage, or use the Calibrate button in each gear. More on these settings in Gear Detection and Gear Ratios.

Step 4: Torque reduction during upshifts

When the TCU wants torque pulled for an upshift, it raises the voltage on IOA AVI 3. TurboLamik uses an ignition Generic Correction to turn that voltage into timing retard:

  1. Go to Ignition Tuning › Corrections and enable Generic 1 Correction.
  2. Set the table's first axis to IOA AVI3 V with breakpoints 0, 2.5 and 5.0 volts.
  3. Set the second axis to Base Ignition Angle (TurboLamik uses -10° to 50° in 10° steps).
  4. Fill the table so 0 V removes nothing, 2.5 V pulls a share of the timing, and 5 V pulls a lot.

In TurboLamik's example the 0 V column is all zeros, the 5 V column is -60° everywhere, and at 2.5 V the retard grows with the base timing (for example -8° at 10° base and -40° at 50° base). Treat that as a shape to start from, not a finished map, and check in your logs that the cut lands where the TCU asks for it.

Step 5: Teach the TCU your engine's torque

This is the step people skip, and it's the usual cause of harsh or slipping shifts. A standalone ECU doesn't send a trustworthy torque value, so the TCU estimates it from MAP using a base torque table you have to scale to your engine.

  1. In TunerPro, open Torque Calculation, enable Automatic detection of torque calculation input and set Torque Calculation Input to 0.
  2. Pick the Base Torque Table RPM/MAP that uses the torque units you like.
  3. Scale the whole table to your engine. Divide your engine's peak torque by the table's peak value, select every cell and multiply by that number. That table only covers up to atmospheric pressure; a separate pressure-to-torque multiplier handles boost, and it usually doesn't need changing.
  4. Save and upload to the TCU.
  5. Start the engine. At idle with no load, the TCU's engine torque reading should sit around 10-20 Nm (7-15 lb-ft). Turn on data tracing in TunerPro so you can see which cells you're in, and nudge them until it does.
  6. Repeat the check holding steady at about 3,000 rpm and 5,000 rpm with no load.
  7. Look at the table in 3D and smooth out any spikes. Big cams and rotaries may need larger changes.
  8. Drive gently first and make sure shifts are smooth and the clutches aren't slipping for a long time.

Step 6: Brake and paddles

The TCU needs the brake pedal signal, either from CAN or wired to the TCU. Paddles are wired as ground-switched inputs on the TCU's analog inputs 11 and 12, which are enabled by default. With paddles as your only shifter:

To getDo this
Drive (first gear)Hold the brake and pull upshift
ReverseHold the brake and pull downshift twice
ParkHold the brake and hold downshift for 2 seconds

If you also have a CAN shifter (BMW, Dodge, a CAN keypad), the shifter is in charge of P/R/N/D and the paddles only request up and down shifts while you're in a forward gear.

Our tip: split each paddle wire and run it to a spare Haltech input as well, set up with Paddle Shift Inputs. The ECU then sees the shift request at the same instant as the TCU, which keeps flat shift cut and blip timing tight.

Troubleshooting

SymptomUsually
Values flash or flicker in the TCU after CAN setupTwo devices on the same CAN ID. Change the address in the TCU and the ECU.
No IOA AVI channels in the HaltechBox A not enabled in Haltech CAN System, Send ID not 704, Send ID+0/+1 not ticked, or bus speed mismatch
Haltech shows the wrong gearGear voltages or tolerance off; recalibrate each gear against the live voltage
Harsh, slow or slipping shiftsTorque table not scaled to the engine (Step 5)
Won't go into gear on paddlesNo brake signal reaching the TCU

FAQ

Do I need a real Haltech I/O box?

No. The TurboLamik imitates one over CAN. You only enable the box in the Haltech software.

Can I get more than gear and torque reduction into the Haltech?

Yes. The expander-box method gives you up to eight analog channels; Haltech's generic CAN lets you bring in everything the TCU broadcasts. See our CAN bus overview.

Can you set this up for me?

Yes. Book a free consultation and we'll help plan the wiring and setup for your 8HP swap. Running a CANTCU instead? See our CANTCU and Haltech setup guide.