12 Sep 2026

TurboLamik CAN Stream Reference: v1 and v2 Transmit and Receive

TurboLamik CAN Stream Reference: v1 and v2 Transmit and Receive

There are two generations of TurboLamik CAN stream, and mixing them up is the most common reason a can bus integration does not work. The v1 generation is a single receive frame and a transmit set built around four configurable analogue values plus one status frame. The v2 generation splits the same job across four transmit frames and two receive frames, and moves the values into engineering units with named parameters.

This page collects all four stream definitions in one place so you can map them into any ECU with open CAN settings.

The four stream pages

Page in the manual Direction Generation Default base ID
TCU stream v1 TX ("send") TCU to ECU v1 H640, configurable
TCU stream v1 RX (TCU standard 6) ECU to TCU v1 H600, configurable
TCU stream v2 TX TCU to ECU v2 not stated on the page
TCU stream v2 RX (TCU standard 7) ECU to TCU v2 not stated on the page

On the v2 pages the base ID is simply written as BaseTX ID or BaseRX ID. The frames then sit at the base ID, base ID plus one, and so on.

v2 transmit: four frames

All values are most significant byte first. The rate column is straight from the manual.

Frame Offset Name Unit Scale Type Rate
BaseTX ID 0 Gearbox calculated engine torque Nm 1 signed 16 100 Hz
BaseTX ID 2 Target engine torque (torque reduction) Nm 1 signed 16 100 Hz
BaseTX ID 4 Torque reduction per cent 0.5 unsigned 8 100 Hz
BaseTX ID 5 bit 0 Torque reduction flag flag bit bit 100 Hz
BaseTX ID 5 bit 1 Blip request flag bit bit 100 Hz
BaseTX ID 5 bit 2 T brake activation flag bit bit 100 Hz
BaseTX ID 5 bit 3 Launch control activation flag bit bit 100 Hz
BaseTX ID 5 bit 4 T brake or launch control activation flag bit bit 100 Hz
BaseTX ID 5 bit 5 Burnout activation flag bit bit 100 Hz
BaseTX ID 5 bit 6 Gear shift flag flag bit bit 100 Hz
BaseTX ID 5 bit 7 unassigned 100 Hz
BaseTX ID 6, 7 unassigned 100 Hz
BaseTX ID+1 0 Current gear gear 1 signed 8 40 Hz
BaseTX ID+1 1 Target gear gear 1 signed 8 40 Hz
BaseTX ID+1 2 bit 0 Parking activation flag bit bit 40 Hz
BaseTX ID+1 2 bit 1 Neutral flag bit bit 40 Hz
BaseTX ID+1 2 bit 2 Hand brake activation flag bit bit 40 Hz
BaseTX ID+1 2 bit 3 Foot brake activation flag bit bit 40 Hz
BaseTX ID+1 2 bit 4 Adaptation activation flag bit bit 40 Hz
BaseTX ID+1 2 bit 5 Converter lockup state flag bit bit 40 Hz
BaseTX ID+1 2 bit 6 Gearbox oil fan activate flag bit bit 40 Hz
BaseTX ID+1 2 bit 7 Safe mode activation flag bit bit 40 Hz
BaseTX ID+1 3 unassigned 40 Hz
BaseTX ID+1 4 Wheel torque Nm 1 signed 16 40 Hz
BaseTX ID+2 0 Gearbox program mode program 1 unsigned 8 20 Hz
BaseTX ID+2 1 Gearbox mode 1 unsigned 8 20 Hz
BaseTX ID+2 2 Lockup clutch activation per cent 0.4 unsigned 8 20 Hz
BaseTX ID+2 3 Transmission oil temperature 1 C per bit 1 unsigned 8 20 Hz
BaseTX ID+2 4 Vehicle speed km/h 16 unsigned 16 20 Hz
BaseTX ID+2 6 Error code unsigned 16 20 Hz
BaseTX ID+3 0 Gearbox clutch slip per cent 1 signed 16 100 Hz
BaseTX ID+3 2 Gearbox converter slip per cent 1 signed 16 100 Hz
BaseTX ID+3 4 Input shaft speed rpm 1 unsigned 16 100 Hz
BaseTX ID+3 6 Output shaft speed rpm 1 unsigned 16 100 Hz

Notes that matter when you map these:

  • Current gear and target gear encode -2 for parking, -1 for reverse, 0 for neutral and 1 to 8 for forward gears.
  • Gearbox program mode encodes 1 for P1 through 8 for P8. Gearbox mode encodes 0 for manual, 1 for automatic and 2 for sport.
  • Torque reduction is a percentage: 0x00 is no reduction and 0xC8 is 100 per cent. Use it if your ECU does not use target engine torque.
  • Target engine torque sends 0x800 when there is no torque reduction requested, which the manual annotates as 2048 Nm. During a shift it sends the target engine torque.
  • Transmission oil temperature has an offset of -40, so 0x00 is -40 C and 0xFF is 215 C.
  • Lockup clutch activation uses 0.4 per bit, with 0x00 at 0 per cent and 0xFA at 100 per cent.
  • Safe mode activation reads 0 for off and 1 for on.
  • The gear shift flag on the first frame is active whenever a gear change is happening, even when torque reduction is not active. That is what you use to detect a shift without inferring it from a torque cut.

v2 receive: two frames

Frame Offset Name Unit Scale Type Rate
BaseRX ID 0 RPM rpm 1 unsigned 16 50 Hz
BaseRX ID 2 MAP kPa 0.1 unsigned 16 50 Hz
BaseRX ID 4 PPS per cent 0.1 unsigned 16 50 Hz
BaseRX ID 6 Program SW P1 to P8 1 unsigned 8 not stated
BaseRX ID 7 Virtual clutch per cent 1 unsigned 8 not stated
BaseRX ID+1 0 Actual engine torque Nm 1 signed 16 50 Hz
BaseRX ID+1 2 Maximum engine torque Nm 1 signed 16 50 Hz
BaseRX ID+1 4 Engine coolant temperature 1 C per bit 1 unsigned 8 50 Hz
BaseRX ID+1 5 bit 0 Upshift request bit 50 Hz
BaseRX ID+1 5 bit 1 Downshift request bit 50 Hz
BaseRX ID+1 5 bit 2 Brake pedal activate bit 50 Hz
BaseRX ID+1 5 bit 3 Idle active bit 50 Hz
BaseRX ID+1 5 bit 4 Kickdown activate bit 50 Hz
BaseRX ID+1 5 bit 5 Handbrake bit 50 Hz
BaseRX ID+1 6 Selector commands 0x00 none, 0x01 P, 0x02 R, 0x04 N, 0x08 D byte 50 Hz

The manual makes three distinctions on this stream. RPM and PPS are necessary parameters. MAP is necessary only if the ECU does not send actual engine torque; if it does send torque, MAP is not used. The maximum engine torque slot exists but is not used at present, so do not build logic on it.

And the torque 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.

v1 transmit

The v1 transmit pages describe three identifiers. The base ID and the base ID plus one each carry four 16 bit analogue channels, and the values are yours to define in the TCU. Their standard range is 0 to 5000.

Frame Offset Data Conversion Range
Base ID (default H640) 0:1 Value defined in TCU unsigned, most significant byte first standard 0 to 5000
Base ID 2:3 Value defined in TCU unsigned, most significant byte first standard 0 to 5000
Base ID 4:5 Value defined in TCU unsigned, most significant byte first standard 0 to 5000
Base ID 6:7 Value defined in TCU unsigned, most significant byte first standard 0 to 5000
Base ID+1 (default H641) 0:1 to 6:7 Four more channels unsigned, most significant byte first standard 0 to 5000

The status sits at base ID plus two:

Offset Data Type Offset value Range Resolution
0 Gear signed byte 0 -1 to 8 1 gear per bit
1 Oil temperature unsigned byte -40 -40 to 215 1 C per bit
2 Program SW unsigned byte 0 1 to 8 1 per bit
3 Error code unsigned byte 0 0 to 255 1 per bit
4 FLAGS1 bitfield
5 FLAGS2 bitfield
6 Vehicle speed unsigned byte 0 0 to 510 2 km/h per bit
7 unused

FLAGS1 and FLAGS2 are what the v2 transmit stream replaced with named parameters. They are still useful because they pack a lot of state into two bytes:

Byte Bit Name Meaning when set
FLAGS1 0 Torque reduction active while the transmission is upshifting
FLAGS1 1 Safety mode safety mode is active in the TCU
FLAGS1 2 Parking parking is active
FLAGS1 3 Oil fan oil fan is active
FLAGS1 4 T brake t brake is active
FLAGS1 5 Brake solenoid brake solenoid on
FLAGS1 6 Neutral neutral is active
FLAGS1 7 Blip out blip out is active
FLAGS2 0 Automatic mode automatic mode is active
FLAGS2 1 Adaptation activation adaptation is active
FLAGS2 2 Hand brake hand brake is active
FLAGS2 3 Foot brake foot brake is active
FLAGS2 4 Line lock line lock is active

v1 receive

Offset Data Conversion Resolution
0:1 RPM unsigned, most significant byte first 1 rpm per bit
2:3 MAP unsigned, most significant byte first 1 kPa per bit
4 TPS (PPS) unsigned byte, per cent 0.5 per cent per bit
5 DBW unsigned byte, per cent 0.5 per cent per bit
6:7 Engine torque signed, most significant byte first, Nm 1 Nm per bit

v1 against v2

Item v1 v2
Receive frames one two
MAP scaling 1 kPa per bit 0.1 kPa per bit
Throttle scaling 0.5 per cent per bit, 8 bit 0.1 per cent per bit, 16 bit
DBW channel dedicated byte not present in the receive stream
Engine torque position bytes 6:7 of the single frame offset 0 of the second frame
Torque handoff code not documented 0x8000 or 0x7FFF to force internal calculation
Selector commands not present byte 6 of the second frame
Shift requests not present bits 0 and 1 of byte 5, second frame
Coolant temperature not present byte 4 of the second frame
Transmit frames three identifiers four identifiers
Transmit rates not stated on the page 100 Hz, 40 Hz, 20 Hz and 100 Hz
Target engine torque not present BaseTX ID, offset 2
Torque reduction percentage not present BaseTX ID, offset 4
Shaft speeds and slip not present BaseTX ID+3
Wheel torque not present BaseTX ID+1, offset 4
Gear encoding -1 to 8 -2 parking, -1 reverse, 0 neutral, 1 to 8
Vehicle speed 8 bit, 2 km/h per bit 16 bit, scale 16
Analogue value channels eight across two frames, standard 0 to 5000 replaced by named engineering parameters

Two practical consequences fall out of that table. If you have an existing v1 integration and you move to v2, your scale factors change for MAP, throttle and vehicle speed, and your torque register moves to a different frame. If you are starting fresh, build on v2 and treat v1 as legacy.

Frequently asked questions

What is the difference between TCU standard 6 and TCU standard 7? Standard 6 is the v1 receive stream: one frame with RPM, MAP, TPS, DBW and engine torque. Standard 7 is the v2 receive stream: two frames with finer scaling, shift requests and selector commands.

What is the default transmit base ID? The v1 transmit page lists a default of H640 and is configurable. The v2 pages show the base ID as a variable and do not state a default.

How do I detect a gear change on CAN? Use the gear shift flag on the first v2 transmit frame. The manual notes it is active during a change even when torque reduction is not active.

What value means "no torque reduction"? On the first v2 transmit frame, target engine torque sends 0x800, which the manual annotates as 2048 Nm, and the torque reduction percentage sends 0x00.

How do I tell the TCU to use its own torque calculation? Send 0x8000 or 0x7FFF in the actual engine torque slot of the v2 receive stream.

Is vehicle speed different between generations? Yes. v1 uses an 8 bit value at 2 km/h per bit, giving a 0 to 510 range. v2 uses a 16 bit value with a scale of 16.

Next step

If you are mapping one of these streams into an ECU, tell us which generation you are on, which controller is at the other end and what you need on the bus. We will work through the frame plan with you before you buy parts.

Stream definitions, scales and flag assignments in this article are taken from the TurboLamik official manual (manual.turbolamik.eu), TCU stream v1 and v2 transmit and receive pages, with ZF published data for the 8HP family.