This is a community remix of Bruce firmware adding two new board variants designed to run without a built-in TFT LCD display, making Bruce accessible on bare ESP32 boards and custom hardware.
Upstream: Bruce v1.14 by @pr3y and contributors. Remix by: @messinamirko99-design
Warning
Disclaimer — Bruce is a tool for cyber offensive and red team operations, distributed under the AGPL. Intended for legal and authorized security testing only. Use of this software for malicious or unauthorized activities is strictly prohibited. The developers assume no liability for misuse. Use at your own risk.
A hardware-first variant with a 2-button + I2C 16×2 LCD interface.
| Component | GPIO |
|---|---|
| LCD SDA | 21 |
| LCD SCL | 22 |
| SCROLL button (next) | this button is on the gpio0 and if you are using a esp32 dev kit its the second button after reboot |
| SELECT button (confirm/back) | 26 → GND |
- I2C auto-detect — scans
0x27→0x3F→0x20→0x38at boot - Backlight timeout — LCD backlight turns off after 30s of inactivity, any key wakes it
- Marquee scroll — labels longer than 16 chars scroll automatically on the LCD
- SCROLL = next item / SELECT short press = confirm / SELECT long press (>700ms) = back/ESC
- Text input: serial console when available, char picker as fallback
A headless variant for the CYD-2432S028 (or any ESP32) with serial console navigation only. No display required.
| Key | Action |
|---|---|
w / a / ↑ / ← |
Previous |
s / d / ↓ / → |
Next |
Enter / Space |
Select |
q / Backspace / ESC |
Back |
Use these three files from the release (or your own build output):
| File | Address |
|---|---|
bootloader.bin |
0x1000 |
partitions.bin |
0x8000 |
firmware.bin |
0x10000 |
- Open the tool → select chip ESP32
- Add the 3 files and set addresses as above ✅
- SPI Speed: 40MHz · SPI Mode: DIO · Flash Size: 4MB
- Hold BOOT, click START, release after ~2s
- Press EN/RST to reboot into the firmware
esptool.py --port /dev/ttyACM0 --baud 921600 \
write_flash \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware.binpio run -e BARTOS --target upload
# or
pio run -e CYD-Console --target uploadBuild output lands at .pio/build/<env>/firmware.bin.
Contact the Bruce team in their Discord Server.
For features and usage, see the upstream Bruce wiki.
- Connect to WiFi
- WiFi AP
- Disconnect WiFi
- WiFi Atks
- Beacon Spam
- Target Atk
- Information
- Target Deauth
- EvilPortal + Deauth
- Deauth Flood (More than one target)
- Wardriving
- TelNet
- SSH
- RAW Sniffer
- TCP Client
- TCP Listener
- Evil Portal — captured credentials shown live on LCD
- Scan Hosts (with TCP Port scanning)
- Responder
- Arp Spoofing
- Arp Poisoning
- Wireguard Tunneling
- Brucegotchi
- Pwnagotchi friend
- Pwngrid spam faces & names
- BLE Scan
- Bad BLE - Run Ducky scripts
- iOS Spam
- Windows Spam
- Samsung Spam
- Android Spam
- Spam All
- Scan/Copy
- Custom SubGhz
- Spectrum
- Jammer Full
- Jammer Intermittent
- Config (TX Pin, RX Pin, Module, Frequency)
- Replay
- Read tag / Read 125kHz
- Clone tag
- Write NDEF records
- Amiibolink / Chameleon
- Write / Erase / Save / Load
- Config (PN532, PN532Killer)
- TV-B-Gone
- IR Receiver
- Custom IR (NEC, NECext, SIRC, Samsung32, RC5, RC6…) — file browser navigable on LCD
- Config (TX Pin, RX Pin)
- Mic Spectrum
- QRCodes (Custom, PIX)
- SD Card Mngr — file browser shown on LCD with folder + filename
- LittleFS Mngr
- WebUI — IP and credentials shown on LCD when active
- Megalodon
- BADUsb
- iButton
- LED Control
- Brightness (LCD backlight on/off)
- Dim Time (30s default, configurable via
BACKLIGHT_TIMEOUT_MS) - UI Color
- Boot Sound on/off
- Clock / Sleep / Restart
| Device | CC1101 | NRF24 | FM | PN532 | Mic | BadUSB | Speaker |
|---|---|---|---|---|---|---|---|
| BARTOS (this remix) | 🆗 | 🆗 | 🆗 | 🆗 | ❌ | 🆗¹ | ❌ |
| CYD-Console (this remix) | 🆗 | 🆗 | 🆗 | 🆗 | ❌ | 🆗¹ | ❌ |
| JCZN CYD‑2432S028 (upstream) | 🆗 | 🆗 | 🆗 | 🆗 | ❌ | 🆗¹ | ❌ |
| M5Stack Cardputer | 🆗 | 🆗 | 🆗 | 🆗 | 🆗 | 🆗 | NS4168 |
| Lilygo T‑Deck | 🆗 | ❌ | ❌ | ❌ | ❌ | 🆗 | ❌ |
| Lilygo T‑Embed CC1101 | 🆗 | 🆗 | 🆗 | 🆗 | 🆗 | 🆗 | 🆗 |
For the full upstream device table see Bruce's README.
¹ BadUSB on CYD/bare ESP32: see wiki
Bruce is an incredible toolkit, but it assumes a TFT display is always present. This remix opens it up to bare ESP32 boards, DIY builds, and anyone who wants to run Bruce on a custom PCB with just a cheap I2C LCD and two buttons — or even headless over serial.
Upstream Bruce team:
- @pr3y — original Bruce firmware
- @bmorcelli for new core and device ports
- @IncursioHack for RF and RFID modules
- @Luidiblu for logo and UI design
- @eadmaster for many features
- @rennancockles for RFID refactoring
- @7h30th3r0n3 for WiFi attacks
- @Tawank for interpreter refactoring
- Everyone who contributed — thanks ❤️
This remix:
- @messinamirko99-design — BARTOS & CYD-Console board variants, I2C LCD driver, 2-button navigation, marquee scroll, backlight timeout, I2C auto-detect
