Skip to content

Chrysler: reliable fuzzy fingerprinting - #3520

Open
flowmar47 wants to merge 3 commits into
commaai:masterfrom
flowmar47:chrysler-fuzzy-fingerprint
Open

Chrysler: reliable fuzzy fingerprinting#3520
flowmar47 wants to merge 3 commits into
commaai:masterfrom
flowmar47:chrysler-fuzzy-fingerprint

Conversation

@flowmar47

Copy link
Copy Markdown

Implements fuzzy fingerprinting for Chrysler/Dodge/Jeep/Ram. Resolves #1092.

FCA firmware versions are an 8-character part number followed by an alphabetical software revision, e.g. 68227902AF / 68267018AO (engine responses carry a trailing space). Part numbers are platform- and model-year-specific; only the revision changes with software updates. Following the Ford/Hyundai custom fuzzy matching pattern:

  • FW_PATTERN parses every FW version currently in the Chrysler database, including 22DTRHD_AA and M2370131MB.
  • get_platform_codes() extracts the part number, discarding the revision.
  • match_fw_to_car_fuzzy() accepts a candidate only if all of its platform-code ECUs (combinationMeter, srs, abs, eps) are present live with a matching part number. Combination meter part numbers are never shared between platforms; ABS/EPS/SRS parts are shared only between some sibling platforms (e.g. Durango / Grand Cherokee 2019), so requiring all of them keeps matches unique — including for the hybrid platforms, which have no ABS entry.
  • Engine/transmission/radar ECUs are deliberately excluded: their part numbers churn with engine options and yearly radar part updates, which would cause false negatives without adding discrimination.

Tests in opendbc/car/chrysler/tests/test_chrysler.py mirror the Ford suite: every DB version parses, each platform fuzzy-matches only itself, unseen revisions of known parts still match, and unknown part numbers / missing ECUs match nothing.

Tested against past fingerprint PRs: replaying the last ~2 years of additions to opendbc/car/chrysler/fingerprints.py, matching each commit's newly-added FW against the pre-commit database, this fuzzy matcher would have fingerprinted 17 of 28 newly-added FW combinations with zero mismatches. The 11 misses all introduced new trim-specific part numbers (not new revisions), where staying unmatched is the safe behavior.

Validation

  • Dongle ID: n/a (no Chrysler-brand test vehicle; validated by replaying historical fingerprint additions as above)
  • Route: n/a

FCA firmware versions are an 8-character part number followed by an
alphabetical software revision (e.g. 68227902AF). Part numbers are
platform- and model-year-specific while the revision updates with new
software, so match on part numbers for the combination meter, SRS, ABS,
and EPS ECUs, ignoring the revision. No two supported platforms share
all of these part numbers, and a candidate only matches if every one of
its platform-code ECUs is present live with a known part number.

Replaying the last two years of Chrysler fingerprint database additions,
this would have fingerprinted 17 of 28 newly-added FW combinations with
zero mismatches; the misses added new trim-specific part numbers rather
than new revisions.

Fixes commaai#1092
@github-actions github-actions Bot added car related to opendbc/car/ chrysler labels Jul 4, 2026

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for contributing to opendbc! In order for us to review your PR as quickly as possible, check the following:

  • Convert your PR to a draft unless it's ready to review
  • Read the contributing docs
  • Before marking as "ready for review", ensure:
    • the goal is clearly stated in the description
    • all the tests are passing
    • include a route or your device' dongle ID if relevant

@github-actions

github-actions Bot commented Jul 4, 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, 40 passed, 0 errors

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