Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

Determining Compound Message Parameter Location

CANBus Communications Decoded

Forum Posts



Tech Articles

Discussion and questions related to the course CAN Bus Communications Decoded

= Resolved threads


In this video, it looks like he is using a couple of tools at the same time to try to locate coolant temperature in a compound message. He mentions the data capture is from a "microchip can bus analyzer tool" and it would seem he is writing can data with something called a "link ECU". I'm assuming these are not part of the "sysTools can to USB adapter"?

The idea is to use an external device that knows how to put the temp gauge at 100, then back down to zero again.

While he is doing that he is also capturing the data stream.

He imports that into Google Sheets, and sorts by index number.

He scrolls thru each index looping for that data change and changes back later.

i guess my question is, what's the "link ecu" and if that can do it, it must already know the pid and index and byte right?

G'day Carey.

The Link ECU is the aftermarket ECU that is running the EFI system for the engine. It's the one that has the coolant temp sensor wired into it, and is generating the coolant temp sensor data, sending it out onto the bus. As the Link ECU can output compound CAN messages, it was a good way of getting some data to have a look through and show the process I use.

I used the MicroChip CAN analyser tool instead of the sysTools one in this instance, as it allows you to log CAN traffic to a text file.

This log is then imported into Google sheets, and ordered by the value in the index byte locations (Byte 0).

Then I go through each of the compound message sections looking for the physical change I had made, which was to have the link ECU initially output a coolant temperature of 0 degC, then 100 degC, then back to 0 degC. You could accomplish something similar with another ECU by connecting a potentiometer in place of the coolant temperature sensor and adjusting what the ECU is reading, and sending out that way. If its an OEM application you'll be best to have an OBD2 scantool hooked to the vehicle at the same time, and note down the coolant temperature readings from that, so you know what to look for in the data log.

Hope that clears things up.


The Link ECU is an aftermarket programmable engine management system. I didn't watch the video you are talking about but the Link can do compound/multiplex/row counter type messages. There are several pre-defined compound messages that are documented in the Link documentation (example below for our "generic dash stream", ECT is in frame 3), but a user can also generate custom compound messages, in which case the format would then not be documented. I assume Zac's example was just showing a procedure you could use to reverse engineer a compound message if you ever come across a device that was using compound messaging but didn't have any documentation. Compound messages aren't all that common in OEM stuff, but still common in motorsport.

We usually reply within 12hrs (often sooner)

Need Help?

Need help choosing a course?

Experiencing website difficulties?

Or need to contact us for any other reason?