A DIY Flipper Zero running the Bruce firmware. Sub-GHz, NFC/RFID, IR, WiFi and BLE, NRF24, and a Si5351 signal generator — flashed straight from the browser.
No toolchain, no esptool. Plug in over the left USB-C, click, done — powered by esp-web-tools.
Pick a firmware version and your board, connect via the LEFT USB-C (UART), then flash. 50+ boards — ESP32-S3 & classic ESP32, straight from the browser.
Plug the ESP32-S3 into the LEFT USB-C (UART/programming).
Run flash, pick the serial port, confirm connect.
Keep "erase device" checked for a clean write, then wait.
every image is also on the releases page (per version) for manual esptool flashing. esp32-c5 / nesso-n1 build from source.
Hardware is probed at runtime. Flash a single image and use whatever chips you populated.
ESP32-S3 N16R8 core, shared SPI / I²C backbone, dual USB-C.
| Part | Function |
|---|---|
| CC1101 | Sub-GHz 300-928 MHz |
| PN532 | NFC 13.56 MHz + RFID |
| NRF24L01 x2 | 2.4 GHz · MouseJack · jammer |
| Si5351 | Signal gen 8 kHz-160 MHz |
| MicroSD | File storage |
| OLED 1.3" SH1106 | Display (SSD1106G) |
| VS1838B | IR receiver 38 kHz |
| IR LED + 2N2222 | IR transmitter |
| Passive buzzer | Sound |
| 6x buttons | Navigation |
ESP32-S3 N16R8 — 16 MB QSPI Flash, 8 MB OPI PSRAM.
Shared SPI (CC1101 + SD + 2x NRF24) and shared I²C
(OLED 0x3C, PN532 0x24, Si5351 0x60) — unique CS / addresses, no conflicts.
Pin assignments for the ESP32-S3 N16R8. The reserved range will brick the board — keep it clear.
driving flash/PSRAM pins locks the chip permanently.
Browser method failing? Pull the bins from Releases and flash by hand.
linux/mac: /dev/ttyACM0 or /dev/ttyUSB0 instead of COMx
| File | Offset |
|---|---|
Bruce-esp32-s3-N16R8.bin | 0x0 |
bootloader.bin | 0x0 |
partitions.bin | 0x8000 |
boot_app0.bin | 0xe000 |
firmware.bin | 0x10000 |
Before you flash.
Desktop Chrome or Edge — they support Web Serial. Firefox and Safari do not. Mobile browsers will not work.
Hold BOOT while plugging in (or BOOT+RESET) to force download mode. Install the CH34x or native-USB serial driver, and use the left USB-C port.
No. Modules are probed at runtime — flash the single binary regardless of hardware. A missing chip shows a "not found" message instead of crashing.
Left = UART / programming / browser flashing. Right = native USB for Bad USB / HID.
For authorized security testing and education only. Jammers and deauth against gear you do not own are illegal in most jurisdictions. You assume all responsibility. AGPL licensed.
Open source · contributor-friendly · AGPL