Receiving Data From a Link ECU Into Your 8HP Setup
Getting a Link ECU to feed an 8HP through a TurboLamik TCU means building one receive stream on the Link side and matching it on the TCU side. The manual's current receive stream, TCU standard 7, carries six live engine values and a set of request bits at 50 Hz, and it needs only two CAN identifiers: the base ID and the ID one above it.
What the TCU actually needs
The TCU needs four things: throttle position, brake pedal signal, RPM, and the torque the engine is making. A Link can supply all four over CAN.
RPM and PPS are described in the manual as necessary parameters. MAP is necessary only when the ECU does not send actual engine torque. If the Link does send actual engine torque, MAP is not used. Brake pedal arrives as a request bit in the second frame. Either the Link sends a torque value the TCU trusts, or the TCU calculates torque itself and needs MAP and RPM to do it.
The receive stream: TCU standard 7
The stream is two frames. All multi byte values are most significant byte first.
Base ID
| Offset | Parameter | Unit | Scale | Type | Rate |
|---|---|---|---|---|---|
| 0 | RPM | rpm | 1 | unsigned 16 | 50 Hz |
| 2 | MAP | kPa | 0.1 | unsigned 16 | 50 Hz |
| 4 | PPS | per cent | 0.1 | unsigned 16 | 50 Hz |
| 6 | Program SW | P1 to P8 | 1 | unsigned 8 | not stated |
| 7 | Virtual clutch | per cent, 0 to 100 | 1 | unsigned 8 | not stated |
Base ID plus one
| Offset | Parameter | Unit | Scale | Type | Rate |
|---|---|---|---|---|---|
| 0 | Actual engine torque | Nm, signed | 1 | signed 16 | 50 Hz |
| 2 | Maximum engine torque | Nm, signed | 1 | signed 16 | 50 Hz |
| 4 | Engine coolant temperature | 1 C per bit, offset -40 | 1 | unsigned 8 | 50 Hz |
| 5 bit 0 | Upshift request | flag | 1 | bit | 50 Hz |
| 5 bit 1 | Downshift request | flag | 1 | bit | 50 Hz |
| 5 bit 2 | Brake pedal activate | flag | 1 | bit | 50 Hz |
| 5 bit 3 | Idle active | flag | 1 | bit | 50 Hz |
| 5 bit 4 | Kickdown activate | flag | 1 | bit | 50 Hz |
| 5 bit 5 | Handbrake | flag | 1 | bit | 50 Hz |
| 6 | Selector commands | 0x00 none, 0x01 P, 0x02 R, 0x04 N, 0x08 D | 1 | byte | 50 Hz |
Byte 7 of the second frame, and bits 6 and 7 of byte 5, are unassigned in the manual.
Handing torque over to the TCU
The manual gives an explicit handoff: if the ECU does not calculate engine torque, send 0x8000 (-32768) or 0x7FFF (32767) in the actual engine torque slot, and the TCU activates its internal torque calculation.
So the torque slot is either a real number or a flag. Sending a plausible looking but wrong torque value is worse than sending the handoff code, because the TCU will build its shift strategy on a figure that does not reflect the engine. If you have no torque to send and no MAP over CAN, the fallback is a MAP sensor wired to the TCU.
Building the Link side to match
On the Link side you are configuring a transmit stream with the same layout and the same rates. Match three things:
| Item | What to match |
|---|---|
| CAN identifier | The base ID the TCU is listening on, plus one above it for the second frame |
| Rate | 50 Hz on the fast values, so the TCU sees RPM and PPS update quickly enough to shift on |
| Byte order and scaling | Multi byte values most significant byte first, MAP and PPS at 0.1 per bit |
Byte order matters as much as scaling. If the high and low bytes are swapped, the TCU reads a number that changes when RPM changes, which makes the fault look intermittent rather than structural. Check a known value first: hold a steady throttle and confirm the TCU reports a sane PPS.
The older receive stream
The manual also documents an earlier receive page, TCU standard 6. It is a single 8 byte frame:
| Offset | Parameter | Unit | Scale | Type |
|---|---|---|---|---|
| 0 | RPM | rpm | 1 | unsigned 16 |
| 2 | MAP | kPa | 1 | unsigned 16 |
| 4 | TPS (PPS) | per cent | 0.5 per bit | unsigned 8 |
| 5 | DBW | per cent | 0.5 per bit | unsigned 8 |
| 6 | Engine torque | Nm, signed | 1 | signed 16 |
The old stream has no selector commands, no upshift or downshift requests and no coolant temperature, and both MAP and throttle use a coarser scale: 1 kPa per bit and 0.5 per cent per bit against 0.1 for both in the current stream. It does have a dedicated DBW byte, which the current stream does not.
Verifying what the TCU sees
Work through this in order, and do not move on until each step is right:
- Confirm the TCU shows engine RPM and it tracks the engine as you rev it.
- Confirm PPS moves smoothly from zero to full travel with no jumps.
- Confirm MAP reads atmospheric with the engine off and drops under vacuum.
- Confirm the torque value reads sensibly, or that the TCU reports the internal calculation is active because you sent the handoff code.
If step one fails, nothing further will help. The manual's frame conflict note applies here too: if the parameters in the TCU reset after you configure the bus, suspect a CAN frame conflict and change the CAN address in the TCU and the ECU.
Frequently asked questions
Is MAP always required? No. If the Link sends actual engine torque, the manual states MAP is not used. If the Link does not send torque, MAP is necessary so the TCU can calculate torque itself.
What do I send if I have no torque figure? Send 0x8000 (-32768) or 0x7FFF (32767) in the actual engine torque slot. That tells the TCU to use its internal torque calculation.
How many CAN identifiers does the receive stream use? Two: the base ID and the base ID plus one. Both frames run at 50 Hz on the live values.
Why does my throttle reading look wrong? Check the scale first: the current stream uses 0.1 per bit for PPS, the older stream used 0.5. Then check that multi byte values are being sent most significant byte first.
Next step
Tell us your Link model, engine and gearbox combination, and we will go through the receive stream with you before you buy parts. Nailing down whether torque comes over CAN or gets calculated in the TCU is the decision that shapes everything else.
Stream definitions and parameter notes in this article are taken from the TurboLamik official manual (manual.turbolamik.eu), TCU standard 7 and Link G4/G5 pages, with ZF published data for the 8HP family.
Comparing controllers? The CanTCU 8HP controller pinout and wiring guide sets out the wiring, harness and fitment side of a CanTCU build.
