Real-time drone detection, mapping, and Remote ID compliance monitoring
π Quick Start β’ π Features β’ π οΈ API Reference β’ π§ Hardware
Pre-built detection hardware designed specifically for this project:
β
Complete kits with all components included
β
Pre-flashed firmware ready to use
π Completely Standalone Operation
- No Raspberry Pi Required: Boards operate independently for mesh detection
- No Computer Needed: Self-contained drone detection and mesh communication
- Instant Setup: Just power on and start detecting
π Optional Mapper Integration
- Standalone mesh detection works great on its own
- Add the mapper software for enhanced visualization and logging
- Best of both worlds: Mesh detection + centralized monitoring
Build your own detection system using readily available components:
Required Components:
- Xiao ESP32-S3 (dual-core with WiFi + Bluetooth)
- Heltec WiFi LoRa 32 V3 (for mesh networking)
- Basic wiring connections
Perfect for:
- Learning and experimentation
- Custom modifications
- Budget-conscious builds
- Educational projects
Advanced drone detection system that captures and maps Remote ID broadcasts from drones using ESP32 hardware. Features real-time web interface, persistent tracking across sessions, and comprehensive data export capabilities.
Download and install everything automatically using the official RPI setup scripts:
# Download the RPI setup script
wget https://raw.githubusercontent.com/colonelpanichacks/drone-mesh-mapper/main/RPI/install_rpi.py
# Install from main branch (stable)
python3 install_rpi.py --branch main
# Or install from Dev branch (latest features)
python3 install_rpi.py --branch Dev
Advanced Setup Options:
# Custom installation directory
python3 install_rpi.py --branch main --install-dir /opt/mesh-mapper
# Skip auto-start cron job
python3 install_rpi.py --branch main --no-cron
# Force overwrite existing installation
python3 install_rpi.py --branch Dev --force
Install all required dependencies automatically:
# Download and run the universal dependency installer
wget https://raw.githubusercontent.com/colonelpanichacks/drone-mesh-mapper/main/RPI/rpi_dependancies.py
python3 rpi_dependancies.py
This installer handles:
- β System Detection: Automatically detects Linux, macOS, Windows
- β Package Manager Support: apt, yum, dnf, pacman, brew, pkg
- β Python & pip: Ensures compatible Python 3.7+ and pip installation
- β Core Dependencies: Flask, Flask-SocketIO, pyserial, requests, urllib3
- β Optional Packages: Performance and development tools
-
Download mapper
wget https://raw.githubusercontent.com/colonelpanichacks/drone-mesh-mapper/main/mesh-mapper.py
-
Install dependencies
pip3 install Flask Flask-SocketIO pyserial requests urllib3 python-socketio eventlet
-
Flash ESP32 firmware
- Choose appropriate firmware from
firmware/
directory - Use Arduino IDE, PlatformIO, or esptool.py
- Configure WiFi channel and mesh settings
- Choose appropriate firmware from
-
Run Mapper
python3 mesh-mapper.py
- Live Detection Display: Interactive map showing drone positions as they're detected
- Flight Path Tracking: Visual trails showing drone and pilot movement over time
- Persistent Sessions: Drones remain visible across application restarts
- Multi-device Support: Handle multiple ESP32 receivers simultaneously
- Detection History: Complete log of all drone encounters with timestamps
- Device Aliases: Assign friendly names to frequently seen drones
- Export Formats: Download data as CSV, KML (Google Earth), or GeoJSON
- Cumulative Logging: Long-term historical data storage
- Auto-detection: Automatically finds and connects to ESP32 devices
- Port Management: Save and restore USB port configurations
- Status Monitoring: Real-time connection health and data flow indicators
- Command Interface: Send diagnostic commands to connected hardware
- Real-time Updates: WebSocket-powered live data streaming
- Mobile Responsive: Works on desktop, tablet, and mobile devices
- Multiple Views: Map, detection list, and device status panels
- Data Export: Download detections directly from web interface
- Headless Operation: Run without web interface for dedicated deployments
- Debug Logging: Detailed logging for troubleshooting and development
- FAA Integration: Automatic Remote ID registration lookups
- Webhook Support: External system integration via HTTP callbacks
python3 mesh-mapper.py [OPTIONS]
Option | Description | Default |
---|---|---|
--headless |
Run without web interface | false |
--debug |
Enable debug logging | false |
--web-port PORT |
Web interface port | 5000 |
--port-interval SECONDS |
Port monitoring interval | 10 |
--no-auto-start |
Disable automatic port connection | false |
# Standard operation with web interface
python3 mesh-mapper.py
# Headless operation for dedicated server
python3 mesh-mapper.py --headless --debug
# Custom web port with verbose logging
python3 mesh-mapper.py --web-port 8080 --debug
# Disable auto-connection to saved ports
python3 mesh-mapper.py --no-auto-start
Method | Endpoint | Description |
---|---|---|
GET |
/ |
Main web interface |
GET |
/api/detections |
Current active drone detections |
POST |
/api/detections |
Submit new detection data |
GET |
/api/detections_history |
Historical detection data (GeoJSON) |
GET |
/api/paths |
Flight path data for visualization |
POST |
/api/reactivate/<mac> |
Reactivate inactive drone detection |
Method | Endpoint | Description |
---|---|---|
GET |
/api/aliases |
Get device aliases |
POST |
/api/set_alias |
Set friendly name for device |
POST |
/api/clear_alias/<mac> |
Remove device alias |
GET |
/api/ports |
Available serial ports |
GET |
/api/serial_status |
ESP32 connection status |
GET |
/api/selected_ports |
Currently configured ports |
Method | Endpoint | Description |
---|---|---|
GET |
/api/faa/<identifier> |
FAA registration lookup |
POST |
/api/query_faa |
Manual FAA query |
POST |
/api/set_webhook_url |
Configure webhook endpoint |
GET |
/api/get_webhook_url |
Get current webhook URL |
POST |
/api/webhook_popup |
Webhook notification handler |
Method | Endpoint | Description |
---|---|---|
GET |
/download/csv |
Download current detections (CSV) |
GET |
/download/kml |
Download current detections (KML) |
GET |
/download/aliases |
Download device aliases |
GET |
/download/cumulative_detections.csv |
Download full history (CSV) |
GET |
/download/cumulative.kml |
Download full history (KML) |
Method | Endpoint | Description |
---|---|---|
GET |
/api/diagnostics |
System health and performance |
POST |
/api/debug_mode |
Toggle debug logging |
POST |
/api/send_command |
Send command to ESP32 devices |
GET |
/select_ports |
Port selection interface |
POST |
/select_ports |
Update port configuration |
Real-time events pushed to connected clients:
detections
- Updated drone detection datapaths
- Updated flight path dataserial_status
- ESP32 connection status changesaliases
- Device alias updatescumulative_log
- Historical data updatesfaa_cache
- FAA lookup results
- β Xiao ESP32-C3 (Single core, WiFi only)
- β Xiao ESP32-S3 (Dual core, WiFi + Bluetooth)
- β ESP32-DevKit (Development and testing)
- β Custom PCBs (See Tindie store link below)
ESP32 Pin | Mesh Radio Pin
----------|---------------
TX1 (d4) | RX 19
RX1 (d5) | TX 20
3.3V | VCC
GND | GND
Metric | Performance |
---|---|
Detection Latency | < 500ms average |
Concurrent Drones | 50+ simultaneous |
Memory Usage | < 100MB typical |
Storage Efficiency | ~1KB per detection |
Network Throughput | 1000+ detections/min |
ESP32 Not Detected
# Check USB connection
ls -la /dev/tty* | grep USB
# Verify driver installation
dmesg | grep tty
Web Interface Not Loading
# Check if service is running
netstat -tlnp | grep :5000
# Review logs
tail -f mesh-mapper.log
No Drone Detections
- Verify ESP32 firmware is properly flashed
- Check WiFi channel configuration (default: channel 6)
- Ensure drones are transmitting Remote ID (required in many jurisdictions)
This project is licensed under the MIT License
- Cemaxacutor
- Luke Switzer
- OpenDroneID Community - Standards and specifications
- Thank you PCBway for the awesome boards! The combination of their top tier quality, competitive pricing, fast turnaround times, and stellar customer service makes PCBWay the go-to choice for professional PCB fabrication, whether you're prototyping innovative mesh detection systems or scaling up for full production runs. https://www.pcbway.com/
Get professional PCBs and complete kits:
β If this project helped you, please give it a star! β
Made with β€οΈ by the Drone Detection Community