Dependencies
Everything needed to build and flash Fantasi on a fresh Debian/Ubuntu box. You only need the rows for what you're doing. Versions other than the ones noted are usually fine.
One-shot install (Debian/Ubuntu)
System packages:
sudo apt install build-essential make git \
gcc-arm-none-eabi \
libreadline-dev libsystemd-dev pkg-config \
udisks2 util-linux \
dfu-util bluez
Python packages (a venv or --user is fine):
pip install pyserial pyusb pexpect nanopb pyocd
Chameleon Ultra flashing also needs nrfutil (a separate vendor binary); once it's installed:
nrfutil install device nrf5sdk-tools
Building firmware
| Dependency | Required | Purpose / install |
|---|---|---|
arm-none-eabi-gcc + binutils | yes | Cross-compiler for all three firmwares. sudo apt install gcc-arm-none-eabi, or put an upstream Arm GNU Toolchain bin/ on your PATH (verified against 14.3.Rel1). |
GNU make | yes | Build driver. sudo apt install make |
git | yes | make auto-clones TinyUSB + LittleFS on demand. sudo apt install git |
TinyUSB and LittleFS are fetched on the first build; every other third-party library is vendored in-tree.
Flashing
make flash (auto-detect) or make PLATFORM=<target> flash drives these via tools/flash.py.
| Target | Tool | Install |
|---|---|---|
| Flipper Zero / Kiisu (STM32WB55) | dfu-util | sudo apt install dfu-util |
| Chameleon Ultra (nRF52840) | nrfutil + nrf5sdk-tools | install nrfutil, then nrfutil install device nrf5sdk-tools |
| Proxmark3 (AT91SAM7S) | pyserial | pip install pyserial |
The STM32WB BLE radio-stack flasher (tools/radio_flash.py) needs pyusb (it talks to the ROM DFU over USB, not a serial port).
Python
| Dependency | Required | Notes |
|---|---|---|
| Python 3 | yes | 3.9+. Runs tools/flash.py, tools/radio_flash.py, and tools/launch.py. |
pyserial | flashing | Proxmark3 flasher |
pyusb | some tools | WebUSB vendor-pipe helpers; also tools/radio_flash.py |
Full reference
For the host CLI, host-side storage (MSC), BLE, SWD/JTAG debugging, tests, and protobuf regeneration dependencies, see the full dependencies.md in the firmware repo.