Identifying source module and data in CAN bus messages: Heavy Duty case (J1939)

Dmitriy Analyst Ontario Posted   Latest  

In general, contents of CAN bus messages are proprietary and manufacturer-specific. However, there is a significant segment in Heavy Duty world that follows SAE J1939 standard. Such messages can be deciphered with help of SAE J1939 Digital Annex.

While some of the data may be displayed by an appropriate scan tool, it is sometimes necessary to observe CAN messages (including source modules transmitting them) and relate them to sensor and actuator voltages observed by an oscilloscope.

This demonstration shows a 10 second Picoscope CAN bus capture. In total, 5 control modules are identified in the data:

0 : Engine #1 2 : Turbocharger 61 : Exhaust Emission Controller 81 : Aftertreatment #1 system gas intake 82 : Aftertreatment #1 system gas outlet

There are more than 100 parameters identified in the CAN bus messages, such as Engine Speed, Coolant Temp, Baro pressure, etc.

For this file, reference waveforms are added for:

  • Engine speed (kilo rpm)
  • Aftertreatment ECU talking (On/Off)

providing graphical presentation of events during the capture.


I have integrated the J1939 decoder into my online system, and for a CSV export from Picoscope CAN decoder it creates a full report with identified modules, parameters, graphs, and reference waveforms.



However, there is a catch: SAE J1939 Digital Annex is not free ($260), and the standard license is for personal use only. I am looking into what kind of license is required for use within an application, but, meanwhile, I would be most comfortable if users have their own personal licenses of the Digital Annex.

So, if you are doing CAN diagnostics with Picoscope on Heavy Duty vehicles and would like to test out the system, please:

  • go to …​.​com/software/AWSM , sign in with Google;
  • send an e-mail to with
    • your name and Google Id;
    • attach a picture or e-mail with proof of purchase of a 2016+ version of SAE J1939 Digital Annex (any personal info other than the name may be blacked out).


  • using contiguous 10-20 second Picoscope capture with 1+MS/s sample rate is the best; perform CAN decoding and export the table as CSV;
  • TiePie oscilloscope provides similar functionality for an abridged set of J1939 parameters;
  • more J1939 Resources are here: diag​.​net/msg/m5bw2se7gy…
Tony Manager

We are a national company that services auto dealers and auctions to facilitate wholesale transactions. We assist them in various ways by providing them information that is relative to the value of the vehicle as it pertains to its mechanical condition. Because of our market acceptance we are expanding rapidly so are in need of specialized talent that have a deep understanding of deciphering CAN…

Ð Awarded
Off Topic
Manuel Diagnostician
New Jersey

I think dimitry is way ahead of anything on the ground floor very good work on this.

Ð Awarded
Frank Owner/Technician

I second that, an exceptional talent and asset to our community.

Ð Awarded
Dustin Educator
South Carolina

Very Nice work, We helped Pico incorporate the J1939 decoder into the software. We have access to the annex and could do some testing. I'll speak with my lead trainer and see if we can get it setup to test and report back.

Ð Awarded
Dmitriy Analyst

Thank you, please let me know!

Ð Awarded