Get started

Three ways to get started

CAN Commander needs an ESP32 board running the firmware and something to drive it with. Pick the section that matches the hardware you have.

Flipper Zero and a board

You need a Flipper Zero and a CAN Commander board: either the official board or one you built yourself.

  1. Check the firmware. Flipper app v2.3.1 needs firmware v2.2 or newer and will tell you at startup if the board is behind. Update from the web flasher.
  2. Install the Flipper app. The app is a standard ufbt project. With the Flipper connected over USB:
    git clone https://github.com/MatthewKuKanich/CAN_Commander.git
    cd CAN_Commander/CAN_Commander_FlipperZero/can_commander
    ufbt launch
    ufbt launch builds the app, installs it and starts it. Running ufbt alone builds dist/can_commander.fap.
  3. Connect the hardware. Plug the board onto the Flipper's GPIO header and attach the CAN wires. On the official board the right port is the primary bus, can0. On a vehicle's OBD-II connector, high-speed CAN is on pin 6 (CAN-H) and pin 14 (CAN-L).
  4. Open the app. Go to Apps > GPIO > CAN Commander. The app powers the board, connects, and checks the firmware version.
  5. Start by listening. Run Tools > Monitor & Discovery > Read All Frames, Unique IDs or the CAN Speed Test to confirm you can see traffic before you try anything that transmits.

From there, the Flipper app guide walks through each workflow: diagnostics, filtering, Smart Injection, replay, reverse engineering and DBC decoding.

Build your own board

A single-bus CAN Commander is two inexpensive modules and a handful of jumper wires. It runs the same firmware as the official board and has every tool. What you give up is the second CAN bus and the status LEDs.

PartNotes
ESP32-S3 dev board with native USBFor example an ESP32-S3-DevKitC-1. Any S3 board that breaks out GPIO1, 2, 17 and 18 works.
SN65HVD230 CAN transceiver moduleA 3.3 V transceiver. Do not use a 5 V-only transceiver such as a TJA1050 module without level shifting.
Jumper wires8 to 10.
OBD-II pigtail or breakoutOnly needed for in-vehicle use.
Flipper ZeroOptional. The board also works by itself over USB or Wi-Fi.

The transceiver connects to the ESP32-S3 on four pins:

SN65HVD230 moduleESP32-S3
3V33V3
GNDGND
CTX (also labelled D or TXD)GPIO2
CRX (also labelled R or RXD)GPIO1

The firmware for this board is compiled with a few options that turn off the second bus and move the Flipper connection to free pins, so build it from source rather than using the official image:

arduino-cli compile --fqbn esp32:esp32:esp32s3:CDCOnBoot=cdc \
  --build-property "compiler.cpp.extra_flags=-DBOARDCFG_CAN1_DRIVER=0 -DBOARDCFG_NEOPIXEL_ENABLED=0 -DBOARDCFG_FLIPPER_UART_TX_PIN=17 -DBOARDCFG_FLIPPER_UART_RX_PIN=18" .

arduino-cli upload --fqbn esp32:esp32:esp32s3:CDCOnBoot=cdc -p <PORT> .

The build guide has the complete wiring for the Flipper and the CAN bus, termination and power notes, Arduino IDE steps, a first test and troubleshooting.

Command line only

Every tool is a text command, so a Flipper is optional. Connect the board's native USB port to a computer and open any serial terminal at 115200 baud.

ver
status

ver prints the firmware version and status the state of the buses and Wi-Fi. With the CAN wires connected and the ignition on, listen without transmitting:

bus set bus=can0 bitrate=500000 mode=listen
tool start read_all bus=can0

Frames should start scrolling; stop with tool stop. Listen mode never drives the bus, which makes it the safe way to check wiring and bitrate on an unfamiliar vehicle. Before using a tool that transmits, switch back:

bus set bus=can0 bitrate=500000 mode=normal

Over Wi-Fi

The board can host its own access point and serve the same command line over TCP. It is off by default. Anyone who joins the access point can transmit on the CAN bus, and the default password is public, so set your own before you turn it on:

wifi set pass=<8 to 63 characters>
wifi start

Join the board's network, then open a raw TCP connection to port 7777:

nc 192.168.4.1 7777

The firmware quickstart covers a first session, and the firmware reference lists every command.

Profiles for the Flipper app

Smart Injection and DBC decoding on the Flipper work from profiles: small files that hold the signals you care about. Generate them from a .dbc file with the profile generator and copy them to the Flipper's SD card:

  • Smart Injection profiles (.injprof) go in apps_data/can_commander/injection_profiles.
  • DBC decoding profiles (.dbcprof) go in apps_data/can_commander/dbc_profiles.

You can also create injection slots and decoding signals directly in the app.

Safety

CAN Commander can transmit on a live vehicle network. Injected or replayed frames can set fault codes, light warnings, or operate real vehicle functions.

  • Start with read-only tools, or the firmware's listen-only mode.
  • Test transmissions on a bench or a parked vehicle.
  • Stop transmitting tools when you are done.
  • If you enable the Wi-Fi command line, set your own password first.
  • Only work on vehicles you own or are authorised to test.