Guide · Link ECU · CAN4

CAN4 on a Link ECU

A Link G4X or G5 reads the CAN4 through a Receive User Stream in PCLink: the module's four readings land on CAN Analog 1 to 4, and from there feed most functions that take an analog input. This guide covers the bus, the wiring, the PCLink setup, and what the module's Bus tab shows when something is wrong.

Written from Link's CAN Setup article and PCLink 7.4.3's own help and stream files, September 2026. Not yet run on an ECU: the first acknowledged frame on a G4X is still to be tested. Menu names are from PCLink for G4X and G5 ECUs.

00What you need

Electrical

01Pick a bus

A bus of its own is best: a CAN port with nothing else on it. Nothing existing is touched, the bit rate is yours, and there are no identifiers to collide with. The module is then one end of that bus, so its termination goes on at setup, and the ECU's own 120 Ω is the other end.

A shared bus works too, at whatever rate it already runs. A bus with a Link CAN Lambda on it usually runs at 1 Mbit/s, the rate Link's own setup for the Lambda uses. The module joins at that rate, its termination stays off, and it refuses to transmit if another device is already sending on its identifiers.

Each CAN port has its own bit rate, set on its CAN module in CAN Setup. Check the rate of the one you picked before wiring.

02Wire it

CAN4 MODULE CAN Red — 12 V, fused Black — ground White — CAN H Yellow — CAN L TO LINK ECU 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 LINK ECU 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 socket.
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 on the CAN port you picked
YellowCAN L on the same port

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 PCLink

PCLink's CAN Setup window has its own words. On its Mode tab a CAN module is one of the ECU's CAN ports, and a CAN channel is one identifier that module sends or receives. On its Streams tab a stream holds the layout of that identifier's frame. So as not to mix it up with a CAN module, these steps call the module the CAN4.

  1. ECU Controls → CAN Setup, Mode tab. Select the CAN module the CAN4 is wired to. If it is already set to a vehicle's mode, as a plug-in ECU's may be, leave it and wire the CAN4 to another CAN module: its Mode holds one choice, and Link's help says its channels can only be changed in User Defined, so setting User Defined turns the vehicle mode off. This is still to be checked on a unit. Otherwise set its Mode to User Defined and its Bit Rate to the CAN4's, 500 kbit/s by default. On a bus that is already running, keep its rate and set the CAN4 to it on the CAN4's CAN tab instead, with the CAN4 wired to that bus and the ECU on: a new rate that nothing acknowledges is undone after 30 seconds.
  2. Select a spare CAN channel in the CAN Channels list. Set its Mode to the next unused Receive User Stream, its ID to the CAN4's data frame, 1760 in decimal, which is 0x6E0, and its Format to Standard, for 11-bit identifiers; some of Link's procedures call it Normal. PCLink takes the identifier here, not from the stream.
  3. Streams tab. Select the stream you chose in step 2 and click Add Frame; a new frame is eight bytes. Click Add in the parameters section and pick CAN Analog 1 (the Receive filter narrows the list), then CAN Analog 2, 3 and 4. Give each one the Start Pos from the table below, Width 16, Byte Order MS first, the CAN4's default, and Type Signed. Start Pos and Width are in bits, not bytes. The CAN4's CAN tab shows the same layout, and gives it as a text file and a DBC file.
  4. Scale each value to its unit with its Divider, from the second table, leaving Multiplier at 1 and Offset at 0. The CAN4 sends temperature in 0.1 °C and pressure in 0.1 kPa, so a divider of 10 gives degrees and kilopascals; voltage is in millivolts, so a divider of 1000 gives volts.
  5. Apply, then OK. Nothing in CAN Setup is kept until you click Apply or OK, and the ECU keeps it through a power-off only once it is stored, in step 8.
  6. Use the channels. In the function that reads the input, for example Analog Inputs → GP Temp 1, set Source to the CAN Analog and Calibration to None. The CAN4 sends the finished value, and Link's help says a CAN Analog fed the exact value takes Calibration None; any other calibration takes the number as a voltage, so 85.0 °C goes in as 85 V. CAN Analog inputs feed GP Temperature, GP Pressure, ECT and most other functions that take an analog input. Pick CAN Analog inputs nothing else writes to: vehicle modes and CAN keypads can write to them too.
  7. Decide what a fault should do. A failed input sends one of three things, set for that input on the CAN4's Inputs tab: 0x7FFF, which reads as 3276.7 at a divider of 10; 0x8000, which reads as −3276.8; or its last good reading, which is 0x7FFF until it has had one. If the frames stop, a Link sets each CAN Analog they fed to 0 after 2 seconds, and Link's help says a function reading that CAN Analog then goes into fault and uses its Error Value, so set the Error Value of each function that has one to something safe for the engine. The Error Low and Error High that fault a wired input are voltage limits, and Link's help says they do not apply to a CAN Analog, so whether PCLink can treat 0x7FFF or 0x8000 as a fault is still to be checked on a unit, as is how long the fault takes.
  8. Store with F4, Ctrl+S or ECU Controls → Store to ECU, or the ECU loses the CAN setup and the function settings at power-off.
Data frame, identifier 1760 (0x6E0), 20 Hz by default. Width 16, Byte Order MS first, Type Signed
ValueBytesStart PosMaps to
Input 10 – 10CAN Analog 1
Input 22 – 316CAN Analog 2
Input 34 – 532CAN Analog 3
Input 46 – 748CAN Analog 4

Start Pos counts bits from the start of the frame, the top bit of each byte first, so an MS-first value starts at 8 times its first byte: bytes 2 – 3 start at 16, not 2. Link's own LS-first stream files start an LS-first value at the bottom bit of its first byte, 7 further on, so with the CAN4 set to LS first the four values start at 7, 23, 39 and 55, with Byte Order LS first. Take Start Pos from this page or from the CAN4's layout download, Download layout for your ECU on its CAN tab, which prints it beside each value. Do not take it from the DBC file: a DBC counts bits the other way, so its start bits are 7, 23, 39 and 55 where PCLink's are 0, 16, 32 and 48, and the other way round when LS first. PCLink's Visual Frame Display shows where each value lands.

Divider by quantity
QuantityOne count isDividerGives
Temperature0.1 °C10°C
Pressure0.1 kPa10kPa
Voltage1 mV1000V
Air-fuel ratio0.01100AFR
Lambda0.0011000λ
Percent0.1 %10%
Switch110 open, 1 closed

The status frame, identifier 1761 (0x6E1), 5 Hz by default, carries each input's state in bytes 0 to 3 and a counter in byte 5 that steps by one every frame. To log the counter, receive the status frame on a second spare CAN channel: the next Receive User Stream, ID 1761, Format Standard, and on the Streams tab one frame with a spare CAN Analog at Start Pos 40, Width 8, Byte Order MS first, Type Unsigned, divider 1, then Apply, OK and Store as in 04. At the default rate a live counter climbs by five a second and wraps from 255 to 0 about every 51 seconds; one that sits at 0 means the frames have stopped.

05More than one module

Each CAN4 needs its own identifiers, and its own CAN channel and stream in PCLink.

  1. Move the added CAN4's 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, 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. 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. An added CAN4 at another rate sends nothing at all, and its Bus tab says the bus is probably at another bit rate until step 1 is done.
  3. Add a CAN channel and stream for each CAN4 on the same CAN module in CAN Setup: a spare CAN channel set to the next Receive User Stream, with the ID from the table, and on the Streams tab the same frame and layout as the first, mapped to four more CAN Analog inputs. Then Apply and OK, give the new CAN Analog inputs to their functions as in steps 6 and 7 of 04, and Store.
One pair of identifiers per module
ModuleData framePCLink IDStatus 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 a 500 kbit/s bus, so the bus is not the limit; the ECU is. A G4X or G5 has 16 CAN Analog inputs, so it reads four CAN4s with every input on a CAN Analog, or three if each one's counter takes a CAN Analog too. G4X firmware before 6.23.6 has 8, and Link's release notes carry fixes to CAN Analog 9 to 16 up to G4X 6.24.370 and G5 7.1.370, so update the ECU before using them. An input set to switch can go to one of CAN DI 1 to 16 instead, which Link sets to Fault rather than 0 when its frames stop; what a CAN DI makes of a 16-bit value, and of the switch's fault value, 0x7FFF, is still to be checked on a unit.

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.

06See it and log it

Troubleshooting

The Bus tab says nothing acknowledges the module
The ECU's CAN module is off or at a different bit rate, or CAN H and L are swapped. The module 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 the module to the bus's rate on its CAN tab, or the ECU's CAN module to the module's.
The Bus tab says an identifier is in use
Another device 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, then press Try again on any CAN4 that still says so, or switch the ignition off and on. The status frame follows the data frame.
The CAN setup is gone after closing the window or a power cycle
It was not applied or not stored. Click Apply or OK before closing CAN Setup, then Store with F4 once the functions are set.
Readings are right on the page and wrong in PCLink
Byte order, Start Pos or calibration. The module sends MS first by default; the stream must say the same, with the Start Pos values in 04, or the module's CAN tab can be set to match a stream instead. A calibration other than None on the function also changes the reading.
A CAN Analog reads 0 and does not move
Its frames have stopped: a Link sets a CAN Analog to 0 two seconds after its last update, a function reading it goes to its Error Value, and the counter, if you log it, sits at 0 too. Check the module's fuse and power, and its Bus tab. A module also resets when its supply falls below about 6 V, as in a cold crank on a weak or very cold battery, and reads 0 until it is back on the bus a few seconds after the engine catches, which is not every start.
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:

  • Link: CAN Setup (archived copy)
  • PCLink 7.4.3's CAN help: CAN Setup's Mode and Streams tabs, the Start Pos, width, byte order and type fields, the CAN Analog mapping, Calibration None, the 2-second timeout and a function's Error Value
  • PCLink 7.4.3's own stream files: Start Pos for MS-first and LS-first values
  • PCLink 7.4.3's ECU firmware release notes: CAN Analog 9 to 16
  • Link NS15X plug-in installation manual, July 2025: the CAN socket tables