Return to Getting Started

J1939 Window

This window is created by doing Window… New J1939 Window (Ctrl-J).

SAE J1939 is a set of standards defining a method for communicating between ECUs, and external diagnostic tools, used especially on heavy duty vehicles.

J1939 actually operates over CAN, always using extended (29-bit) CAN identifiers. Different parts of the 29-bit ID are reserved for different purposes by the J1939-21 standard:

Source address (sending node)
PDU specific: destination address (DA), or LSB of PGN (group extension, GE)
PDU format: MSB of PGN (zero LSB if 0xF0)
Data Page: bit 16 of PGN
Reserved (zero)
Priority (0 highest, 7 lowest)

Overall the PGN (parameter group number) identifies a particular type of message with defined content.

Messages containing more than 8 bytes are automatically sent according to the J1939-21 transport protocol, using connection management and data transfer PGN packets.

Transmit controls

The transmit (tx) bytes are in hexadecimal. You can type in values by hand, copy and paste from another program, or use a previously saved message from the right-hand pane of this window (see below).

Setting the Tx PGN will automatically update the CAN ID used for transmission.

Setting the Request PGN will automatically set up a message to be sent using the request PGN number from OpenECU Calibrator with the content bytes configured to request the desired PGN from the target ECU. Request PGNs are used extensively for J1939-73 diagnostic messages (DMs).

If desired you can write some notes (e.g. a name) for a particular message and click Save to store it for later re-use in the list on the right (see below).

Message Logs

Recent transmit and receive data are shown here. Transmitted messages from OpenECU Calibrator are shown in green, and received data from the ECU in blue. Errors are shown in red. You may copy and paste from the message logs.

Note: see also the general CAN monitor window which supports logging to a file, and the CAN sender window which allows the transmission of arbitrary single CAN packets.

Protocol shows the string of bytes that form a complete message, which may actually be composed of many CAN packets.

Packets shows the actual CAN packets transmitted or received.

Send and Receive Settings

Tx CAN ID shows the actual CAN message ID that will be constructed considering the PGN and other settings. You may set this ID directly, in which case the other fields in the window (e.g. the PGN) will be updated accordingly if valid.

SA (tool) is the node address for OpenECU Calibrator.

DA (ECU) is the node address for the ECU from which replies are expected. This is not relevant for global messages (sent to all destinations).

Rx all nodes causes messages sent from any ECU to be displayed, regardless of the DA, except multi-packet messages sent to destination other than this tool (because OpenECU Calibrator should not engage in the required response packets to manage the reception of such messages if they are intended for another node).

Rx our replies only will only show a received PGN if it is the first response to a request PGN sent by this tool. This is useful when requesting diagnostic PGNs if the same ECU is sending periodic traffic which is not of interest.

No DM1s will exclude DM1 messages which many ECUs send periodically, except for the first DM1 sent in response to a request by this tool. This can be useful in spotting non-periodic messages of interest that would otherwise be obscured by DM1 traffic. (A request is not normally sent for DM1, but doing so is a handy way of displaying just one DM1 from an ECU of interest when ‘No DM1s’is used, regardless of whether the ECU actually processed the request.)

Use Hex PGNs to control whether PGNs are displayed in decimal or hexadecimal throughout this window.

Saved Messages

This area can be used to save request messages for re-use. Its contents are saved with the other settings for this window in the workspace file.

Use copies the data for the selected row to the transmit controls where the bytes can if necessary be edited before use.

The Tx button next to each message can be clicked directly to immediately send a saved message.

Clone makes a copy of the currently selected row. You can then edit the contents to make it different from the original.

The up/down/delete buttons operate on the selected row.

Del All removes all saved messages.

You may sort the rows by clicking on the column headings.

Hardware Interface

The hardware channel used for the J1939 data is specified here. It must be a CAN channel.

The same CAN channel may be shared by other ECU, ISO 15765-2 or J1939 windows.

See also Hardware Interface Window help.

Window Controls

If this window is closed, all of the settings and saved messages are lost. You can do this by clicking Delete All and Close.

To temporarily free up screen space without losing the settings for this window, use Minimise.

The window can be scaled or maximised to make it easier to read long messages. The divider between the left and right-hand panes can also be adjusted.

Return to Getting Started