Hardware
Hardware that runs CAN Commander
CAN Commander is firmware. It needs an ESP32 with a CAN transceiver, and there is more than one way to get that: buy the official board, or wire one up yourself.
Comparison
| Build your own | Official CAN Commander board | |
|---|---|---|
| Microcontroller | ESP32-S3 dev board (classic ESP32 also supported) | ESP32-S3 |
| CAN buses | 1: CAN0 | 2: CAN0 (right port) and CAN1 (left port, MCP2517FD/MCP2518FD) |
| Transceiver | SN65HVD230 module | On board |
| Status LEDs | Optional | 2 |
| Flipper connection | Four jumper wires | Plugs onto the GPIO header |
| Firmware and tools | The same firmware, every tool | The same firmware, every tool |
| Get one | Build guide | Buy from Rabbit Labs |
DIY
Build your own
An ESP32-S3 development board and an SN65HVD230 transceiver module make a single-bus CAN Commander. It works with the Flipper app over four jumper wires, or by itself over USB and Wi-Fi.
You get one CAN bus with every tool. You do not get the second bus or the status LEDs, although a dev board's onboard RGB LED can be used as a status light.
Ready made
Official CAN Commander board
An ESP32-S3 board that plugs onto the Flipper Zero's GPIO header. It has two CAN ports, on-board transceivers and two status LEDs, and is powered from the Flipper.
The board was co-developed with Rabbit Labs, who manufacture and sell it. It runs the same open-source firmware published here.
Other supported configurations
All hardware settings are compile-time options in src/BoardConfig.h, so the firmware is not tied to either board above. The build stops with a clear message if two functions are assigned to the same pin.
Microcontrollers
| Default pins | ESP32-S3 | Classic ESP32 (DevKit) |
|---|---|---|
| CAN0 TX / RX | GPIO2 / GPIO1 | GPIO5 / GPIO4 |
| CAN1 SPI CS / MOSI / SCK / MISO | 10 / 11 / 12 / 13 | 15 / 23 / 18 / 19 |
| Flipper UART TX / RX | GPIO43 / GPIO44 | GPIO17 / GPIO16 |
| USB command line | Native USB (CDC) | UART0 |
Other ESP32 variants have no default pin map; define each pin yourself.
Second CAN bus
CAN0 always uses the ESP32's built-in TWAI controller. CAN1 is optional and can be:
- None. CAN0 only. Commands that target
can1report that the bus is unavailable. - MCP2517FD or MCP2518FD over SPI, with a 4, 20 or 40 MHz crystal.
- MCP2515 over SPI, with an 8, 16 or 20 MHz crystal.
Bitrates and modes
CAN0 supports 1000k, 800k, 500k, 250k, 200k, 125k, 100k, 83.333k, 80k, 50k, 40k, 33.333k, 31.25k and 25k, and on ESP32-S3 also 20k, 10k and 5k. Each bus can run in normal mode or in listen-only mode, which never drives the bus. An unsupported bitrate is rejected before the bus is touched.
Pin overrides, example build commands and the full list of options are in the firmware reference.