Skip to content

v2.16-beta — Flipper CAN Capture (please test) + shared protocol core

Pre-release
Pre-release

Choose a tag to compare

@hypery11 hypery11 released this 01 Jun 14:37
· 33 commits to main since this release

Testing build. The headline is a new Flipper CAN Capture — and it is read-only, so it is safe to run on a live car. Please try it and report back.

New: CAN Capture (Flipper)

Settings → CAN Capture ON, then run in Listen-Only. Every received frame is written to the SD card at:

/ext/apps_data/tesla_mod/captures/cap_<n>.log

in candump format ((sec.usec) can0 ID#DATA). The running screen shows REC <n>. It never transmits.

The ESP32 already had capture (SD dump + the port-82 stream); this brings the Flipper to parity, so no laptop tap is needed to grab a log.

Why it matters

A capture drops straight into the checksum cracker:

python3 tools/tesla_crc_cracker.py --id 0xNNN cap_<n>.log

Captures of counter+checksum frames like 0x485 (Highland gear shift) and 0x229 (pre-Highland stalk) are exactly what is needed to recover their checksum and unlock those injections.

Under the hood

  • Shared protocol core — Flipper and ESP32 now share one CAN frame type, the enums, FSDState, the Tesla additive checksum, the candump formatter, and the stateless frame helpers. The checksum (which the car rejects on mismatch) is now a single tested implementation. OpMode was renumbered to the ESP32's persisted values, so there is no settings migration and behavior is unchanged.
  • 186 host tests + CI gate — every protocol-core handler now has a host test with an independent oracle; CI runs them on every push/PR and gates both builds, so a one-byte regression goes red instead of reaching a car.

How to help

  1. Flipper + CAN add-on on a car → CAN Capture ON → Listen-Only.
  2. Confirm cap_*.log appears under apps_data/tesla_mod/captures/ with (t) can0 ID#DATA lines.
  3. Bonus: run the cracker on a capture and report what it finds.
  4. File a car_compatibility issue with your model / year / HW / firmware and attach the capture.

Downloads below: tesla_mod.fap (Flipper) and the ESP32 .bin variants, built by CI.

Thanks: @vrs11 (ESP32 HTTP CAN log + the candump format this mirrors), @BenjaminFaal (0x485 PM_locState finding driving the capture→cracker workflow), and everyone testing on-car.