RECON
Scan / map targets.
SOONTECHNICAL REFERENCE
ESP32-S handheld with ILI9341 TFT and KY-040 encoder. PlatformIO / ESP-IDF firmware — menu catalog, pin maps, architecture, and flash instructions.
BOOT SPLASH · ASSET FROM FIRMWARE
ENCODER UI
Main menu is a centered carousel. Click opens a category. Back is the last row.
BOM + WIRING
NodeMCU v1.1. USB power. BLE + WiFi on 2.4 GHz. ~$4 used
ILI9341 v1.2. SPI. 240×320 panel, landscape UI. ~$5
Rotary encoder. Turn = navigate. Click = select. ~$1
| TFT | BOARD | GPIO |
|---|---|---|
| VCC | 3V3 | — |
| GND | GND | — |
| CS | P15 | 15 |
| RESET | P4 | 4 |
| DC / RS | P2 | 2 |
| SDI | P23 | 23 |
| SCK | P18 | 18 |
| LED | 3V3 | — |
| PIN | BOARD | GPIO |
|---|---|---|
| CLK | P25 | 25 |
| DT | P26 | 26 |
| SW | P27 | 27 |
| + | 3V3 | — |
| GND | GND | — |
DC on GPIO2 is a boot strap pin. Hold BOOT, tap EN if upload says Invalid head of packet. Wire TFT LED to 3V3.
SOFTWARE MAP
app_main → LCD + encoder → splash → glitch-out → menu_nav_run().
board/pin mapdisplay/ILI9341 + RGB565 assetsinput/encoder ISR → queueui/catalog, screens, navwifi/scan, AP, DNS, portalsfeatures/HID, Apple spam, clonePLATFORMIO
$ pio run $ pio run -t upload $ pio device monitor
Serial @ 115200. Set upload_port in platformio.ini or pass -upload-port COMx.
Close monitor. Hold BOOT → tap EN. Still fail: unplug TFT DC from P2, flash, reconnect. Use a data USB cable.
Hardwire TFT LED to 3V3. Check MOSI on P23.
WiFi scan/AP current spike. Weak USB resets to main menu. Powered hub or 5V on VIN.
READ THIS
Phantom is an educational and research project. Embedded development, wireless protocols, defensive security — not harm.
If you do not accept these terms, do not use this software.