# ecuLink Glossary Definitions for the heavy-duty truck diagnostic protocols, APIs, and standards referenced across ecuLink's product and documentation. ## J1939 (SAE J1939) SAE J1939 is the standard communication protocol used by heavy-duty trucks, buses, and off-highway equipment to share data between electronic control units. It runs on top of CAN 2.0B (29-bit identifiers) at typical bit rates of 250 kbit/s or 500 kbit/s and is the protocol every modern Class 8 truck speaks at its 9-pin diagnostic connector. Each J1939 message carries a Parameter Group Number (PGN) and a set of Suspect Parameter Numbers (SPNs). PGNs identify groups of related signals — engine speed, vehicle speed, transmission state — while SPNs identify the specific signal inside the group. Diagnostic Trouble Codes (DTCs) are also transmitted using SPN/FMI pairs, which is why fault codes from any J1939 truck look similar regardless of OEM. J1939 replaced the older J1708/J1587 protocol on trucks built from roughly 2007 onward. Pre-2007 trucks usually still expose J1708 instead, which is why heavy-duty diagnostic tools (and ecuLink's gateway) support both. On the diagnostic side, J1939 is the bus that tools like JPRO, Cummins INSITE, and Detroit DDDL talk to, either through a USB VCI plugged into the dash connector or through a remote pass-through like ecuLink. Related: [rp1210](https://eculink.io/glossary/rp1210), [j1708](https://eculink.io/glossary/j1708), [can-bus](https://eculink.io/glossary/can-bus) ## RP1210 (TMC RP1210) RP1210 is a Windows API published by the American Trucking Associations' Technology & Maintenance Council (TMC). It defines a common interface that lets a heavy-duty diagnostic application talk to any vendor's vehicle communication interface (VCI) — whether that VCI is a USB adapter, a Bluetooth adapter, or a remote pass-through like ecuLink. In practice, every Class 8 diagnostic tool on the market — JPRO, Cummins INSITE, Detroit DDDL, Volvo PTT, Paccar ESA, CAT ET, Jaltest — speaks RP1210. When you install a VCI's drivers on Windows, those drivers register an RP1210 DLL that all of these applications can find. The application picks the adapter from a list, opens an RP1210 session, and from that point reads and writes J1939 (and J1708) frames through the API. Because the interface is standardized, any RP1210-aware application can use any RP1210-compliant adapter. This is the property that makes remote diagnostics practical: ecuLink registers itself as an RP1210 adapter on the technician's laptop, then pipes the J1939 traffic over a secure VPN to the gateway plugged into the truck. The diagnostic tool sees a normal local adapter and is unaware the vehicle is hundreds of miles away. RP1210 has gone through several revisions (RP1210A, B, C); current applications generally target RP1210C, which adds support for newer protocols and better multi-channel handling. Related: [j1939](https://eculink.io/glossary/j1939), [j2534](https://eculink.io/glossary/j2534), [j1708](https://eculink.io/glossary/j1708) ## J2534 (SAE J2534) SAE J2534 is a standardized pass-through API that was originally created so that independent repair shops could reflash emissions-related ECUs using the same generic adapter, regardless of vehicle make. It is the light-duty equivalent of RP1210 — a common Windows API that lets any J2534-compatible diagnostic tool drive any J2534-compatible adapter. J2534 supports a range of vehicle protocols (CAN, ISO 14229 / UDS, ISO 15765, K-Line, J1850 PWM/VPW, and more) and is widely used in OEM scan tools for passenger cars and light trucks. It is also used in heavy-duty work where the application targets ECU reprogramming or unified diagnostic services on top of CAN. ecuLink presents itself as both an RP1210 adapter (for traditional heavy-duty diagnostics) and a J2534 adapter (for ECU reprogramming and UDS-based workflows). Applications that target either interface can drive the same physical gateway over a remote network connection. Because reflashing is sensitive to network latency, we recommend validating the workflow with our team before standardizing on remote J2534 flashing for production fleets. Related: [rp1210](https://eculink.io/glossary/rp1210), [uds](https://eculink.io/glossary/uds), [j1939](https://eculink.io/glossary/j1939) ## CAN Bus (Controller Area Network) Controller Area Network (CAN) is a multi-master serial bus standard developed by Bosch in the 1980s and now standardized as ISO 11898. It uses a pair of differential wires (CAN-H and CAN-L) so that controllers can share short messages with strong noise immunity, no central host, and built-in arbitration when two ECUs try to transmit at the same time. A CAN frame carries an identifier (11-bit in CAN 2.0A or 29-bit in CAN 2.0B), up to eight bytes of payload, and a CRC. The lower the identifier, the higher the priority — when two ECUs start transmitting simultaneously, the one with the lower identifier wins and the loser backs off, all without losing the message it was trying to send. CAN is the physical and link layer underneath J1939 (heavy-duty), OBD-II (light-duty), and most modern in-vehicle networks. CAN FD (Flexible Data-Rate) extends CAN with up to 64 bytes of payload and bit rates of several megabits per second; it is becoming common on newer vehicles but is not yet universal in the Class 8 truck market. For diagnostic purposes, the relevant property of CAN is that any ECU on the bus can see every message — that is what allows a diagnostic tool to monitor the full picture from a single physical connection at the dash. Related: [j1939](https://eculink.io/glossary/j1939), [uds](https://eculink.io/glossary/uds), [j1708](https://eculink.io/glossary/j1708) ## UDS (ISO 14229 — Unified Diagnostic Services) Unified Diagnostic Services (UDS) is the diagnostic protocol defined in ISO 14229. It standardizes the request and response messages a diagnostic tool exchanges with an ECU — for reading identification, reading and clearing fault codes, reading data parameters, performing routines (like an actuator test), and performing ECU reprogramming. UDS sits above the transport layer (typically ISO-TP / ISO 15765-2 on CAN) and is independent of the wiring. The same UDS service request — say, ReadDataByIdentifier 0xF190 to read a VIN — looks the same on a Class 8 truck and on a passenger car. This standardization is part of why modern diagnostic tools can support a wide range of vehicles without custom code per ECU. In heavy-duty work, UDS is increasingly common alongside the older J1939 diagnostic services. Newer engine and aftertreatment ECUs often support both: J1939 for the day-to-day fault data, and UDS for deeper diagnostic routines and reprogramming. ecuLink passes both through transparently, so the diagnostic tool decides which protocol to speak on a per-ECU basis. Related: [j1939](https://eculink.io/glossary/j1939), [j2534](https://eculink.io/glossary/j2534), [can-bus](https://eculink.io/glossary/can-bus) ## J1708 (SAE J1708 / J1587) SAE J1708 is the older serial bus used on heavy-duty trucks built before approximately 2007, before J1939 (CAN-based) became the industry default. Physically, J1708 is a half-duplex two-wire bus running at 9.6 kbit/s; logically, the application layer is defined by SAE J1587, which assigns Message Identifiers (MIDs) to each ECU and parameter IDs (PIDs) to each signal. While J1939 has long since replaced J1708 on new vehicles, a large fleet of older Cummins, Detroit, CAT, and International trucks still in revenue service exposes only J1708 at the dash. Diagnostic tools and pass-through adapters that target heavy-duty work generally support both protocols on the same physical 6- or 9-pin Deutsch connector — selectable per session. ecuLink's gateway speaks J1708 in addition to J1939, so you can run legacy diagnostics on pre-2007 vehicles using the same hardware that handles modern J1939 trucks. The signaling rate is much lower than J1939, which can make remote sessions a little slower, but every J1708 service that works locally also works through the pass-through. Related: [j1939](https://eculink.io/glossary/j1939), [rp1210](https://eculink.io/glossary/rp1210), [can-bus](https://eculink.io/glossary/can-bus)