A port of the Flipper Zero firmware to ESP32-based development boards. This project brings the Flipper Zero UI, services, and application framework to affordable ESP32 hardware — no Flipper Zero required.
Join the Flipper Zero meets ESP32 - Discord for support and announcements.
| Board | MCU | Display | Input | SubGHz | NFC | IR | SD Card |
|---|---|---|---|---|---|---|---|
| LilyGo T-Embed CC1101 | ESP32-S3 (Xtensa LX7) | ST7789 320x170 | Rotary encoder + button | CC1101 | PN532 (I2C) | TX + RX | SPI |
| Waveshare ESP32-C6-LCD-1.9 | ESP32-C6 (RISC-V) | ST7789V2 320x172 | CST816S touch | — | — | — | SPI |
The easiest way to get started is the web flasher — no toolchain required, just a Chrome/Edge browser and a USB cable:
Connect your board, click flash, done.
SD Card (highly recommended)
- Stores SubGHz captures, IR remotes, NFC dumps, Bad USB scripts, and settings
- Required for most apps to save/load data
Sub-GHz (T-Embed CC1101)
- Read, save, and transmit Sub-GHz signals
- Frequency analyzer
- Includes ProtoPirate for protocol analysis
Bluetooth
- Remote control via Flipper Mobile App (screen streaming, file manager, RPC)
- BLE Spam (8 attack types: FastPair, SwiftPair, EasySetup, etc.)
- BLE Walk (GATT service explorer)
- BLE Clone (dev)
- Bad USB over BLE HID (keyboard/mouse/consumer)
WiFi
- Connect to WiFi networks (password prompt for protected networks)
- Saved passwords on SD card (
/wifi/<SSID>.txt) — entered passwords are saved automatically after successful connect - Network scanner
- Deauther
- Handshake capture
- Packet sniffer
- Port scanner
NFC (T-Embed with PN532, needs testing)
- 15 protocols ported (NTAG, Mifare Classic/Ultralight, Felica, ISO14443, etc.)
LF-RFID (RDM6300)
- Read and emulate low-frequency RFID tags
Infrared (T-Embed)
- TX and RX via RMT peripheral
- 8 protocols: NEC, RC5, RC6, Samsung, SIRC, RCA, Pioneer, Kaseikyo
- Built-in remote database (TV, AC, audio, fans, projectors, LEDs)
ESP-NOW
- Peer-to-peer communication between ESP32 devices
GPIO
- GPIO control and USB-UART bridge
General
- Clock app
- Animated Dolphin desktop
- Archive (file browser)
- Settings (BT, backlight, etc.)
- ESP-IDF v5.4.1 (exact version required)
- ESP-IDF export script sourced (default:
~/esp/esp-idf/export.sh)
Important: This project must be built with ESP-IDF v5.4.1. Newer versions (v5.5+) ship with a different toolchain (e.g.
xtensa-esp-elf 14.2.0) that introduces linker errors. If you seeundefined referenceerrors during linking, you are likely using the wrong ESP-IDF version.
# Build and flash (auto-detects /dev/cu.usbmodem*)
./build.sh
# Build only
./build.sh --build-only
# Build, flash, and open serial monitor
./build.sh --monitor
# Specify serial port
./build.sh --port /dev/cu.usbmodem101This port preserves the original Flipper Zero architecture as closely as possible:
- Furi OS runs on FreeRTOS with the same thread/mutex/event API
- Services (GUI, Input, Storage, Loader, Desktop, BT) use the same message-queue and record-system patterns
- HAL maps STM32 peripherals to ESP-IDF drivers (SPI→
esp_lcd, I2C→CST816S/PN532, RMT→IR, Bluedroid→BLE) - Display renders the original 128x64 mono framebuffer, then scales 2x to RGB565 for the color LCD
- Applications compile with minimal changes (
#includepath adjustments, no-op stubs for missing hardware) mallocis redefined tocalloc— the STM32 heap starts zeroed, ESP32 does not

