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 . 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.
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.
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:
|Front Axle||Rear Axle|
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.
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:
Figure 2: J1939 Breakout box.
|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|
|1||CONN JACK BANANA INSUL NYLON RED||J151-ND||Red Banana Jack||0.70|
|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:
- 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.
- Data file of the driving circuit including the hard brake at the end: Paccar Hard brake 2.csv, which is 1.2Mb.
- Data file that recorded the Cummins Insite download: Paccar Hard brake 2 insite download.csv at 8.87 Mb.
- 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 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.
Data Link 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:
Cruise Control/Vehicle Speed
Parameter Group Number (PGN): 65265 (0x00FEF1)
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.
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.
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 Frame Format||Priority||PDU Format (PF)||PDU Specific (PS) [Destination Address]||Source Address (SA)|
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.
The summary statistics as calculated in Excel for the time differences are as follows:
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.
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|
|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|
|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|
|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|
|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|
|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.
|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.
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.
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
|10EFFA00||61434||All data were
|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
|18ECFF0F||60671||5.0||All data were
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
|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
|18FEC100||65217||High Resolution Vehicle Distance||1.0||All data were
|18FECA00||65226||Active Diagnostic Trouble Codes||1.0||All data were
|18FEDF00||65247||Electronic Engine Controller 3||0.02||All data were
|18FEE000||65248||Vehicle Distance||0.1||All data were
|18FEEE00||65262||Engine Temperature 1||1.0||Third byte changes
|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
|18FEF200||65266||Fuel Economy (Liquid)||0.1||Fifth byte changes
|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
|1CECFA00||60666||Aperiodic||First four bytes change
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:
- VBox 3i
- VBox Lite
- Wheel-Based Vehicle Speed
- Front Axle Speed
- 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.
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.
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.
- Recommended Practice for a Serial Control and Communications Vehicle Network, SAE J1939 Standard http://www.sae.org/standardsdev/groundvehicle/j1939.htm