Skip to content

feat: opt-in Summon EU Unlock (0x3FD mux1 bit47) for HW3/HW4 - #144

Merged
hypery11 merged 1 commit into
mainfrom
feat/summon-eu-unlock
Aug 5, 2026
Merged

feat: opt-in Summon EU Unlock (0x3FD mux1 bit47) for HW3/HW4#144
hypery11 merged 1 commit into
mainfrom
feat/summon-eu-unlock

Conversation

@hypery11

@hypery11 hypery11 commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Adds an opt-in Summon EU Unlock toggle (default OFF) that clears the EU summon restriction bit and sets the summon-enable bit on 0x3FD (DAS_autopilotControl) mux 1, on both HW3 and HW4.

Background

The bits are the two documented in the ev-open-can-tools summon-eu-unlock.json plugin: 0x3FD mux 1, clear bit 19 (EU restriction), set bit 47 (summon enable). HW4 already set both as part of the AP-control injection; HW3 cleared bit 19 but never set bit 47, so this closes that gap and exposes it as an explicit, persisted, opt-in control. Refs #111, #139.

Changes

  • fsd_state.h: new bool summon_unlock (default OFF).
  • Flipper + ESP32 0x3FD handlers: set bit 47 under the flag. ESP32 mux-1 gate widened to (nag_killer || summon_unlock), with the nag bits kept inside if(nag_killer) so nag output is byte-for-byte identical when summon is off.
  • prefs.cpp: NVS persistence (summon).
  • web_dashboard.cpp: "Summon EU Unlock" toggle in Controls.
  • test_fsd_core.c: test_summon_unlock (HW3/HW4 × on/off). 467 host tests pass.

Known limitations

  • On the Flipper core, HW4 mux-1 sets bit 47 unconditionally (pre-existing, left untouched to avoid regressing nag behaviour), so the toggle only changes the HW3 frame there; ESP32 gates both. Reconciling this divergence is a follow-up.
  • Flipper on-device menu item not added yet (ESP32 dashboard only).
  • Not yet validated on a car — off by default; needs an on-car confirmation before it's recommended.

@hypery11
hypery11 merged commit 9015256 into main Aug 5, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant