Fantasi is a unified firmware and host CLI that runs across multiple hardware devices like Flipper Zero, Kiisu, Chameleon Ultra, and Proxmark3, providing a consistent interface, file system, app loader, and BLE support.

Stars

43

7-day growth

No data

Forks

8

Open issues

0

License

GPL-3.0

Last updated

2026-07-18

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It consolidates several popular pentesting and hardware-hacking devices under a single firmware, offering a uniform CLI and app ecosystem that simplifies development and cross-device usage.

Who it is for

  • Flipper Zero, Kiisu, Chameleon Ultra, and Proxmark3 users
  • Firmware developers and embedded engineers
  • Hardware hackers and pentesters
  • Makers seeking a common platform for multiple devices

Use cases

  • Use one firmware across many devices for consistent behavior
  • Develop and run ELF apps on any supported hardware via a common API
  • Manage files, flash firmware, and control devices through a host CLI or BLE
  • Test and compare RF/radio capabilities across different platforms

Strengths

  • Supports multiple MCU architectures (Cortex-M4, ARM7TDMI, etc.) with a single build system
  • Auto-detects connected device for flashing without manual target selection
  • Built-in LittleFS file system and statically-compiled ELF app loader
  • Includes a host CLI with USB serial and BLE connectivity and a rich command set

Considerations

  • Some targets (Proxmark5, Kiisu Smol, Kode Dot) are listed as 'Coming soon' and not yet available
  • Build requires arm-none-eabi-gcc and external libraries (libreadline, libsystemd) which may not be preinstalled
  • BLE pairing requires entering a passkey from the device’s USB log, which adds a setup step

README quick start

Supported targets

TargetMCUFlash tool
Flipper ZeroSTM32WB55 (Cortex-M4)dfu-util via ROM DFU
KiisuSTM32WB55 (Cortex-M4)dfu-util via ROM DFU
Chameleon UltranRF52840 (Cortex-M4)nrfutil DFU
Proxmark3AT91SAM7S256/512 (ARM7TDMI)tools/pm3_flasher.py (pyserial)
Proxmark5AT32F435Coming soon
Kiisu SmolSTM32WB55 (Cortex-M4)Coming soon
Kode DotESP32-S3Coming soon

Build

make                        # build every firmware + the host CLI
make PLATFORM=flipper       # STM32WB55 (Cortex-M4)
make PLATFORM=kiisu         # STM32WB55 (Cortex-M4)
make PLATFORM=chameleon     # nRF52840  (Cortex-M4)
make PLATFORM=proxmark3     # AT91SAM7S (ARM7TDMI)
make cli                    # host CLI only (build/cli/fantasi)
make clean                  # remove all build artifacts (or PLATFORM= for one)
make help                   # list targets

A bare make builds all three firmwares and the host CLI; make clean wipes the build/ tree. Pass PLATFORM= to scope to a single firmware, or make cli to build only the host CLI.

The firmware builds need arm-none-eabi-gcc and git on PATH; TinyUSB and LittleFS are auto-cloned on demand (pinned to known-good tags). The host CLI is built with the system cc and needs libreadline (and libsystemd for BLE).

Artifacts land in build/:

TargetOutput
flipperbuild/flipper/fantasi-flipper.{elf,bin}
kiisubuild/flipper/fantasi-kiisu.{elf,bin}
chameleonbuild/chameleon/fantasi-chameleon.{elf,bin,hex}
proxmark3build/proxmark3/fantasi-proxmark3.{elf,bin}
host CLIbuild/cli/fantasi

Flash

make flash                  # auto-detect the connected device + flash it
make PLATFORM= flash  # force a specific target

With no PLATFORM, make flash auto-detects the single connected board - by querying a running Fantasi's device id, or by spotting a board already sitting in its DFU mode. If more than one device is connected it refuses to flash rather than guess; pass PLATFORM= to disambiguate.

A successful flash is indicated by a solid blue LED.

If the device is already running Fantasi, the flasher (tools/flash.py) uploads changed resources via MSC, sends dfu over CDC serial, and flashes with the platform's tool. On first flash it falls back to a manual DF

Description

Fantasi firmware

Related repositories

Similar projects matched by category, topics, and programming language.

nsdkinx
Featured
nsdkinx GitHub avatar

twell

Twell is a tiny, embeddable, zero-allocation physics engine for interruptible, Apple-style UI animations, available as a single-header C library with Python bindings.

MobileDesign & Creative
17
V4bel
V4bel GitHub avatar

Januscape

Januscape (CVE-2026-53359) is a 16-year-old use-after-free vulnerability in KVM/x86's shadow MMU that allows a guest to escape to the host on both Intel and AMD architectures.

C
512
bryanthaboi
bryanthaboi GitHub avatar

pokemon-gen1-recomp-project

A native LÖVE2D recreation of Pokémon Red and Blue that extracts game data from a player-supplied ROM to provide enhanced features like modding, controls rebinding, and link play.

C
349