Tool
CAN Commander
A Flipper Zero app and earlier Arduino sketches for reverse engineering CAN bus traffic, chiefly in vehicles. The current app is a UART front end for a CAN Commander ESP32 board: it streams all or filtered frames, lists unique IDs, measures message rates, tracks per-bit and per-byte changes, and runs a two-phase Auto Reverse Engineer that first calibrates out background traffic and then shows which IDs change during an action. It also decodes live signals from DBC-based profiles and reads OBD-II PIDs, the VIN and trouble codes.
Requirements & limits
- The reviewed main commit of 2026-04-25 sets app version v2.3.1 (fap_version 2.3), and there are no GitHub releases. The app needs a CAN Commander board connected to the Flipper's GPIO and running ESP32 firmware v2.2 or newer. That firmware, and the converter from .dbc files to the app's .dbcprof and .injprof profiles, are offered at cancommander.com rather than in this repository.
- The README lists limits such as 16 cached DBC signals, 10 tracked changed IDs on the reverse-engineering dashboard and 384 frames per replay recording, and warns that heavy traffic needs filtering and that streaming the Flipper screen during DBC decoding can exhaust RAM. A Wi-Fi TCP command line mirrors the USB command set; dedicated companion clients are described as planned.
- Legacy/ keeps the earlier Arduino sketches for Arduino, ESP8266, ESP32 or RP2040 boards with an MCP2515 controller, a bundled MCP2515 library copy with an MIT notice, a JavaScript BLE companion app, OBD-II PID tables and about 80 vehicle DBC files without a stated source or license. The repository has no tests or CI.
- The write, Smart Injection, Replay and Clear DTCs tools transmit on the bus and can change vehicle state; use them only on vehicles and networks you own or are authorized to test. This record covers the monitoring, discovery and decoding functions. There is no license file and GitHub detects none, so reuse terms for the project's own code are not stated. The reviewed sources state no REA use, and no hardware was connected for this record.
About this entry
- Type
- Tool
- Category
- Protocol analysis tools
- Relationship
- Foundation tool
- Targets
- Protocol
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- README.md#L554-L615 GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- CAN_Commander_FlipperZero/can_commander/application.fam GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- CAN_Commander_FlipperZero/can_commander/can_commander.h GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- Legacy/README.md GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- Legacy/CAN_Resources/DBC_Files GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
- Legacy/ArduinoEnvironment/libraries/mcp2515/LICENSE.md GitHub · MatthewKuKanich/CAN_Commander · Revision 6079fe0
More in Protocols
- Automated CAN Payload Reverse Engineering · Tool
- open-appleremote: Siri Remote protocol reconstruction · Case study
- GAMEKB-K17: reconstructing a macropad configuration protocol · Case study
- cooler-lcd: a Thermalright display protocol implementation · Case study
- NJFE: a Soulear camera protocol bridge for desktop inspection · Case study
- hw-harness: scanner USB protocol investigation · Case study