Skip to content

Subaru Fingerprinting v2

martinl edited this page Jul 9, 2020 · 11 revisions

Fingerprinting 2.0

Creating Full Fingerprint 2.0

  • Turn off car

  • Using Black Panda and EON:

    • connect Black Panda to car harness and EON to Black Panda
  • Using Comma 2:

    • connect Comma 2 to car harness
  • Switch Enabled toggle Off in Openpilot menu to put Openpilot in passive mode

  • Run these commands in 2 separate sessions (SSH into EON, run "tmux a" and press "` + c" to create new sessions)...
    in first session run:
    /data/openpilot/selfdrive/boardd/boardd
    in second session run (one line):
    PYTHONPATH=/data/openpilot /data/openpilot/selfdrive/selfdrive/car/fw_versions_subaru.py --scan

  • Turn on the car's ignition, and wait up to ~20 seconds until you get a list of ECU descriptions

Found FW versions
{
  (Ecu.unknown, 0x7d0, None): [b'\xf1\x00\x00\x00\x02']
  (Ecu.unknown, 0x7e0, None): [b'2.0 DOHC                        ']
  (Ecu.unknown, 0x7c4, None): [b'Air Condition System            ']
  (Ecu.unknown, 0x7e1, None): [b'CVT                             ']
  (Ecu.unknown, 0x746, None): [b'Power Steering System           ']
  (Ecu.unknown, 0x787, None): [b'EyeSight System                 ']
  (Ecu.unknown, 0x7b0, None): [b'VDC/Parking Brake System        ']
  (Ecu.unknown, 0x780, None): [b'Airbag System\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f']
  (Ecu.unknown, 0x735, None): [b'Keyless Entry System            ']
  (Ecu.unknown, 0x747, None): [b'Automatic Headlight Leveling    ']
  (Ecu.unknown, 0x753, None): [b'Tire pressure monitor           ']
  (Ecu.unknown, 0x752, None): [b'\xf1\x00 \x80\x86']
  (Ecu.unknown, 0x783, None): [b'METER                           ']
  (Ecu.unknown, 0x7d5, None): [b'\xf1\x000\x00\x00']
  (Ecu.unknown, 0x7f1, None): [b'Airbag System\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f']
  (Ecu.unknown, 0x750, 0xec): [b'\xf1\x00\x00\x00\x00']
}
  • Turn off car's ignition in same session run (one line):
    PYTHONPATH=/data/openpilot /data/openpilot/selfdrive/selfdrive/car/fw_versions.py --scan

  • Turn on the car's ignition, and wait up to ~20 seconds until you get a list of FW versions

Found FW versions
{
  (Ecu.eps, 0x746, None): [b'z\xc0\x0c\x00']
  (Ecu.esp, 0x7b0, None): [b'z\x94?\x90\x00']
  (Ecu.fwdCamera, 0x787, None): [b'\x00\x00d\xb5\x1f@ \x0e']
  (Ecu.engine, 0x7e0, None): [b'\xaaafs\x07']
  (Ecu.transmission, 0x7e1, None): [b'\xe3\xe5F1\x00']
  (Ecu.unknown, 0x735, None): [b'\x04\x06\x02\x00\x01']
  (Ecu.srs, 0x780, None): [b'\x00\x92\x15\x16\x00']
  (Ecu.unknown, 0x747, None): [b'\x16 \x14\x00']
  (Ecu.unknown, 0x753, None): [b'z\xaa\x01\x00']
  (Ecu.unknown, 0x752, None): [b'A\x85\xcc\x00']
  (Ecu.unknown, 0x783, None): [b'143\x00\x07']
  (Ecu.unknown, 0x7d0, None): [b'\x00\x00\x01']
  (Ecu.unknown, 0x7c4, None): [b'\x12\x00\x10\x00\x01']
}
  • Copy the FW versions obtained in previous step by ECU address (0x780) into the "FW_FINGERPRINTS" section of
    /data/openpilot/selfdrive/car/subaru/values.py

  • Turn off car's ignition

  • Switch Openpilot Enabled toggle in the menu On

  • Reboot EON/C2