Back to Guides

J1708/J1587 Diagnostics on Older Trucks: The Protocol That Won't Die

PrimoDeTech Editorial8/25/2026 240 viewsProtocols & Standards

I've lost count of how many times someone has walked into the shop with a shiny new "heavy duty" scanner, plugged it into an older tractor, and gotten nothing but a spinning wheel and a blank screen. The truck runs. The check engine light works. The ECM is alive. But the tool sits there like it's been handed a foreign language.

Nine times out of ten, the language it can't speak is J1708/J1587 — the serial data link that ran the American trucking industry for the better part of two decades. If you own or work on older diesel iron, understanding this protocol isn't optional history. It's the difference between pulling codes in five minutes and guessing at a no-start for two days.

What J1708 and J1587 Actually Are

People say "J1708" like it's one thing, but it's really two SAE standards stacked on top of each other, and knowing the split helps you troubleshoot.

J1708 is the physical layer — the wiring and electrical rules. It's a low-speed serial data link running over a simple twisted pair of wires at 9600 baud. That's not a typo. While your phone moves gigabits, this bus moves data at roughly the speed of a 1990s dial-up handshake. And you know what? For reading fault codes and basic sensor values out of an engine ECM, it was plenty.

J1587 is the message layer that rides on top of J1708. It defines what the bytes actually mean — which module is talking, what parameter it's reporting, and how faults are described.

Here's the vocabulary that matters, because it's completely different from the newer J1939 world:

TermWhat it means
MID (Message Identifier)Which module is talking — engine, transmission, ABS, instrument cluster
PID (Parameter Identifier)What's being reported — coolant temp, road speed, boost pressure
FMI (Failure Mode Identifier)How something failed — shorted high, shorted low, out of range, erratic

So an old-truck fault code reads as MID/PID/FMI: which box, which parameter, which failure mode. On J1939, the equivalent is SPN/FMI. If your tool or your paperwork talks in SPNs and the truck talks in PIDs, you're translating between two different dictionaries — and a lot of cheap tools translate badly or not at all. When you're cross-referencing codes, a proper DTC lookup database that understands both vocabularies saves a lot of head-scratching.

One quirk worth knowing: heavy-duty PIDs have nothing to do with the OBD2 PIDs on your pickup truck. Same three letters, totally different standard. We covered that trap in detail in why your car OBD2 scanner won't read a semi truck.

Which Trucks Still Speak It

Broadly, J1708/J1587 is the language of the mechanical-to-electronic transition era — trucks built from the early 1990s through the mid-2000s, when engine makers were bolting electronic controls onto platforms that had been purely mechanical a few years earlier.

I'm deliberately not giving you a year-by-year model table, because in the real world it doesn't work that way. Fleets spec'd trucks differently, engines got swapped, and the changeover to J1939 happened module by module over years, not overnight. The honest rules of thumb:

  • Early-to-mid 1990s: electronic engines showed up speaking J1708/J1587, usually as the only data link on the truck.
  • Late 1990s to early 2000s: J1939 started appearing alongside J1708. Many trucks from this stretch carry both buses.
  • Mid-to-late 2000s: J1939 became the primary link, but J1708 often stayed wired in for ABS, instrument clusters, and body modules for years after.

These trucks aren't rare. They're the backbone of owner-operator fleets, farm operations, dump and vocational work, and every small outfit that decided a paid-off pre-emissions truck beats a note on a new one. They'll be hauling for another decade — which is exactly why the protocol won't die.

What the Connector Looks Like

Walk up to the driver's side dash or kick panel and you'll find one of two round Deutsch connectors:

  • 6-pin Deutsch (gray, round): the classic old-truck diagnostic port. If you see this, the truck is J1708/J1587 territory, full stop. Two of those pins are the J1708 data pair (plus power and ground).
  • 9-pin Deutsch (round): the later standard. Here's the part people miss — the 9-pin connector carries both protocols. Pins C and D carry J1939 CAN, while pins F and G carry the J1708 data pair. A truck with a 9-pin port can absolutely have modules that only answer on J1708.

That 9-pin connector has its own traps — Type I versus Type II, pin voltage differences, and adapter pitfalls — which we walk through pin by pin in our J1939 9-pin Deutsch connector pinout guide. If you work on trucks from the transition era, read that one next.

Why Many "Heavy Duty" Tools Can't Read These Trucks

Here's the uncomfortable truth about a lot of newer diagnostic hardware: it only has CAN transceivers inside.

J1939 runs on CAN. J1708 doesn't — it's a different electrical standard entirely, closer to old-school RS-485 serial than to CAN. A tool needs a separate physical transceiver wired to those F and G pins to hear J1708 traffic at all. No amount of software updates can add a circuit that isn't on the board.

So when a budget tool advertises "supports heavy trucks," what it often means is "supports J1939." Plug it into a 1998 tractor with a 6-pin port — or a 2003 truck whose engine happens to answer only on J1708 — and it's deaf. The tool isn't broken. It was never built for that conversation.

Before you buy anything for older iron, ask one blunt question: does the hardware have a J1708 transceiver, and does the software actually speak J1587? Both halves matter.

The Mixed-Truck Trap: Half Your Modules on Each Bus

This is the one that burns even experienced techs.

On transition-era trucks, it's common to find the engine on J1939 while the ABS, transmission, or instrument cluster still lives on J1708 — or the reverse. Same truck, two buses, modules split between them.

Now picture a tool that only scans the CAN side. It connects, finds the engine, reports "no faults in other systems" — and completely misses the ABS module screaming with stored faults on the J1708 pair. You get a clean-looking report that's half blind. The customer gets told the truck is fine. The problem stays.

It's the same failure mode we described in the OBD2-on-a-semi guide: the tool isn't lying, it's just only listening to one room of the house. On any truck from roughly the late '90s through the late 2000s, a proper scan means both buses, every module, or it isn't a full scan.

Where Our Platform Stands

I'll keep this exactly as straight as we keep everything else: our platform supports J1708/J1587 alongside J1939 — the protocol layer is verified against a genuine heavy-duty ECM on the bench. That means the hardware carries a real J1708 transceiver and the software speaks J1587's MID/PID/FMI language natively, not through a bolted-on translation.

Picking a Tool and Cable: What Actually Matters

  • Dual-protocol hardware. J1708 transceiver plus CAN, in the same box. Non-negotiable for pre-2007 work.
  • A cable with all data pins wired through. Plenty of cheap 9-pin cables only connect the CAN pins and leave F/G empty — the J1708 pair dead-ends inside the connector. Check continuity on every data pin, or buy from someone who publishes the pinout. Our 9-pin connector guide shows which pins must be live.
  • A 6-pin adapter for the oldest trucks — again, with the data pair actually wired, not just power.
  • Software that reports MID/PID/FMI properly, and ideally translates against a real fault database rather than showing raw numbers.

FAQ

Is J1708 the same as J1587? No. J1708 is the wiring and electrical layer (the twisted-pair serial link); J1587 is the message format that runs over it. In practice they're always used together, which is why people say the names interchangeably.

Can I read J1708 codes through the 9-pin connector? Yes — if the truck wires J1708 to pins F and G (most do) and your tool plus cable actually connect those pins. A CAN-only tool on a 9-pin port will never see J1708 traffic no matter what the connector looks like.

My scanner says "supports heavy duty trucks" but won't connect to my older tractor. Why? Almost always missing J1708 hardware. The tool likely only contains a CAN transceiver for J1939. That's a circuit-board limitation — no software update fixes it.

What's the difference between a PID here and a PID on my car's OBD2 port? Same acronym, unrelated standards. J1587 PIDs are heavy-duty parameter identifiers paired with MIDs and FMIs. OBD2 PIDs belong to the light-duty automotive world. Tools and code lists don't cross over.

Are J1708 trucks worth keeping on the road? Ask the owner-operators still running them. Simple electronics, pre-emissions drivetrains, and a data link that's been documented for thirty years make these some of the most maintainable trucks ever built — if you have a tool that speaks their language.


If your fleet still includes pre-2007 iron, don't let it be the truck your scanner can't talk to. Look for diagnostic tools that support J1708/J1587 alongside J1939, and when a code does pop up, run it through our DTC lookup to see what the truck is actually telling you. The protocol won't die — your ability to read it shouldn't either.

j1708j1587legacyprotocols

Need Help Choosing?

Our product specialists can recommend the right diagnostic tool for your specific needs.