ESP32 Wireless Discovery & Device Diagnostics
A compact wireless discovery and hardware diagnostics toolkit for ESP32.
GhostWire turns a standard ESP32 development board into a wireless discovery and diagnostics terminal β no display, no external shield, no dashboard. Just an ESP32, a USB cable, and a serial monitor.
The menu-driven interface provides:
| Capability | Status |
|---|---|
| π‘ Wi-Fi Discovery | β |
| π¦ BLE Discovery | β |
| π§ ESP32 Diagnostics | β |
| πΎ Memory & Flash Diagnostics | β |
| π₯οΈ Serial Interface | β |
+------------------------------------------------------+
| |
| G H O S T W I R E |
| |
| ESP32 Wireless Discovery & Device Diagnostics |
| |
+------------------------------------------------------+
| WiFi | BLE | Hardware | Diagnostics |
+------------------------------------------------------+
[ SYSTEM ONLINE ]
Device : ESP32-WROOM
Mode : Standalone
Serial : 115200
Version : 1.0.0
Created by: Mayank Malaviya aka AIwolfie
Scans 2.4 GHz channels and reports:
- SSID β network name (truncated if longer than 28 characters; hidden networks shown as
<hidden>) - Channel β 2.4 GHz channel number
- RSSI β signal strength in dBm
- Security β
OPEN,WEP,WPA,WPA2,WPA/WPA2,WPA2-ENT,WPA3,WPA2/WPA3
# SSID CH RSSI SECURITY
------------------------------------------------------------
1 HomeNetwork 6 -48 dBm WPA2
2 Office 11 -67 dBm WPA2
3 <hidden> 1 -81 dBm OPEN
------------------------------------------------------------
RSSI is affected by walls, antennas, interference, and environmental conditions. Do not treat it as an exact distance measurement.
Performs active BLE scans for nearby advertisements. For each device discovered, reports:
- Bluetooth address (MAC)
- RSSI in dBm
- Advertised local name (where available)
- Service UUID (where advertised)
[01] AA:BB:CC:DD:EE:FF
RSSI : -54 dBm
Name : DeviceName
UUID : ...
GhostWire does not connect to, pair with, or interact with discovered devices. It only listens for advertisements.
Reads ESP32 chip information directly from the hardware:
- Chip model, revision, CPU cores, CPU frequency
- ESP-IDF / SDK version
- MAC address
- Wi-Fi, Bluetooth, BLE, and embedded flash capability
Reports runtime resource information:
- Heap β total, free, minimum free, largest free block
- PSRAM β total and free (detects presence; displays "Not available" when absent)
- Flash β size, speed, sketch size, free sketch space
- Uptime β seconds since boot
WIRELESS
[1] WiFi Network Scan
BLUETOOTH
[2] BLE Scan - 10 seconds
[3] BLE Scan - 30 seconds
DEVICE
[4] Chip Information
[5] Memory / Flash Information
SYSTEM
[6] Credits / About
[7] System Status
[0] Show Banner
- ESP32-WROOM or ESP32 Dev Module / compatible development board
- USB data cable
- Windows, Linux, or macOS computer
ESP32-WROOM modules commonly ship with 4 MB flash. GhostWire's combined Wi-Fi + BLE firmware is approximately 1.52 MB.
- PlatformIO (recommended) or Arduino IDE 2.x
- ESP32 Arduino board package (Espressif Systems)
git clone https://github.com/AIwolfie/GhostWire.git
cd GhostWire
pio run
pio run -t upload
pio device monitor -b 115200The provided platformio.ini uses board_build.partitions = huge_app.csv to ensure sufficient application space for the combined Wi-Fi + BLE firmware.
Download and install Arduino IDE 2.x from the official website.
Open Arduino IDE and navigate to:
Tools β Board β Boards Manager
Search for esp32 and install esp32 by Espressif Systems.
Clone or download the repository. Open ghostwire.cpp in Arduino IDE.
If Arduino IDE prompts for a sketch folder, create a folder named GhostWire/ containing a file named GhostWire.ino, then copy the contents of ghostwire.cpp into it.
Tools β Board β ESP32 Arduino β ESP32 Dev Module
For other ESP32 boards, select the specific board variant.
Tools β Port
Select the COM port your ESP32 is connected to. On Windows this will appear as COM3, COM5, etc.
Tools β Partition Scheme β Huge APP
GhostWire combines Wi-Fi + BLE in a single firmware image. The default partition scheme may not provide enough application space. Select Huge APP (3 MB application partition).
Click Verify (β) or navigate to Sketch β Verify/Compile.
Click Upload (β). If your board requires bootloader mode, hold the BOOT button during upload.
Open Tools β Serial Monitor. Set baud rate to 115200 and line ending to Newline or Both NL & CR.
Press the ESP32 reset button if the startup banner does not appear. You should see the GhostWire banner and main menu.
Enter a menu number in the Serial Monitor:
| Key | Function |
|---|---|
1 |
Wi-Fi Network Scan |
2 |
BLE Scan β 10 seconds |
3 |
BLE Scan β 30 seconds |
4 |
Chip Information |
5 |
Memory / Flash Information |
6 |
Credits / About |
7 |
System Status |
0 |
Show Banner |
GhostWire v1.0.0 builds successfully with PlatformIO for the esp32dev target:
RAM: [== ] 17.2% (used 56276 bytes from 327680 bytes)
Flash: [===== ] 48.3% (used 1519653 bytes from 3145728 bytes)
Actual values vary depending on ESP32 Arduino core version, compiler version, board configuration, partition scheme, and enabled features.
GhostWire is designed for:
- Embedded development and education
- Wireless environment discovery
- ESP32 experimentation
- Hardware diagnostics
- Testing networks and devices you own or are authorized to inspect
GhostWire intentionally does not provide:
- Wi-Fi password cracking or handshake capture
- Deauthentication or Evil Twin attacks
- Credential harvesting
- Packet injection or radio jamming
- BLE exploitation or pairing bypasses
- Unauthorized access mechanisms
Discover responsibly. Scan only environments and devices you are authorized to inspect.
GhostWire is still evolving. Potential future improvements include:
- Configurable Wi-Fi scan settings
- Configurable scan duration
- CSV / JSON scan output
- Extended BLE advertisement parsing
- Manufacturer identification
- Additional ESP32 board diagnostics
- Automated GitHub Actions builds
- Release-ready firmware artifacts
Roadmap items are ideas, not promises or existing functionality.
Contributions are welcome.
- Bug fixes and memory optimizations
- ESP32 board compatibility
- Documentation improvements
- BLE parsing improvements
- Wi-Fi scan improvements
- Serial UI improvements
- Build automation
- Testing on physical hardware
# Fork the repository, then clone your fork
git clone https://github.com/AIwolfie/GhostWire.git
cd GhostWire
# Create a feature branch
git checkout -b feature/my-improvement
# Make your changes, then test
pio run
# Commit and push
git add .
git commit -m "Describe your improvement"
git push origin feature/my-improvementThen open a Pull Request. Test on physical ESP32 hardware whenever possible.
GhostWire remains focused on wireless discovery, embedded diagnostics, and education. Contributions introducing offensive functionality, unauthorized access mechanisms, or exploitation are outside the project's scope.
# Build
pio run
# Upload
pio run -t upload
# Serial monitor
pio device monitor -b 115200
# Clean build artifacts
pio run -t cleanGhostWire/
βββ ghostwire.cpp # Main ESP32 application source
βββ platformio.ini # PlatformIO configuration
βββ README.md # This file
βββ LICENSE # MIT License
βββ .gitignore # Build artifact exclusions
Licensed under the MIT License. See LICENSE for details.
Copyright Β© 2026 Mayank Malaviya aka AIwolfie
Mayank Malaviya aka AIwolfie β Creator and maintainer of GhostWire.
GhostWire β ESP32 Wireless Discovery & Device Diagnostics
Mayank Malaviya aka AIwolfie Β· 2026
