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 ownOfficial CAN Commander board
MicrocontrollerESP32-S3 dev board (classic ESP32 also supported)ESP32-S3
CAN buses1: CAN02: CAN0 (right port) and CAN1 (left port, MCP2517FD/MCP2518FD)
TransceiverSN65HVD230 moduleOn board
Status LEDsOptional2
Flipper connectionFour jumper wiresPlugs onto the GPIO header
Firmware and toolsThe same firmware, every toolThe same firmware, every tool
Get oneBuild guideBuy 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 pinsESP32-S3Classic ESP32 (DevKit)
CAN0 TX / RXGPIO2 / GPIO1GPIO5 / GPIO4
CAN1 SPI CS / MOSI / SCK / MISO10 / 11 / 12 / 1315 / 23 / 18 / 19
Flipper UART TX / RXGPIO43 / GPIO44GPIO17 / GPIO16
USB command lineNative 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 can1 report 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.