PHANTOM GITHUB

TECHNICAL REFERENCE

ABOUT
PHANTOM.

ESP32-S handheld with ILI9341 TFT and KY-040 encoder. PlatformIO / ESP-IDF firmware — menu catalog, pin maps, architecture, and flash instructions.

ILI9341 · 2.8" 320×240
Phantom boot splash — tiled reaper

BOOT SPLASH · ASSET FROM FIRMWARE

MENU CATALOG

SEVEN ROOMS.

Same icons the TFT draws. Working tools and placeholders live in one carousel.

RECON

Scan / map targets.

SOON

DEAUTH

Kick clients off AP.

SOON

EVIL TWIN

Clone SSID · fake AP · captive portal · log.

WORKING

BT ATTACKS

BLE HID keyboard + Apple Continuity spam.

WORKING

REMOTE

Remote ops. HID replay stub.

SOON

EVIL BT

Scan named BLE devices. Clone advertisements.

WORKING

RESOURCES

Live heap, flash, task stats.

WORKING

ENCODER UI

KNOB WORLD.

Main menu is a centered carousel. Click opens a category. Back is the last row.

BOM + WIRING

THREE PARTS.

ESP32-S

NodeMCU v1.1. USB power. BLE + WiFi on 2.4 GHz. ~$4 used

2.8" TFT

ILI9341 v1.2. SPI. 240×320 panel, landscape UI. ~$5

KY-040

Rotary encoder. Turn = navigate. Click = select. ~$1

~$10 core BOM vs $100–$300+ commercial handheld lab tools — plus breadboard, wires, and USB cable.

TFT SPI

TFTBOARDGPIO
VCC3V3
GNDGND
CSP1515
RESETP44
DC / RSP22
SDIP2323
SCKP1818
LED3V3

ENCODER

PINBOARDGPIO
CLKP2525
DTP2626
SWP2727
+3V3
GNDGND
PROTOTYPE · BREADBOARD BUILD
BOARD PINOUT
WIRING SCHEMATIC

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

ONE LOOP.

app_main → LCD + encoder → splash → glitch-out → menu_nav_run().

Boot path: app_main to hardware init to splash to menu_nav_run
BOOT PATH
Module structure: menu_nav_run, UI layer, WiFi manager, NimBLE features
MODULE STRUCTURE
FULL ARCHITECTURE · GENERATED FROM ARCHITECTURE.MD
board/pin map
display/ILI9341 + RGB565 assets
input/encoder ISR → queue
ui/catalog, screens, nav
wifi/scan, AP, DNS, portals
features/HID, Apple spam, clone

PLATFORMIO

BUILD + FLASH.

$ pio run
$ pio run -t upload
$ pio device monitor

Serial @ 115200. Set upload_port in platformio.ini or pass -upload-port COMx.

UPLOAD FAIL

Close monitor. Hold BOOT → tap EN. Still fail: unplug TFT DC from P2, flash, reconnect. Use a data USB cable.

BLANK SCREEN

Hardwire TFT LED to 3V3. Check MOSI on P23.

BROWNOUT

WiFi scan/AP current spike. Weak USB resets to main menu. Powered hub or 5V on VIN.