CAN4 · the CAN bus

CAN, and what differs between ECUs

Among aftermarket ECUs that read a user-defined CAN frame, what differs from one to the next is not the protocol but a handful of numbers: which identifiers it listens for, how fast the bus runs, which byte comes first, and what a count means. Each of those is a setting on the CAN4's page, so one firmware can be set up for each ECU that reads a user-defined frame of 8- or 16-bit values.

Written from ISO 11898, the ECU makers' own CAN documentation, and the module's firmware, September 2026.

00The same two wires

CAN is one bus: two wires, CAN H and CAN L, twisted together, with a 120 Ω terminator at each end. Every device on the bus hears every frame. There are no addresses and no master. A device puts a frame on the bus when the bus is free, and every other device decides for itself whether that frame is one it cares about.

A Link, a Haltech, a MoTeC, an ECUMaster, a dash and a logger all attach to that pair the same way. The wiring, the voltages and the frame format are the standard's, CAN 2.0B, and nothing about them belongs to a vendor.

01What a frame is

IDENTIFIER LENGTH DATA, UP TO 8 BYTES 0x6E0 8 Input 1 Input 2 Input 3 Input 4 bytes 0 – 1 bytes 2 – 3 bytes 4 – 5 bytes 6 – 7 11 or 29 bits: which frame this is each a signed 16-bit value, high byte first, in counts of its unit IDENTIFIER LENGTH 0x6E0 8 11 or 29 bits: which frame this is DATA, UP TO 8 BYTES Input 1 Input 2 Input 3 Input 4 bytes 0 – 1 bytes 2 – 3 bytes 4 – 5 bytes 6 – 7 each a signed 16-bit value, high byte first, in counts of its unit
The CAN4's data frame. One count is 0.1 °C, 0.1 kPa, 1 mV, 0.01 AFR, 0.001 λ or 0.1 %, by the sensor's unit. The status frame, 0x6E1, has the same shape with one byte per value.

An identifier, up to eight bytes, and a checksum the hardware handles. The identifier says what the frame is; the bytes mean whatever the sender and the receiver agreed. That agreement is the whole of a "CAN protocol": when a vendor publishes one, it is a list of identifiers and what the bytes in each mean. The CAN4's default layout uses two identifiers.

02What differs between ECUs

The numbers, and what each one decides
SettingWhat it decidesThe CAN4's default
Bit rateHow fast the bus runs. Every device on one bus must agree; a device at the wrong rate corrupts every frame on it.500 kbit/s, from 50 kbit/s to 1 Mbit/s
IdentifierWhich frame is which. 11-bit on most buses, 29-bit on some. It must be one that nothing else on the bus uses.0x6E0 data, 0x6E1 status
Byte orderWhether a 16-bit value's high byte comes first (MS first, big-endian, Motorola) or last (LS first, Intel). Link's module streams and Haltech's CAN protocol put it first; Link's configurable Generic Dash stream puts it last.MS first, settable per value
Sign and widthWhether a value can be negative, and whether it takes one byte or two.Signed, 16 bits
Scale and offsetWhat one count means: 0.1 °C, 0.1 kPa, 1 mV, 0.01 AFR. The receiver multiplies back.0.1 °C, 0.1 kPa, 1 mV, 0.01 AFR, 0.001 λ or 0.1 % per count, by the sensor's unit
Position and rateWhich bytes hold which value, and how often the frame is sent.Bytes 0, 2, 4 and 6; 20 Hz data, 5 Hz status
The receive feature, by name
ECUReads a user-defined frame asWhere it stands
Link G4X, G5A Receive User Stream in PCLink, onto CAN Analog channelsGuide, from Link's documentation; not yet run on an ECU
Haltech Nexus, not the RebelGeneric CAN, in NSP 1.48 or laterGuide, from Haltech's documentation; not yet run on an ECU. Haltech has not published which signal formats Generic CAN takes
Haltech Nexus Rebel, EliteNothing: neither takes a user-defined CAN frameNot supported
ECUMaster, MoTeC, RaceCaptureA user-defined CAN input, each in its own softwareNot yet written up
AEMAEMnet, 29-bit identifiers at 500 kbit/sUnconfirmed
Dashes and loggersMost import a DBC file, which the module writes for its own layoutBy the DBC

03What the module does about it

Every row of the first table is a setting on the CAN tab of the module's page, and the table behind it goes further: up to four frames, each with its own identifier, length and rate, and up to eight values in each, every value with its own position, width, sign, byte order, scale and offset. So the module's frames are set to what the ECU expects, on the page, with no firmware per ECU. The layout comes out as text and as a DBC file.

The CAN tab of the setup page.
The CAN tab. A new bit rate, identifier, frame length or rate is tried on the bus before it is kept; byte order, termination and value changes apply at once.

Out of the box the module is set up for a Link: 500 kbit/s, identifiers 0x6E0 and 0x6E1, MS first, four signed readings at 20 Hz. For a Haltech Nexus with Generic CAN, set the bit rate to that of the bus the module joins: 1 Mbit/s on the Haltech bus, or on a second bus the rate that bus runs at. Whether Generic CAN takes these values as they are is not yet confirmed. Neither setup has run on an ECU yet. For another ECU, set the CAN tab's fields to what it expects.

04How the module protects the bus

A device that transmits can take a bus down. This is how the firmware is written to avoid it; none of it has been tried on a bus yet.

05What it does not reach

Full specifications, wiring and the frame layout are in the datasheet (PDF); the headline specs are on the CAN4 page. Setup on each ECU: the guides.

The CAN4 isn't on sale yet. Leave your email on the store page to hear when it ships.

Written from: