Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 2.37 KB

README.md

File metadata and controls

43 lines (33 loc) · 2.37 KB

Designed using Kicad 8

Unlike harness box, OBD2-C doesn't use the relay.

The purpose of it is to sniff CAN buses that are already present in OBD-2 port, similar to what white panda was doing in the past, but compatible with OBD-C, though often only diagnostic CAN is populated on OBD-2.

The device exposes three CAN buses out of OBD-C:

  • CAN0 (3, 11)
  • CAN1 is routed to the JST (pin 2,3) connector (can be connected .e.g to StepperServoCAN) and has optional 120ohm termination resistor (see jumpers). Alternatively, bus 1 can be rerouted using jumpers as a GMLAN (obd pin 1) as in white panda - but unlike white panda it uses single wire hack and is not tested
  • CAN2 (pins 12, 13)
  • CAN3 (pins 6, 14) - this one can be used e.g. as "ELM327" or vin reading in openpilot

image As seen from PCB side

Some notes regarding openpilot bus names mapping to STM32 peripherals and harness - (the indexes are not always consistent): HARNESS_STATUS_NORMAL

openpilot STM32F4 Harness WhitePanda
sbu1 sbu2
sbu2 sbu1
bus 0 CAN1 CAN0 CAN1
bus 1 CAN2 CAN1 CAN2
bus 1(obd) CAN2 alt CAN3 GMLAN
bus 2 CAN3 CAN2 CAN3

HARNESS_STATUS_FLIPPED

openpilot STM32F4 Harness WhitePanda
sbu1 sbu1
sbu2 sbu2
bus 0 CAN3 CAN0 CAN1
bus 1 CAN2 alt CAN1 CAN2
bus 1(obd) CAN2 CAN3 GMLAN
bus 2 CAN1 CAN2 CAN3

+obd means set_obd_multiplexing(True) in openpilot aka panda.set_obd(True) in panda lib aka set_can_mode(CAN_MODE_OBD_CAN2) in panda firmware.

Confusing? Yes. Especially inside panda firmware.