[ DIY OBD-II Diagnostic Cable ]
What this is: a ~30cm / 12″ pigtail cable terminating in a standard OBD-II J1962 male connector. It plugs into the diagnostic socket under the dash on any post-1996 vehicle and exposes the individual pins as bare wires you can hook up to a SocketCAN adapter, a logic analyser, or a Raspberry Pi CAN HAT. The point is to use it with general-purpose tooling (can-utils, python-can, SavvyCAN, etc.) rather than a commercial scan tool. Originally built 11.2023; reviewed and updated 05.2026.
[ Parts ]
— OBD-II J1962 Male Connector to Open Plug Wire (any "OBD-II pigtail" cable works -- the linked one happens to have decent wire gauge and the connector latches cleanly) — SocketCAN-capable adapter to wire the other end to. Options: - Waveshare 2-CH CAN HAT for a Pi (two MCP2515s, lets you talk to CAN-C and CAN-IHS simultaneously) - Any USB-CAN adapter that exposes itself as SocketCAN (Korlan USB2CAN, PCAN-USB, gs_usb-class adapters) - Plain MCP2515 module + Pi GPIO if you only need one bus — Heatshrink + multimeter for verifying continuity before you plug into the vehicle.
[ Pin assignments ]
PIN COLOUR* SIGNAL
----- ------------- --------------------
PIN 6 Green CAN-C high (HS-CAN)
PIN 14 Brown-white CAN-C low
PIN 3 Red CAN-IHS high (FCA)
PIN 11 Pink CAN-IHS low (FCA)
PIN 4 Orange Chassis ground
PIN 5 Yellow Signal ground (use this for your SocketCAN
adapter's signal-ground reference)
PIN 16 (n/a here) +12V battery power -- NOT brought out on this
cable; pull from a fuse box
tap if you need to power
the adapter from the vehicle
* Wire colours are the cable manufacturer's choice and are NOT
standardised by SAE J1962. Verify with a multimeter against the
pin numbers on the connector shell before trusting them.
PIN 6 / PIN 14 are SAE J1962–standard CAN High and CAN Low for the primary HS-CAN bus — on FCA / Stellantis platforms that maps to CAN-C (500 kbps powertrain bus). PIN 3 and PIN 11 are optional/manufacturer-defined J1962 pins; FCA uses them for the CAN-IHS body / comfort bus (125 kbps). Other manufacturers use these pins for different purposes — this assignment is JEEP / RAM / Chrysler / Dodge specific.
For signal ground, use PIN 5 (signal ground) for the CAN transceiver reference. PIN 4 (chassis ground) works as a fallback but mixing chassis and signal ground paths through the same adapter can introduce noise on long pigtails.
[ DLC pinout diagram (2021 Wrangler) ]
Reference diagram for the DLC pinout on a 2021 Wrangler. Other JEEP platforms reuse the same J1962 layout, but always cross-reference against the FSM or a known-good factory diagram for your specific year / model before wiring up — FCA does shuffle non-required pins between platforms.

[ Use ]
Once the cable is wired into a SocketCAN adapter, the bus comes up like
any other socketcan interface. Typical first-session sequence:
# Bring CAN-C up at 500 kbps
sudo ip link set can0 up type can bitrate 500000
# Bring CAN-IHS up at 125 kbps (if using a 2-CH HAT or second adapter)
sudo ip link set can1 up type can bitrate 125000
# Sniff all traffic on CAN-C
candump can0
# Watch a specific message ID (e.g. $122 ignition state on CAN-IHS)
candump can1,0122:0FFFF
# Send a frame (UDS extended-session request to the BCM)
cansend can0 620#0210030000000000
From here, the rest of the
Car Hacking landing page applies -- script
catalog, bus & message reference, UDS write operations guide, etc.
For a virtual-CAN dry run before connecting to a real vehicle, see the
Python CAN Bus Lab Guide
on the Guides & Tutorials page.
[ SGW caveat for 2018+ FCA / Stellantis ]
On 2018+ FCA / Stellantis vehicles the Secure Gateway Module sits between the OBD-II port and the rest of the CAN bus. Read-only diagnostics (Mode 01 PIDs, Service 0x22, VIN, stored DTCs — Diagnostic Trouble Codes, the standardised fault codes like P0420 or U0101 that ECUs store when something goes wrong) pass through unauthenticated; writes (Service 0x2F IOControl, Service 0x2E WriteDataByIdentifier, Service 0x31 RoutineControl, Service 0x04 ClearDTCs, etc.) return NRC 0x33 (securityAccessDenied) or silently drop.
This cable plugs into the OBD-II port, so on 2018+ vehicles it inherits the SGW gating: full reads, no writes. If you need write access on a 2018+ vehicle without paying for an AutoAuth subscription, the 13-way connectors behind the glovebox are the unblocked alternative — they sit inside the SGW boundary, so traffic originating from there reaches the internal CAN-C and CAN-IHS buses directly. See the SGW reference for the full picture and bypass-cable options.
[ Safety ]
- Verify continuity before plugging in. A bridged short
between PIN 16 (+12V) and any other pin will trip a fuse at best,
damage your adapter at worst.
- Don't power the Pi off PIN 16 unless you know what you're doing.
PIN 16 is hot whether the ignition is on or not. A Pi left running
indefinitely will eventually flatten the vehicle battery, and a Pi
that draws too much during a crank brown-out can corrupt its SD
card. See the Example CANBus dev stack
page for the Zero2Go Omni mitigation.
- Writes can have real consequences. Stuck immobiliser,
bricked module, ABS fault that needs a dealer reflash. Always
sniff first, write second; bench-test on a spare module before
touching a real vehicle wherever possible.
- The OBD-II port shares ground with the vehicle chassis.
If your adapter is also USB-connected to a laptop that's plugged
into mains power, you've created a ground loop between the vehicle
and your house wiring. Use a USB isolator or run the laptop on
battery while connected.
