J1939 Communications with a PACCAR PX-8 Engine

This page is a first draft of presenting some data and procedures used during some truck testing in Westchester, Ohio on June 1, 2011. The article started as a CAN message overview, but became specific the specific truck tested.



A commercial vehicle uses a Controller Area Network (CAN) to communicate between various electronic modules on the vehicle. The implementation of CAN is standardized for heavy vehicles by the Society of Automotive Engineers using the J1939 Standard [1]. The messages on the CAN bus may contain information related to vehicle performance and capabilities. Often these messages are the source for data found in different event recording devices.


The objective of the study is to capture CAN traffic and explain how to decode the messages using the J1939 Standard. The contents herein can help someone set up filters and test equipment to monitor specific messages on the CAN Bus. The captured messages are compared to physical events and external sensors to help bring better meaning and correlation to the data.

Vehicle Description

The test vehicle was a 2008 Peterbilt straight crane truck (VIN: 2NPLHN7X39M780400) with a Paccar PX-8 engine. A photograph of the Truck is shown in Figure 1.

Peterbilt Truck
Figure 1: Peterbilt Truck used for testing.

The Truck had an Eaton-Fuller 8-Speed Split Transmission with a 3.55:1 rear axle ratio. The serial number for the transmission was FR011210B. Each of the front wheels were Bridgestone R260 11R22.5 with about 100 psi of pressure. The drive wheels were Bridgestone V-Steel 11R22.5 MZX711 with nearly 100 psi of air pressure. The rolling radius on the drive axles was 19.5 inches. The total weight was 27,250 lbs with individual axle weights as follows:

Axle Weights (in pounds)
  Front Axle Rear Axle
Right Side 4500 9900
Left Side 4900 7950

The wheel base was 198 inches and the overall length was 292 inches. The overall width was 92 inches, the front track width is 80 inches, and the drive axle track width was 75 inches.


J1939 9-Pin Breakout Box

To monitor the CAN bus, a breakout box for the J1939 9-pin diagnostic port was fabricated to split the signals for the CAN. The breakout box shown in Figure 2 was fabricated in-house using the following parts from Digi-key:

J1939 Breakout Box
Figure 2: J1939 Breakout box.

Breakout Box Basic Parts List
Qty. Item Description Digi-key Part Number Link Price Each Total
1 CONN PLUG 9POS SMOOTH SHELL 889-1061-ND 9-pin Socket Holder 7.06  
2 CONN RCPT 9PIN W/FLANGE 889-1142-ND 9-pin Flanged Receptacle 11.27  
18 CONN PIN 20AWG SIZE 16 889-1054-ND 20 Gauge Pins 1.24  
9 CONN SOCKET 20AWG SIZE 16 889-1055-ND 20 Gauge Sockets 1.07  
1 BOX ABS 4.90X3.94X2.36" GREY HM1072-ND Enclosure 5.24  
8 CONN JACK BANANA INSUL NYLON BLA J152-ND Black Banana Jacks 0.70  

Not included in the parts list is a cable from SGW Electronics. It contains all the wires and a D-sub 15 adapter to hook up to a diagnostic link connector (e.g. Nexiq USB-link). The cable can be found on the SGW Web site as 11760-03-225 - Deutsch 9 pin Male To Blunt End Cut with DB 15. If this cable is used, then the smooth shell connector is not required to build the breakout box.

Also, there is a termination post between the CAN_H and CAN_L terminals to place a resistor if the cable needs terminated. The impedance matching resistor (120 ohms) will reduce transient spikes from internal reflections of the digital waveforms. Finally, the picture in Figure 2 shows a 9-pin D-sub connector to match the National Instruments NI9853 High Speed CAN module.

CAN Message Logging

To monitor live data on the J1939 Bus, a Dearborn Group Gryphon S3 was connected to the breakout box. Using the Hercules software, the data was logged with time stamps. After the run, the data was saved in a comma separated value table. The following raw data files are available:

  1. Initial startup and idle with the PTO engaged so the driver could fill a low tire using the onboard air compressor. The file is Paccar Idle with PTO.csv and is 5.51 Mb.
  2. Data file of the driving circuit including the hard brake at the end: Paccar Hard brake 2.csv, which is 1.2Mb.
  3. Data file that recorded the Cummins Insite download: Paccar Hard brake 2 insite download.csv at 8.87 Mb.
  4. Data file that recorded the PowerSpec Download: PaccarHardbrake2Powerspecdownload.csv at 6.72 Mb.

These raw data files can be imported in Excel as text to be filtered. It is important not to import the file using the general mask because Excel will interpret the Hex number E as an exponent and turn a sequence like 3E7 to 30,000,000. If the import is done as raw text, then this issue is avoided. Also, the timestamp is in microseconds. Therefore, to get an relative time stamp in decimal format, the different components need to be summed.


External Speed Sensor

A Racelogic VBox 3i and Video Vbox Lite were used to record the driving test. The links to the raw data files are below.

VBox Lite Video File with CAN Data (AVI)

VBox Lite data file

VBox 3i data file (Plain Text)

A comparison of the speed recorded by the VBox 3i GPS and IMU (Red) and the Vehicle Speed Sensor (Gray) is shown in the chart below. The image of the chart is hyperlinked to a pdf file so the reader can zoom into the different features of the graph. The rectangular pulses are from the tape switch mounted to the service brake pedal and connected to the Din port of the VBox 3i. The raw data files are also linked above. A map of the test run shows the vehicle drove in a loop to gain speed and finished near the start. The starting point is the origin (0,0) of the graph.

Vbox screen capture

Map Graph

Data Link Adapter


Nexiq Adapter


Interpretation of the CAN messages

Example: Vehicle Speed

To set up testing using a device capable of logging CAN messages, it is useful to know what data to expect on the communications bus. Racelogic provides a complete J1939 library to extract and decode CAN messages using the VBox. The Vbox 3i can record 16 channels and the Vbox lite can only record one. To assess the accuracy of the speed measurements onboard the vehicle, the wheel-based speed value was chosen to be recorded on both the Vbox Lite and the Vbox 3i. Performing a search for "vehicle speed" within the J1939-71 document eventually gives the following information:

Group Name: Cruise Control/Vehicle Speed
Parameter Group Number (PGN): 65265 (0x00FEF1)
Acronym: CCVS
Parameter Name: Wheel-Based Vehicle Speed
Suspect Parameter Number (SPN): 84
Start Position: 2-3
Length: 2 bytes

There are other parameters in that PGN also. There are a couple of useful pieces of information: the Acronym, CCVS and the PGN, FEF1. The acronym enables someone with a Vbox to perform the setup using the Racelogic supplied database. All the available PGNs are coded in the database as acronyms, so if someone were to want to watch vehicle speed they would look for the CCVS block when setting up the Vbox.

Also in the J1939-71 standard is the information regarding the decoding of the 2 bytes of the message related to SPN 84.

Description: Speed of the vehicle as calculated from wheel or tailshaft speed.
Resolution: 1/256 km/h per bit, 0 offset
Data Range: 0 to 250.996 km/h

This means the decimal value of the 2 byte word (16 bits) needs to be divided by 256 to get the actual speed in kilometers per hour.

CAN Message Structure

According to the J1939 standard, CAN messages use a 29-bit extended ID frame.

J1939 Header structure

There are two sections in the J1939 frame format that are needed to identify the parameter group number (PGN): the PDU format (PF) and the PDU Specific (PS) sections. These 2 bytes represent the PGN. Since 2 bytes represent 16 bits, there are a possibility of 65536 values. Also, 2 bytes are represented by 4 hex digits. For the wheel speed case, the digits corresponding to PGN 65265 are FEF1. This means there should be a CAN identifier that has FEF1 in the middle.

Opening up a log file of all the CAN messages in Excel and turning on the filters gives the ability to find the desired value of FEF1.

Excel Screenshot

The ID column has members that contain FEF1 and the whole ID is 18FEF100. This is a complete 29-bit ID that has the following structure:

J1939 Message ID Structure for CCVS
J1939 Frame Format Priority PDU Format (PF) PDU Specific (PS) [Destination Address] Source Address (SA)
HEX 1 8 F E F 1 0 0
Decimal 1 8 65265 0
Binary 1 1 0 0 0 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 0 0 0 0 0 0 0 0
Bit Identifier 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Message Timing

Since the Controller Area Network is non-deterministic, the published periodicity of the CCVS messages of 100 ms may fluctuate. To assess this fluctuation or "jitter" the time stamps from the CAN log file obtained by the Gryphon S3 Device were extracted for the CCVS message (ID 18FEF100). A histogram of the difference between subsequent messages is shown below.

Timing Histogram


The summary statistics as calculated in Excel for the time differences are as follows:

Mean 0.100028345
Standard Error 2.37908E-06
Median 0.10003
Mode 0.10002
Standard Deviation 6.45867E-05
Sample Variance 4.17144E-09
Kurtosis 197.9691504
Skewness -7.80250458
Range 0.00194
Minimum 0.09882
Maximum 0.10076
Sum 73.72089
Count 737
Largest(1) 0.10076
Smallest(1) 0.09882
Confidence Level(95.0%) 4.67059E-06


Per the statistics, the message repeats on average 28 microseconds slower than the nominal 100,000 microsecond interval. Based on this observation and summary statistics, it is unlikely that a CAN message is ever more than 2 milliseconds off its scheduled time. When monitoring vehicle speed, this timing jitter has little influence on historical data.

Present Messages

On the Paccar Engine, there were 36 Message headers present during startup. They are listed as follows:

CAN ID (Hex) PGN (Dec)  SA (Hex) Avg Delta T (Seconds) Parameter Group Label Acronym
0CF00300 61443 00 0.05 Electronic Engine Controller 2 EEC2
0CF00400 61444 00 0.02 Electronic Engine Controller 1 EEC1
18E0FF00 57599 00 1.0 This ID exists on the bus but has no changing data and is not in J1939
18E0FF28 57599 28 1 This ID exists on the bus but has no changing data and is not in J1939
18EAFF0B 60159 0B once
18EAFFFE 60159 FE 0.5  
18EBFF00 60415 00 5 messages 0.05 apart every 5 seconds
18EBFF0F 60415 0F 5 messages 0.05 apart every 5 seconds
18ECFF00 60671 00 5 Challenge and Response: takes about 0.02 Sec to respond
18ECFF0F 60671 0F 5
18EEFF00 61183 0 once At start up
18EEFF0F 61183 0F once At start up, 500 microsecond response
18F0000F 61440 0f 0.1 Electronic Retarder Controller 1 ERC1
18F00100 61441 0 0.1 Electronic Brake Controller 1 EBC1
18F0010B 61441 0B 0.1 Electronic Brake Controller 1
18FD7C00 64892 0 1 Diesel Particulate Filter Control 1 DPFC1
18FDB300 64947 0 0.5 Aftertreatment 1 Outlet Gas 2 AT1OG2
18FDB400 64948 0 0.5 Aftertreatment 1 Intake Gas 2 AT1IG2
18FEBD00 65213 0 1 Fan Drive FD
18FEBF0B 65215 0B 0.1 Wheel Speed Information EBC2
18FEC100 65217 0 1 High Resolution Vehicle Distance VDHR
18FECA00 65226 0 1 Active Diagnostic Trouble Codes DM01
18FEDF00 65247 0 0.02 Electronic Engine Controller 3 EEC3
18FEE000 65248 0 0.1 Vehicle Distance VD
18FEE400 65252 0 1 Shutdown SHTDN
18FEE500 65253 0 Once at Start Engine Hours, Revolutions HOURS
18FEEE00 65262 0 1 Engine Temperature 1 ET1
18FEEF00 65263 0 0.5 Engine Fluid Level/Pressure 1 EFL/P1
18FEF000 65264 0 0.1 Power Takeoff Information PTO
18FEF100 65265 0 0.1 Cruise Control/Vehicle Speed CCVS
18FEF200 65266 0 0.1 Fuel Economy (Liquid) LFE
18FEF500 65269 0 1 Ambient Conditions AMB
18FEF600 65270 0 0.5 Inlet/Exhaust Conditions 1 IC1
18FEF700 65271 0 1 Vehicle Electrical Power 1 VEP1
18FEFF00 65279 0 10 Water in Fuel Indicator WFI

The messages highlighted in PDU1 fromat of the J1939 standard. Since this was a specialty crane truck, it is likely that the messages delt with the auxiliary systems. The timing of the messages were interesting, but without any documentation on their meaning, those messages remain a mystery.

Since the VBox 3i can monitor 16 CAN messages, the following table proposes a set of the best 16 messages for understanding factors related to crash reconstruction and forensic science. These messages provide some insight into driver behavior during the operation of the vehicle.

Preferred Messages to Capture Using External Monitoring
CAN ID PGN Acronym Parameter Group Label Parameter Description Parameter Location (Bytes and Bits) Resolution Frequency (sec)
18FEF100 65265 CCVS Cruise Control/Vehicle Speed Wheel-Based Vehicle Speed Bytes 2 and 3 1/256 kph 0.1
18FEF100 65265 CCVS Cruise Control/Vehicle Speed Brake Switch Byte 4, Bits 5 and 6 00 - Brake pedal released
01 - Brake pedal depressed
18FEF100 65265 CCVS Cruise Control/Vehicle Speed Clutch Switch Byte 4, Bits 7 and 8 00 - Clutch pedal released
01 - Clutch pedal depressed
0CF00300 61443 EEC2 Electronic Engine Controller 2 Accelerator Pedal Position 1 Byte 2 1/2.56 for 0 to 100% 0.05
0CF00300 61443 EEC2 Electronic Engine Controller 2 Engine Percent Load At Current Speed Byte 3 1%/bit 0.05
0CF00400 61444 EEC1 Electronic Engine Controller 1 Engine Speed Bytes 4 and 5 0.125 rpm/bit 0.02
18FEBF0B 65215 EBC2 Wheel Speed Information Front Axle Speed Bytes 1 and 2 1/256 km/h per bit 0.1
18FEBF0B 65215 EBC2 Wheel Speed Information Relative Speed Front Axle, Left Wheel Byte 3 1/16 km/h per bit, -7.8125 km/h offset 0.1
18FEBF0B 65215 EBC2 Wheel Speed Information Relative Speed; Front Axle, Right Wheel Byte 4 1/16 km/h per bit, -7.8125 km/h offset 0.1
18FEBF0B 65215 EBC2 Wheel Speed Information Relative Speed; Rear Axle #1, Left Wheel Byte 5 1/16 km/h per bit, -7.8125 km/h offset 0.1
18FEBF0B 65215 EBC2 Wheel Speed Information Relative Speed; Rear Axle #1, Left Wheel Byte 6 1/16 km/h per bit, -7.8125 km/h offset 0.1
18FEEE00 65248 VD Vehicle Distance Total Vehicle Distance Bytes 5-8 0.125 km/bit 0.1
18F0010B 61441 EBC1 Electronic Brake Controller ASR (Traction Control) Brake Control Active Byte 1 Bits 3 and 4 00 - ASR brake control passive but installed
01 - ASR brake control active
18FEF200 65266 LFE Fuel Economy (Liquid) Engine Fuel Rate Bytes 1 and 2 0.05 L/h per bit 0.1
18FEF700 65270 IC1 Inlet/Exhaust Conditions 1 Engine Intake Manifold #1 Pressure Byte 2 2 kPa/bit 1
18FEF700 65270 IC1 Inlet/Exhaust Conditions 1 Engine Intake Manifold 1 Temperature Byte 3 1 deg C/bit, -40 deg C offset 1

Note: All offsets are zero unless otherwise noted. The source for the parameters and resolutions is J1939-71.

These parameters are for the 2008 Paccar PX-8 engine as configured. The table would be a good starting point for future studies, but the data is not guaranteed to exist on other vehicles. Furthermore, there may be more interesting features enabled on other implementations of J1939.

Cummins PowerSpec

The image below is a screen shot of Cummins PowerSpec. The image has hot zones to make it function like the original software. The buttons can be pushed to see what the data was for a hard brake test.

Powerspec Screen Shot Read Trip Information Fault Codes Read Feature Settings Read Data Plate Maintainence Monitor Sudden Decel Data

The CAN message traffic was also recorded for all the communications with PowerSpec. A Dearborn Group Gryphon S3 was connected in listen only mode and logged all communications on the J1939 Bus. The raw data file of the PowerSpec download is available as a comma separated value table in the following file: PaccarHardbrake2Powerspecdownload.csv (6.72 Mb). This file was filtered in Excel to examine the messages on the bus.

Examining the file shows that many of the broadcast messages are present on the bus.

CAN ID PGN PGN Description Frequency Notes
0CF00300 61443 Electronic Engine Controller 2 0.05 Engine Data
0CF00400 61444 Electronic Engine Controller 1 0.02 Engine Data
10EF00FA 61184     All data were
43 00 00 00 00 00 02 FF
10EFFA00 61434     All data were
44 00 00 02 58 58 FF FF
18E0FF00 57599   1.0 All data were
18E0FF28 57599   1.0 All data were
18EB00FA 60160   Aperiodic There were 5 distinct time blocks of data. This is likely the data dump for PowerSpec
18EBFF00 60415   5 messages every 5 seconds These data were present before in previous logs
18EBFF0F 60415   5 messages every 5 seconds These data were present before in previous log
18EC00FA 60416   Aperiodic Only a couple bits change. This may be the tool requesting different data.
18ECFA00 60666   Aperiodic There were 5 distinct time blocks of data. This is likely the data dump for PowerSpec
18ECFF00 60671   5.0 All data were
20 22 00 05 FF E3 FE 00
18ECFF0F 60671   5.0 All data were
20 13 00 03 FF E1 FE 00
18EEFFFA 61183   2.0 First Message
86 68 54 01 00 80 00 00
Second Message
23 34 56 01 00 81 00 00

Each in blocks of 5 during the data dumps

18F0000F 61440 Electronic Retarder Controller 1 0.1 All data were
18F00100 61441 Electronic Brake Controller 1 0.1 All data were
18F0010B 61441 Electronic Brake Controller 1 0.1 All data were
18FD7C00 64892 Diesel Particulate Filter Control 1 0.5 All data were
F8 83 00 00 C3 0F E3 FF
18FDB300 64947 Aftertreatment 1 Outlet Gas 2 0.5 All data were
18FDB400 64948 Aftertreatment 1 Intake Gas 2 0.5 First Byte Changes
18FEBD00 65213 Fan Drive 1.0 All data were
18FEBF0B 65215 Wheel Speed Information 0.1 All data were
00 00 7D 7D 7D 7D FF FF
18FEC100 65217 High Resolution Vehicle Distance 1.0 All data were
A8 90 42 02 3F 93 42 02
18FECA00 65226 Active Diagnostic Trouble Codes 1.0 All data were
00 FF 00 00 00 00 FF FF
18FEDF00 65247 Electronic Engine Controller 3 0.02 All data were
84 A0 28 7D FB FF FF FF
18FEE000 65248 Vehicle Distance 0.1 All data were
9C 24 17 00 81 24 17 00
18FEEE00 65262 Engine Temperature 1 1.0 Third byte changes
62 FF ?? 29 FF FF FF FF
18FEEF00 65263 Engine Fluid Level/Pressure 1 0.5 All data were
18FEF000 65264 Power Takeoff Information 0.1 All data were
18FEF100 65265 Cruise Control/Vehicle Speed 0.1 All data were
FC 00 00 00 00 5D 00 00
18FEF200 65266 Fuel Economy (Liquid) 0.1 Fifth byte changes
00 00 00 00 7? 06 FF FF
18FEF500 65269 Ambient Conditions 1.0 All data were
18FEF600 65270 Inlet/Exhaust Conditions 1 0.5 All data were
18FEF700 65271 Vehicle Electrical Power 1 1.0 Fifth byte changes
18FEFF00 65279 Water in Fuel Indicator 10.0 All data were
1CEBFA00 60410   Aperiodic There were 5 distinct time blocks of data. This is likely the data dump for PowerSpec
1CEC00FA 60416   Aperiodic First Four bytes change
?? ?? ?? ?? FF 00 EF 00
1CECFA00 60666   Aperiodic First four bytes change
?? ?? ?? ?? FF 00 EF 00

The highlighted blocks represent the communication headers with the Nexiq USB-Link when PowerSpec was running. While this may be interesting, the raw data is unintelligible and voluminous.

Comparison of Speed Records

During the testing, the following speed records are available:

  1. VBox 3i
  2. VBox Lite
  3. Wheel-Based Vehicle Speed
  4. Front Axle Speed
  5. Sudden Deceleration Record

When compiling the speed data from the CAN data, the least significant byte is transmitted first, according to J1939-71 (Table 6). Therefore, a 2 byte data word is formed by concatenating byte 2 ahead of byte 1, which is reversed. In Excel, the =concatenate([byte2],[byte1]) command accomplishes this goal. Once the hex data is concatenated, it is converted to decimal and the scaling factor is applied. In Excel, the conversion from hex to decimal is =hex2dec(). The results of the conversions are shown in the table below. All speed columns have their own time base because the data was sampled asynchronously.

5Hz Reporting Issue

The Sudden Deceleration Record from Cummins PowerSpec represented speed data at 1 second intervals, where infact the data are sampled at 5 Hz. To adjust the time base to account for this, the time is divided by 5, then an offset is added to match the CAN speed record based on the CCVS Wheel-based vehicle speed. The plots below show this phenomena.

Speed Comparison Chart

The data used to plot the figure above is available as a comma separated value file: PaccarSpeedRecordData.csv (380 kB) and the full Excel file is Paccar Hard brake 2.xlxs (3.73 Mb).

Perhaps the most interesting feature of the above graph is the Front Axle Wheel Speed parameter (from PGN 65215) matches the VBox 3i the closest. Also, the CAN messages provide a common signal across recording devices and can act as a synchronizing signal.

It appears that the Sudden Deceleration Record obtained speed values from the Wheel-Based Speed (18FEF100).

Interestingly, the Trip information from PowerSpec shows no Sudden Decels; clearly there are at least 3.

A closer look at the braking section of the test shows discrepancies between the various wheel speed sources.

Braking Chart

The purple trace is the front axle average speed. This is predictable slower than the VBox 3i (blue) trace by as much as 6 kph. This is expected since the braking action will tend to slow the tire more than the vehicle and generate some relative wheel slip. The red stepped trace is the oversampling of the green trace. The CAN message updates at 10 Hz, but the Vbox 3i updates at 100 Hz; therefore, the each CAN speed value is held for 10 samples. Interestingly, the green trace of the Wheel-based vehicle speed on the CAN bus is greater than the VBox 3i trace. This is counter intuitive since the rear wheels are also braking and leaving marks, thus some slip is expected. Explaining this observation requires more research.


This research was made possible through a cooperative agreement between the University of Tulsa and the National Institute of Justice under Award Number 2010-DN-BX-K215.

The West Chester, Ohio Police Department and Officers Walker and York coordinated the venue and vehicles. Butler County Ohio Deputy Day provided the portable scales. Drew Burger of AmQuip drove the truck. YRC trucking provided assets to test along with personnel.

The author would also like to acknowledge John Daily of Jackson Hole Scientific Investigations, Inc. and Nathan Shigemura of the Traffic Safety Group for their assistance during the tests.


  1. Recommended Practice for a Serial Control and Communications Vehicle Network, SAE J1939 Standard http://www.sae.org/standardsdev/groundvehicle/j1939.htm