Guide · Haltech Nexus · CAN4

CAN4 on a Haltech Nexus

A Haltech Nexus reads the CAN4 through Generic CAN: you define the module's two frames in NSP, and the readings become channels the ECU can use. The Nexus T1, T2, S2, S3, R3 and R5 and the Nexus plug-ins have Generic CAN. The Nexus Rebel and every Elite do not, and are not supported.

Written from Haltech's Generic CAN announcement, its knowledge base and its support's answer of September 2026, and not yet run on an ECU. Haltech has not published the signal formats Generic CAN takes (signed or unsigned, byte order, scaling), whether a received signal can drive tables and engine protection like a wired sensor, or what happens to it when the frames stop. Until that is known, treat a CAN4 channel as display and logging data, not as an input to engine protection.

00What you need

Electrical

01Pick a bus

On a T1 or T2 the module joins the Haltech bus at 1 Mbit/s, in the middle of it, so its termination stays off. On an ECU with a second bus, a bus of the module's own is simpler, and the module is then one end of it: termination on.

02Wire it

CAN4 MODULE CAN Red — 12 V, fused Black — ground White — CAN H Yellow — CAN L TO HALTECH BUS 1 Input 1 2 Input 2 3 Input 3 4 Input 4 TO THE SENSORS EACH SENSOR CABLE · RED 5 V · BLACK GROUND · YELLOW SIGNAL TO HALTECH BUS CAN Red — 12 V, fused Black — ground White — CAN H Yellow — CAN L CAN4 MODULE TO THE SENSORS 1 Input 1 2 Input 2 3 Input 3 4 Input 4 EACH SENSOR CABLE RED 5 V · BLACK GROUND · YELLOW SIGNAL
One black cable for power and CAN, four black sensor cables, numbered. Carry the CAN pair on twisted to the hub.
Power and CAN cable · black, marked CAN
ConductorGoes to
RedSwitched, fused 12 V. Not the ECU's 5 V sensor supply
BlackGround: the ECU's ground, or the chassis ground the ECU uses
WhiteCAN H, by pin number, on the Haltech harness or hub you are joining
YellowCAN L, the same way

Sensor side

The four sensor cables, marked 1 to 4, one per input: each carries red 5 V, black ground and yellow signal to its sensor. Wiring for each sensor type, and the presets, are in the datasheet.

03More than one module

Several CAN4s can share one bus, each wired like the first. Splice each added module on, then give it its own identifiers with the ECU on: see 05.

Software

04Set it up in NSP

  1. On the module's CAN tab, set the bit rate to the rate of the bus the module joins: 1 Mbit/s on the Haltech bus, or on a second bus the rate that bus runs at; the module's default is 500 kbit/s. Do this with the module wired to that bus and the ECU on: a new rate that nothing acknowledges is undone after 30 seconds. On a second bus, set that bus up in NSP first (step 2), so that the ECU acknowledges the module. Keep 11-bit identifiers and the default byte order, MS first, the order Haltech's own CAN broadcast uses. The identifiers must be clear of everything else on the bus; the module refuses to transmit on one it hears another device using, and its Bus tab says so.
  2. Switch Generic CAN on. Haltech's steps: in NSP 1.48 or later, Preferences → Firmware Update Options, turn on Opt-In to Beta Firmware Versions, then Check for Updates Now, and bring the ECU to firmware 1.36 or later. Generic CAN is then switched on per bus, on that bus's own page: for the Haltech bus, the Haltech bus menu node, where dash and keypad support are switched on.
  3. In NSP, add a Generic CAN receive frame for the data frame, identifier 0x6E0 (1760 in decimal), and set its signals to what the module sends: four signed 16-bit values at bytes 0, 2, 4 and 6, big-endian, each scaled to its unit: 0.1 °C or 0.1 kPa per count, 1 mV per count for a voltage. Haltech has not published which signal formats Generic CAN takes, so this is still to be confirmed on a unit. If NSP cannot take one of them, the module can send each value another way: its CAN tab sets each value's sign, byte order, scale and offset under All frames.
  4. Add a second frame for the status frame, 0x6E1, if you want each input's state and the counter as channels: eight unsigned single bytes, the four states first and the counter in byte 5. At the default rate, 5 Hz, the counter climbs by five a second while the module is sending, so it shows whether frames are arriving.
  5. Assign the channels where the ECU should use them.
What the module sends: data frame, identifier 0x6E0, 20 Hz by default
BytesValueType
0 – 1Input 116-bit signed, big-endian
2 – 3Input 216-bit signed, big-endian
4 – 5Input 316-bit signed, big-endian
6 – 7Input 416-bit signed, big-endian

05More than one module

Each CAN4 needs its own identifiers and its own frames in NSP.

  1. Move the added CAN4 to the bus's rate and its own identifiers, on the live bus: spliced on, with the ECU on. Join that CAN4's WiFi and, on its CAN tab, set the data frame from the table below and, on a bus not at 500 kbit/s, such as the Haltech bus at 1 Mbit/s, the bus's bit rate, in one save; the status frame follows, one above the data frame. The CAN4 keeps the change once something on the bus acknowledges the new frames, and its Bus tab then says Sending. With nothing to acknowledge them, on the bench or with the ECU off, it puts its old settings back after 30 seconds.
  2. Wake any CAN4 that went quiet. An added CAN4 still at its default, 500 kbit/s, sends nothing on the 1 Mbit/s Haltech bus, and its Bus tab says the bus is probably at another bit rate until step 1 is done. Two CAN4s at the bus's rate and both on 0x6E0 and 0x6E1 cannot both send: a CAN4 that hears another on its identifiers stops sending. That is the one that finished starting second, and it can be both. Its Bus tab says the identifier is in use, and it stays quiet until its identifiers change, you press Try again on its Bus tab, or its power is cycled. After the move, press Try again on any CAN4 that still says so, or switch the ignition off and on.
  3. Add each CAN4's frames in NSP: a Generic CAN receive frame for its data frame, and one for its status frame if you want it, on the identifiers from the table, with the same layout as the first.
One pair of identifiers per module
ModuleData frameIn decimalStatus frame
First0x6E017600x6E1
Second0x6E217620x6E3
Third0x6E417640x6E5
Fourth0x6E617660x6E7

Each CAN4 has its own WiFi network and password, printed on its label, and is set up from its own page. At its defaults a CAN4 takes under 1 % of the bus at 500 kbit/s or faster, so the bus has room for more than four. Haltech gives Generic CAN a maximum of 30 frames and 200 signals; a CAN4 takes one frame and four signals, or two frames and up to twelve signals with its status frame.

Frames 3 and 4, under All frames on each CAN4's CAN tab, are off by default and start on 0x6E2 and 0x6E3, the second module's pair. Give them identifiers outside the modules' pairs before turning them on.

06What is not known yet

Troubleshooting

The Bus tab says nothing acknowledges the module
The module is not at the rate of the bus it joins, 1 Mbit/s on the Haltech bus, or CAN H and L are swapped. It backs off and tries again on a growing interval, and stops after eight tries until power is cycled or you press Try again.
The Bus tab says the bit rate is wrong
The module heard errors while listening and will not transmit. Set it to the bus's rate on its CAN tab: 1 Mbit/s on the Haltech bus, or on a second bus the rate that bus runs at.
The Bus tab says an identifier is in use
Something on the bus already sends on the module's identifiers, 0x6E0 and 0x6E1 by default. Two CAN4s left at their defaults do this: the one that finished starting second goes quiet, and it can be both. Move the identifiers of the CAN4 you added, not simply the one that reports it, and add its frames in NSP on the new identifiers; then press Try again on any CAN4 that still says so, or switch the ignition off and on.
Readings are right on the page and wrong in NSP
Byte order, sign or scale. The module sends signed values MS first by default, big-endian in Haltech's terms, in tenths of a degree or a kilopascal. If NSP's signal settings cannot match that, change the value's byte order, sign or scale on the module's CAN tab instead.
Everything works cold and throws errors hot
Termination. The module's own terminator is electronic and only there while it is powered, so with everything off a meter across the pair reads the others: about 120 Ω where the bus needs a module's terminator, about 60 Ω where it already has both terminators. A meter never sees a module's own terminator, so it cannot catch one wrongly set to yes: each module's CAN tab shows its setting.

Full specifications, wiring, setup and the frame layout are in the datasheet (PDF); the headline specs are on the CAN4 page. Guides for other ECUs are listed here.

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

Written from: