Skip to content

Chrysler: fuzzy fingerprint on part numbers - #3727

Open
singhharsh1708 wants to merge 1 commit into
commaai:masterfrom
singhharsh1708:chrysler-fuzzy-fingerprint
Open

Chrysler: fuzzy fingerprint on part numbers#3727
singhharsh1708 wants to merge 1 commit into
commaai:masterfrom
singhharsh1708:chrysler-fuzzy-fingerprint

Conversation

@singhharsh1708

@singhharsh1708 singhharsh1708 commented Sep 8, 2026

Copy link
Copy Markdown

Chrysler has no fuzzy fingerprinting, so a car whose exact firmware combination is not in the database does not match at all. Mopar part numbers are an 8 character part followed by a two character software revision, so matching on the part number alone survives a revision bump.

This matches on combinationMeter, engine, srs and transmission, requires two of them to agree, and tolerates one carrying an unseen part number, which is what a new model year usually looks like. Which ECUs carry the part number matters more than the matching rule: across the 652 firmware strings in the database, no part number on engine, transmission or combinationMeter is shared between two platforms, while srs shares one, abs two, eps three and fwdRadar six, with 04672758 appearing on all four Pacificas.

The brand hook only runs when the generic matcher finds nothing, so the case it actually changes is an unseen software revision. With every revision bumped to one not in the database, master matches 0 of 10 platforms on full firmware, 0 of 51 when two platform code ECUs respond, and 0 of 31 when three do. With this it is 10 of 10, 51 of 51 and 31 of 31, and no wrong car in any of them. On exact firmware the generic matcher already matches every platform and the hook is never reached, so nothing there changes.

Tolerating one unseen ECU is #3717's idea and I kept it. Without it every ECU set drops to zero the moment one part number is unseen.

Grand Cherokee and Grand Cherokee 2019 share srs part number 68355363. A shared code only makes a match ambiguous, and ambiguous matches are rejected, so it is safe, but a new one would quietly shrink what can be identified, so there is a test pinning the known set. Both thresholds are covered too: raising the unseen tolerance or lowering the minimum number of agreeing ECUs each fails a test.

No dongle ID or route applies, this does not change anything a car does.

PRs #3520, #3717 and #3725 are open on this and got here first. If one of theirs lands, it lands.

Closes #1092

@github-actions github-actions Bot added car related to opendbc/car/ chrysler labels Sep 8, 2026
@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Car behavior report

Replays driving segments through this PR and compares the behavior to master.
Please review any changes carefully to ensure they are expected.

Testing 40 segments for: CHRYSLER_PACIFICA_2018_HYBRID, CHRYSLER_PACIFICA_2019_HYBRID, CHRYSLER_PACIFICA_2018, CHRYSLER_PACIFICA_2020

✅ 0 changed, 35 passed, 5 errors

Show errors

Traceback (most recent call last):
  File "/home/runner/work/opendbc/opendbc/opendbc/car/tests/car_diff.py", line 86, in process_segment
    can_msgs = load_can_messages(seg)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/opendbc/opendbc/opendbc/car/tests/car_diff.py", line 56, in load_can_messages
    url = get_url(f"{parts[0]}/{parts[1]}", parts[2])
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/opendbc/opendbc/.venv/lib/python3.12/site-packages/comma_car_segments/__init__.py", line 91, in get_url
    return get_repo_url(f"segments/{route.replace('|', '/')}/{segment}/{file}")
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/opendbc/opendbc/.venv/lib/python3.12/site-packages/comma_car_segments/__init__.py", line 80, in get_repo_url
    assert response.status_code == 200
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

@singhharsh1708
singhharsh1708 force-pushed the chrysler-fuzzy-fingerprint branch from 90f4f23 to 49ce97e Compare September 8, 2026 16:43
@singhharsh1708
singhharsh1708 force-pushed the chrysler-fuzzy-fingerprint branch from 49ce97e to 5f58c98 Compare September 9, 2026 08:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

car related to opendbc/car/ chrysler

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chrysler: reliable fuzzy fingerprinting

1 participant