Skip to content

VW: add MEB to the CarController architecture dispatch - #3612

Draft
sshane wants to merge 1 commit into
masterfrom
vw-carcontroller-arch-dispatch
Draft

VW: add MEB to the CarController architecture dispatch#3612
sshane wants to merge 1 commit into
masterfrom
vw-carcontroller-arch-dispatch

Conversation

@sshane

@sshane sshane commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

self.CCS had no MEB branch, so MEB silently fell through to mqbcan while also calling mebcan directly for steering/accel/wheel touch. LDW_02 and GRA_ACC_01 were built by mqbcan, leaving mebcan's own versions dead.

Add MEB to the dispatch and route every message through self.CCS. The per-message rate checks are shared, so update() keeps them in one place and hands off to a function per concern that branches only where the architectures truly differ (steering, ACC, ACC HUD).

Drop mebcan's LDW display_mode offset: LDW_Lernmodus_links/rechts are 2 bit signals fully spoken for by 0-3, so 3 + display_mode overflowed to 0 on lane depart, and the non-depart branch rendered a merely visible lane as the departure value. Now matches mqbcan/pqcan.

Verified no change on the wire: 4493 messages over 400 frames x PQ/MQB/MLB/MEB x stock/longitudinal are bit-identical to master.

Validation

  • Dongle ID:
  • Route:

self.CCS had no MEB branch, so MEB silently fell through to mqbcan while
also calling mebcan directly for steering/accel/wheel touch. LDW_02 and
GRA_ACC_01 were built by mqbcan, leaving mebcan's own versions dead.

Add MEB to the dispatch and route every message through self.CCS. The
per-message rate checks are shared, so update() keeps them in one place
and hands off to a function per concern that branches only where the
architectures truly differ (steering, ACC, ACC HUD).

Drop mebcan's LDW display_mode offset: LDW_Lernmodus_links/rechts are
2 bit signals fully spoken for by 0-3, so 3 + display_mode overflowed to
0 on lane depart, and the non-depart branch rendered a merely visible
lane as the departure value. Now matches mqbcan/pqcan.

Verified no change on the wire: 4493 messages over 400 frames x
PQ/MQB/MLB/MEB x stock/longitudinal are bit-identical to master.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added car related to opendbc/car/ volkswagen labels Jul 28, 2026
@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 130 segments for: VOLKSWAGEN_ARTEON_MK1, VOLKSWAGEN_ATLAS_MK1, VOLKSWAGEN_CRAFTER_MK2, VOLKSWAGEN_GOLF_MK7, VOLKSWAGEN_JETTA_MK7, VOLKSWAGEN_PASSAT_MK8, VOLKSWAGEN_PASSAT_NMS, VOLKSWAGEN_POLO_MK6, VOLKSWAGEN_TAOS_MK1, VOLKSWAGEN_TIGUAN_MK2, VOLKSWAGEN_TOURAN_MK2, VOLKSWAGEN_TRANSPORTER_T61, VOLKSWAGEN_TROC_MK1

✅ 0 changed, 130 passed, 0 errors

@sshane
sshane marked this pull request as draft August 6, 2026 03:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

car related to opendbc/car/ volkswagen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant