- PlatformIO Core installed
- ESP8266 board (NodeMCU, Wemos D1 Mini, or similar)
- USB data cable
- Python 3.x
pip install platformiolsusb | grep -i ch340
ls -la /dev/ttyUSB*If your user cannot access the serial device:
sudo chmod 666 /dev/ttyUSB0cd phantom-kit
pio runpio run --target uploadfspio run --target uploadpio device monitor --baud 115200- Connect the ESP8266 over USB.
- Build and flash the firmware using the commands above.
- From a phone or laptop, connect to the Wi-Fi network:
- SSID:
PhantomKit - Password: the
AP_PASSWORDvalue you configured insrc/config.h
- SSID:
- Open
http://192.168.4.1/dashboardin a browser. - Log in with the dashboard password configured in
src/config.h.
The ESP8266 can rotate across channels 1-13 for scanning and module operation:
#define CHANNEL_HOPPING_ENABLED true
#define CHANNEL_HOP_INTERVAL 500
#define MIN_CHANNEL 1
#define MAX_CHANNEL 13Configured in src/config.h:
#define AP_SSID "PhantomKit"
#define AP_PASSWORD "replace-with-a-strong-ap-password"
#define DASHBOARD_PASSWORD "replace-with-a-strong-dashboard-password"The firmware blocks dashboard login while the default change-me-* values are compiled in.
Change these values before using the device outside a private lab.
For portfolio demos, keep credential redaction enabled:
#define DASHBOARD_REDACT_CREDENTIALS 1When enabled, dashboard/API credential fields are redacted and raw CSV export is blocked. Session reports remain available with sensitive fields omitted.
- Captive portal with 8 templates
- Deauth module
- Beacon flood module
- Probe sniffer
- Evil twin workflow
- Auto-portal template suggestion
- Channel hopping
- PMKID capture
- Emergency wipe
- Verify that the USB cable supports data.
- Try another USB port.
- Install CH340 drivers if needed.
- Confirm that templates exist under
data/templates/. - Check that the board has enough flash space.
- Confirm that you are connected to the
PhantomKitWi-Fi network. - Open
http://192.168.4.1/dashboarddirectly. - Hard refresh the browser.
- Check the serial monitor for boot errors.
- Confirm that the firmware flashed successfully.
- Verify that the target channel matches the selected module.
- Check dashboard logs and serial output.
- Restart the ESP8266 after testing disruptive modules.
After flashing, the serial monitor should show the AP, DNS server, channel hopper, modules, and dashboard starting successfully.
The dashboard should show the main tabs, module counters, startup logs, and inactive/default module state.