SYS: FANTASI WIKI PAGE: OVERVIEW_
← HOME

Fantasi Wiki

Fantasi is a multi-platform firmware that replaces the stock firmware on security research devices with a common runtime. Its headline capability is RFID - reading, writing, sniffing, and emulating LF and HF tags with the same commands on every supported device.

Supported Hardware

TargetMCUFlashRAMStatus
Flipper ZeroSTM32WB55 (Cortex-M4)1 MB192 KBSupported
KiisuSTM32WB55 (Cortex-M4)1 MB192 KBSupported
Chameleon UltranRF52840 (Cortex-M4)1 MB213 KBSupported
Proxmark3AT91SAM7S512 (ARM7TDMI)512 KB64 KBSupported
Proxmark5AT32F435--Coming soon
T-Watch UltraESP32-S3--Coming soon
Kode DotESP32-S3--Coming soon

Quick Start

Build for any supported target:

make PLATFORM=flipper
make PLATFORM=kiisu
make PLATFORM=chameleon
make PLATFORM=proxmark3

arm-none-eabi-gcc and git must be on PATH. Third-party dependencies (TinyUSB, LittleFS, FreeRTOS) are auto-fetched on first build.

Flash to the device:

make PLATFORM=<name> flash

A successful flash is indicated by a solid blue LED. Connect at 115200 baud to the enumerated CDC port (/dev/ttyACM* on Linux, /dev/tty.usbmodem* on macOS):

fantasi> help
  batt        show battery level
  ble         BLE status [list|on|off]
  cat         print file contents
  cd          change directory
  cdc         return USB to serial (CDC) mode
  connect     connect to a BLE peer
  crc32       CRC32 of a device file
  device      print device identifier
  df          show free flash bytes
  dfu         reboot into bootloader/DFU
  disconnect  disconnect BLE peer(s)
  echo        print arguments back
  edit        edit a device file in default editor
  exit        exit the CLI
  free        report heap and SRAM free bytes
  help        list commands
  kill        stop a pid or the running app
  launch      load and run an app (.elf) or Berry script (.be)
  log         stream or write log messages
  ls          list files
  memtest     write/read-back test free SRAM
  mkdir       create a directory
  msc         enter USB mass storage mode
  pair        pair with a BLE device
  ps          list tasks (state, priority, free stack) + heap summary
  pwd         print working directory
  quit        exit the CLI
  radio       show radio stack info
  reboot      restart the device
  reload      refresh client settings from the device
  rfid        launch RFID app
  rm          delete a file
  rmdir       remove empty directory
  scan        scan for BLE devices
  settings    manage saved settings
  shortcut    list/set/run app shortcuts (slots 0-7)
  shutdown    power the device off
  unpair      remove BLE bond(s)
  upload      copy host file to device
  uptime      show time since boot
  version     show firmware version
  webusb      switch USB to WebUSB (protobuf) mode
  whoami      show unique device name

See the CLI Reference for what each command does.

Where to Go Next

  • RFID - read, write, sniff, and emulate LF/HF tags on every device
  • Architecture - system design, HAL contract, code structure
  • Features - per-platform feature matrix
  • Flashing - USB and SWD flashing for every target
  • Radio Stack - BLE stack installation for Flipper Zero and Chameleon Ultra
  • CLI Reference - every built-in command explained
★ DREAM // HACK ★