commaai / opendbc

a Python API for your car
MIT License
1.97k stars 1.17k forks source link

Subaru: Forester 2022 support #1143

Open AlterTheEnding opened 2 years ago

AlterTheEnding commented 2 years ago

Describe the bug

I recently got the comma three and my device will only work in dashcam mode on my 22 Subaru Forester Wilderness. I’m new to all this so I hope I report all this correctly, I apologize in advance.

Which car does this affect?

Subaru Forester Wilderness 2022

Provide a route where the issue occurs

8db3f557a1e70a1a|2022-11-26--19-49-23

openpilot version

Master-ci

Additional info

I first tried the open pilot release dashcam mode only then the Subaru communities fork/branch (sorry new here) and that was dash cam mode only then read the help page for fingerprinting and tried master-ci version and still dashcam mode only. I truly appreciate your help!

AlterTheEnding commented 2 years ago

Thank you for labeling all this correctly for me, I appreciate your help on this.

martinl commented 2 years ago

I looked at the route and required carFw values for Subaru are missing Eyesight ecu response (0x787).

We also tried to run fw_versions.py --scan on c3 via ssh but no luck:

Found FW versions
{
  Brand: hyundai   , bus: 1 - (Ecu.fwdRadar, 0x7d0, None): [b'\xf1\x00\x00\x00\x02']
  Brand: hyundai   , bus: 1 - (Ecu.fwdCamera, 0x7c4, None): [b'\xf1\x00\xac\x02\x00']
  Brand: hyundai   , bus: 1 - (Ecu.transmission, 0x7e1, None): [b'\xf1\x00\xd7\x10@']
  Brand: hyundai   , bus: 1 - (Ecu.fwdRadar, 0x7d0, None): [b'\xf1\x00\x00\x00\x02']
  Brand: hyundai   , bus: 1 - (Ecu.transmission, 0x7e1, None): [b'\xf1\x00\xd7\x10@']
  Brand: subaru    , bus: 1 - (Ecu.abs, 0x7b0, None): [b'\xa3 !x\x00']
  Brand: subaru    , bus: 1 - (Ecu.eps, 0x746, None): [b'-\xc0%0']
  Brand: subaru    , bus: 1 - (Ecu.engine, 0x7e0, None): [b'\xd5"a0\x07']
  Brand: subaru    , bus: 1 - (Ecu.transmission, 0x7e1, None): [b'\x1d\x86B0\x00']
  Brand: subaru    , bus: 1 - (Ecu.unknown, 0x717, None): [b'\xb3 !\x01\x00']
  Brand: volkswagen, bus: 1 - (Ecu.transmission, 0x7e1, None): [b'\xf1\x82\x1d\x86B0\x00']
}

Possible matches: set()
Getting fw took 4.573 s

then stopped openpilot and ran ./panda/examples/query_fw_versions.py

comma@tici:/data/openpilot$ ./panda/examples/query_fw_versions.py
opening device 0b0026001850335332313620 0xddcc
connected
querying addresses ...
0x18dafff1: 100%|████████| 512/512 [01:49<00:00,  4.69it/s]

 Results for address 0x717 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xb3 !\x01\x00'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Electric Brake Booster          '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x11\x11\x11\x11'

 Results for address 0x742 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xf1\x00\x01'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'050000\x00\x00\x00\x00'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'87611VC002'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'RADAR ASSY B&S LH               '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\xff\x00\x00\x00'

 Results for address 0x743 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xf1\x10\x01'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'050000\x00\x00\x00\x00'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'87611VC002'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'RADAR ASSY B&S RH               '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\xff\x00\x00\x00'

 Results for address 0x746 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'-\xc0%0'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Power Steering System           '

 Results for address 0x747 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'!2$\x10'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'6046P-10'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'84051SJ060'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Automatic Headlight Leveling    '
 Results for address 0x752 *

0xF182 APPLICATION_DATA_IDENTIFICATION: b'G\x83 \x03'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Integ. Unit mode                '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x00\x00\x00\x00'

 Results for address 0x753 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\r\xaa\x04\x00'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Tire pressure monitor           '

 Results for address 0x776 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'$\x00!\x04@'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'DCM_30.11.07_20210802\x00\x00\x00\x00'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'86222SJ210'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Data Communication Module\x00\x00\x00\x00\x00\x00\x00'
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x7f$\x9dX'

 Results for address 0x780 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x90\x167\x00\x01'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'\x00\x00\x00\x00\x00'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'98221SJ370'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Airbag System\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f'
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\xd5R\xab\x95'

 Results for address 0x783 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'214\x00\x02'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'214A050000'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'85012SJ540'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'METER                           '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x00\x00\x00\x00'

 Results for address 0x786 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xab\t@'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'V9816000'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'87631SJ020'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Sonar system                    '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x01\x02\x04\x03'

 Results for address 0x787 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x04!\x01\x1eD\x07!\x00\x04,'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x01'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'EyeSight                        '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'!\x853F'
 Results for address 0x7B0 *

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xa3 !x\x00'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'27536SJ140'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'VDC/Parking Brake System        '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x11\x11\x11\x11'

 Results for address 0x7B4 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x00\x02\x00\x100'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'0002001030'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Keyless Access & Push Start (C) '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'KATO'

 Results for address 0x7C1 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x00\x01\x00\x110'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'0001001130'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Keyless Access & Push Start (P) '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'KATO'

 Results for address 0x7C4 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'"\x02\x10\x01\x01'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'S2V ver7.60'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Air Condition System            '

 Results for address 0x7D0 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x00\x00\x01'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x01'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'86271SJ650'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'Infotainment System\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f\x7f'
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\xff\xff\xff\xff'

 Results for address 0x7D5 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x02\x9f\x81\x02\x00\x04\x84\x82\x10\x00'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF189 VEHICLE_MANUFACTURER_ECU_SOFTWARE_VERSION_NUMBER: b'4848100020'
0xF18E VEHICLE_MANUFACTURER_KIT_ASSEMBLY_PART_NUMBER: b'85261SJ810'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'MFD                             '
0xF198 REPAIR_SHOP_CODE_OR_TESTER_SERIAL_NUMBER: b'\x7f$\x9dX'

 Results for address 0x7E0 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\xd5"a0\x07'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF187 VEHICLE_MANUFACTURER_SPARE_PART_NUMBER: b'\x00\x00\x00\x00\x00\x00\x00\x00'
0xF190 VIN: b'JF2xxxxxxxxxxxxxxxxxx'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'2.5 DOHC                        '

 Results for address 0x7E1 

0xF182 APPLICATION_DATA_IDENTIFICATION: b'\x1d\x86B0\x00'
0xF186 ACTIVE_DIAGNOSTIC_SESSION: b'\x03'
0xF197 SYSTEM_NAME_OR_ENGINE_TYPE: b'CVT                             '
comma@tici:/data/openpilot$

so Eyesight is still 0x787 and fw version is b'\x04!\x01\x1eD\x07!\x00\x04,' could this be timing issue?

martinl commented 1 year ago

Also, 2022 Forester does not have CruiseControl On and Activated signals, same as 2020+ Forester Hybrid. We'll test with ES_DashStatus

Screenshot 2022-11-28 at 18 50 04

Route: 8db3f557a1e70a1a|2022-11-27--19-44-26

martinl commented 1 year ago

ES_LKAS is also not used and there is new message 0x124

Screenshot 2022-11-28 at 21 08 08
sshane commented 1 year ago

Looks like 0x787 responds negatively to the tester present query we make, so it doesn't continue to get the FW version.

martinl commented 1 year ago

we have initial Forester 2022 port using ES_LKAS_2 working, currently needs tuning https://github.com/martinl/openpilot/tree/forester-2022

martinl commented 1 year ago
Screenshot 2022-12-04 at 22 21 00
justaguyinaz commented 3 months ago

So did this work? Thinking about getting a comma for my 2024 Forester, but don’t want to spend that much if it is only a dashcam. Glad to help where I can with development, though (testing, etc.).

martinl commented 3 months ago

So did this work? Thinking about getting a comma for my 2024 Forester, but don’t want to spend that much if it is only a dashcam. Glad to help where I can with development, though (testing, etc.).

Angle-based models like Forester 2022-2023 have support in a separate branch but are still waiting for review before getting merged to upstream. You can always return the comma device within 30 days no questions asked if you are not happy with it