project // hardware
about
The ESP32 DIV v2.1 is an open-source multi-band wireless testing toolkit by CiferTech, built around the ESP32-S3. It supports WiFi, BLE, 2.4GHz and Sub-GHz frequencies — designed for wireless testing, signal analysis, jamming research and protocol exploration. The v2.1 is modular — a stable core board with a stackable shield via pogo-pin headers, keeping the device thin and expandable.
hardware
features
WiFi
Bluetooth (BLE)
2.4GHz (NRF24 ×3)
Sub-GHz (CC1101)
EAPOL / WPA
Firmware / Hardware
images
// ESP32-DIV v2.1 — stock firmware, main menu. WiFi / IR Remote / Bluetooth / Tools / 2.4GHz / Settings / SubGHz
// splash screen — segfault.solutions logo, NeoPixel cyan glow
// boot radio test — NRF24 ×3 OK · CC1101 OK · PCF8574 OK · SD FAIL
// Segfault-DIV firmware running — menu on splash bg · WiFi / Bluetooth / 2.4GHz NRF24 / SubGHz CC1101 / SIGINT / Tools · PCF8574 buttons · 62% battery
halehound-div firmware
Custom firmware ported from HaleHound-CYD to the ESP32-DIV v2.1 (ESP32-S3). Touch input replaced with PCF8574 GPIO expander at confirmed I2C address 0x27 (M5Shark V2.0 specific — not 0x20 as documented). Display running in portrait 240×320 (rotation=2). SPI bus arbitrated across the display (HSPI dedicated), 3× NRF24 modules, CC1101, and SD card. Boot splash displays for 10 seconds with NeoPixel cyan glow, then serves as the menu background image with transparent item overlay.
huge_app partition scheme, no PSRAMpio run -e esp32s3-div --target uploadpin map
| peripheral | signal | gpio | notes |
|---|---|---|---|
| display | SCK | 36 | HSPI dedicated |
| display | MOSI | 35 | |
| display | MISO | 37 | |
| display | CS | 17 | |
| display | DC | 16 | |
| display | BL | 7 | |
| SDA | 8 | PCF8574 @ 0x27 | |
| SCL | 9 | UP=P7 DOWN=P5 LEFT=P3 RIGHT=P4 CENTER=P6 | |
| NRF24 #1 | CSN | 4 | |
| NRF24 #1 | CE | 15 | |
| NRF24 #2 | CSN | 48 | |
| NRF24 #2 | CE | 47 | |
| NRF24 #3 | CSN | 21 | ⚠ shared with IR RX — held HIGH during capture |
| NRF24 #3 | CE | 14 | ⚠ shared with IR TX — mutex required |
| CC1101 | CS | 5 | |
| CC1101 | GDO0 | 6 | |
| CC1101 | GDO2 | 3 | spi renamed to avoid TFT_eSPI collision |
| SD card | CS | 10 | |
| SD card | Detect | 38 | |
| IR | TX | 14 | ⚠ shared with NRF24 #3 CE |
| IR | RX | 21 | ⚠ shared with NRF24 #3 CSN |
| NeoPixel | DATA | 1 | cyan glow on splash, status indicators |
todo
log
-DBOARD_HAS_PSRAM flag — board has no PSRAM despite product page claim.
spi symbol — renamed CC1101 libdep). Added -DUSE_HSPI_PORT=1 to give TFT dedicated SPI instance. Moved tft.init() before SPI.begin() for radios. Display boots cleanly.
USER_SETUP_LOADED flag blocking font loading in TFT_eSPI.
IRremoteESP8266. Raw capture and replay implemented. GPIO14 mutex handles NRF24 #3 CE conflict — NRF24 #3 deselected before IR acquire, restored on exit. RX requires NRF24 #3 CSN HIGH (GPIO21 shared).
links