Parts online for you!

J1939 vs J1708: Diesel Diagnostic Protocol Differences Explained

J1939 vs J1708: Understanding the Two Diagnostic Protocols

Every diesel technician eventually encounters both J1939 and J1708 protocols when connecting diagnostic software to an engine. These are the two data communication standards that define how your laptop talks to the engine ECM. J1939 is the modern high-speed CAN (Controller Area Network) protocol used on virtually all diesel engines manufactured after 2007. J1708 is the older, slower serial protocol used on engines from roughly 1996 to 2007. Understanding the difference between them is critical because connecting with the wrong protocol is the most common cause of “No Communication” errors in CAT ET, Cummins INSITE, and other diagnostic software.

J1939 vs J1708: Technical Specifications

Specification J1939 J1708
Standard SAE J1939 SAE J1708 / J1587
Physical Layer CAN Bus (2-wire differential) RS-485 (2-wire serial)
Communication Speed 250 kbps or 500 kbps 9.6 kbps
Speed Comparison 26-52x faster than J1708 Baseline
Typical ECM to Laptop Transfer 1-2 seconds 10-20 seconds
Multi-ECM Support Yes (up to 30 nodes) Limited (typically 1-3 nodes)
Diagnostic Connector Pins Pins C (CAN-H) and D (CAN-L) Pins E (Data+) and F (Data-)
Message Format 29-bit identifier (PGN-based) 8-bit MID (Message Identifier)
Error Detection CAN CRC + frame check Basic checksum
Engine Years 2007+ (mandated) 1996-2007 (phased out)

How to Identify Which Protocol Your Engine Uses

The easiest way is by looking at the diagnostic connector itself. A J1939-only engine will have wiring on pins C and D (the two center-upper positions on the 9-pin Deutsch connector). A J1708 engine will have wiring on pins E and F (two center positions). An engine supporting both protocols (common during the 2007-2010 transition years) will have wiring on all four pins. If you have a multimeter: J1939 CAN-H (pin C) should measure approximately 2.5-3.5V with the key ON, and CAN-L (pin D) should measure approximately 1.5-2.5V. J1708 data lines (pins E and F) should show fluctuating voltage (0-5V) when the ignition is on as data packets are transmitted.

J1939 Deep Dive

J1939 operates on a Controller Area Network (CAN) bus — a two-wire differential signaling system that is inherently resistant to electrical noise. The differential design means the signal is the voltage difference between CAN-H and CAN-L, not the absolute voltage of either wire. This makes J1939 reliable even in the electrically noisy environment of a running diesel engine (alternator ripple, injector solenoid flyback, etc.).

Data on J1939 is organized into PGNs (Parameter Group Numbers) — standardized identifiers that define the type of data in each message. For example, PGN 61444 contains “Electronic Engine Controller 1” which includes engine speed, actual engine torque, and driver demand torque. PGN 65262 contains engine coolant temperature and fuel temperature. Every PGN is documented in the SAE J1939 Digital Annex, which is the reference manual for interpreting raw J1939 data.

J1939 also supports a transport protocol for messages larger than 8 bytes (the standard CAN frame size). This is used for VIN transfer, calibration data downloads, and ECM flashing. The transport protocol is why ECM reflashing can only be done over J1939 — J1708 does not support the large frame sizes required for calibration files.

J1708 Deep Dive

J1708 is based on RS-485 serial communication — the same electrical standard used in industrial PLCs, Modbus networks, and building automation. It uses a single-ended or differential two-wire connection running at 9,600 bits per second. At this speed, reading a full set of fault codes from a J1708 ECM takes 10-20 seconds compared to 1-2 seconds on J1939.

The companion standard J1587 defines the message format on the J1708 bus. J1587 messages use MIDs (Message Identifiers) to identify the source ECU and PIDs (Parameter Identifiers) to identify individual data parameters. There are only 256 possible MIDs and 512 standardized PIDs, which limits the amount of data J1708 can carry compared to J1939’s 29-bit addressing space.

J1708 was officially deprecated for new engine designs after 2007, but many trucks manufactured up to 2010 still include J1708 wiring for backward compatibility with older scan tools. By 2026, J1708 is primarily relevant for diagnosing pre-emissions engines (pre-2007 MY) that are still in service in construction, agriculture, and developing markets.

Protocol Transition Years: 2007-2010

During the EPA 2007 emissions mandate transition, many engine manufacturers installed both J1708 and J1939 diagnostic connectors on the same engine. These dual-protocol engines allowed fleets to continue using existing J1708 scan tools while adopting J1939 for newer diagnostic capabilities. If you are diagnosing an engine from this transitional period and your scan tool defaults to one protocol but gets no response, manually switch to the other protocol in your software settings. Some diagnostic software (notably newer versions of CAT ET and INSITE) will silently default to J1939 and report “No Communication” on a J1708-only engine instead of falling back to the older protocol.

Physical Inspection: J1939 vs J1708 Wiring

Open the 9-pin diagnostic connector on the machine. Clean any debris from the pins and inspect with a flashlight:

  • J1939 only: Wires visible on pins A (ground), B (power), C (CAN-H), D (CAN-L). Pins E and F are empty.
  • J1708 only: Wires visible on pins A, B, E (Data+), F (Data-). Pins C and D are empty.
  • Both protocols: Wires visible on pins A, B, C, D, E, F. This is a dual-protocol engine.
  • Dead connector: Only pins A and B are wired. The diagnostic port may be present but the ECM does not support electronic diagnostics (rare on post-1996 engines).

Frequently Asked Questions

Can I use a J1939 adapter on a J1708 engine?

Yes, most modern communication adapters (Nexiq USB-Link, DPA5, CAT Comm Adapter III) support both J1939 and J1708 and will auto-detect the protocol. If auto-detection fails, manually switch the protocol in your diagnostic software’s communication settings. Note: data transfer will be significantly slower on J1708 due to the 9.6 kbps speed limitation — expect delays of 10-20 seconds per operation.

Why does my scan tool say “Connected” but shows no data?

This usually indicates a protocol mismatch — the adapter has established physical communication but is trying to read J1939-formatted data on a J1708 bus. The physical layer is active (the CAN transceiver or RS-485 driver is seeing voltage), but the message format does not match what the scan tool expects. Switch the protocol manually in your diagnostic software.

Is J1939 better than J1708 in every way?

For speed, data capacity, and noise immunity — yes, J1939 is superior in every technical dimension. The one scenario where J1708 is “better” is simplicity: J1708 networks are easier to troubleshoot with basic tools (a multimeter is sufficient for most diagnostics). J1939 CAN bus issues require an oscilloscope for proper signal analysis. Also, J1708 diagnostic cables are simpler electrically, making them more resistant to damage from voltage spikes or reversed polarity.

Leave A Reply

Your email address will not be published.