Skip to content

Chrysler: match firmware revisions with required control ECU evidence - #3739

Open
khchen428 wants to merge 1 commit into
commaai:masterfrom
khchen428:bounty/chrysler-fuzzy
Open

Chrysler: match firmware revisions with required control ECU evidence#3739
khchen428 wants to merge 1 commit into
commaai:masterfrom
khchen428:bounty/chrysler-fuzzy

Conversation

@khchen428

Copy link
Copy Markdown

Replaces #3733 to submit this work from khchen428. The code and commits are unchanged.

The validation described below applies to these unchanged commits and includes results from the original PR. CI for this replacement PR is pending.

Recognize unseen Chrysler firmware revisions by matching the complete eight-character part number while ignoring its two-letter software revision. Require the candidate's known EPS, ABS, radar, and SRS parts, preserve exact matching for opaque radar responses, and tolerate one missing or previously unknown cluster part when other expected modules match. Known conflicting cluster parts and ambiguous candidates remain rejected.

Add a default-on use_generic_fuzzy option and disable it for Chrysler: otherwise generic matching can accept a vehicle from other ECUs before the custom matcher checks unknown or missing control-module firmware. A public-entry regression test demonstrates this bypass and verifies the opt-out. Existing brands retain their current behavior.

Validation:

  • Fifteen Chrysler tests covering every checked-in firmware version, 2,000 deterministic known/revised combinations, all 90 directed platform pairs, malformed responses, missing/conflicting modules, and public matcher integration.
  • Full ./test.sh passes: 3,986 tests run, 3,294 passed and 692 skipped; Ruff, ty, codespell, cpplint, and MISRA pass.
  • A pinned commaCarSegments sample supplies 64 firmware snapshots from 45 devices. Both baseline and proposed matching agree with 63/64 recorded labels, with no wrong or ambiguous matches. The remaining Durango has new control parts and is rejected. Two RAM HD devices with new cluster parts and known control parts motivate the cluster exception.
  • With all parseable software revisions synthetically replaced by ZZ, proposed matching preserves those 63 matches; baseline matches none.
  • An actual historical holdout against the December 2024 database recognizes an unseen EPS revision by part number, but deliberately rejects four additional snapshots with genuinely new ABS/EPS parts: 59/64 matches versus generic matching's 63/64. This is a documented recall cost of requiring known control parts. Logged labels are not independent compatibility evidence.

Dataset revision: edb6480d0e0b5775fde7150c01bcdd5b78d0ad32; historical database: fe27b134350c44724aa2078de12d1c447f8e3083. No hardware was used.

Related to #1092. New control-module part numbers still require validation and database updates; this does not claim to identify every future compatible model.

@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

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.

2 participants