The detection side of the stack: a modular, phone-controlled metal detector with real-time signal visualization, GPS-tagged target logging, and coils that can be swapped in the field.

Architecture

┌─────────────────────────────────────────────┐
│         Phone (iOS/Android/Tablet)          │
│                                             │
│  PWA Interface:                             │
│  • Real-time signal display                 │
│  • Heatmap visualization                    │
│  • GPS tracking & waypoints                 │
│  • Camera for finds                         │
│  • Haptic feedback                          │
│  • Audio tones                              │
└──────────────────┬──────────────────────────┘
                   │ WiFi/HTTP/WebSocket
┌──────────────────▼──────────────────────────┐
│       LattePanda IOTA (Backpack)            │
│                                             │
│  Intel N150:                                │
│  • Flask web server + WebSocket             │
│  • SQLite database                          │
│  • WiFi 6E hotspot (field mode)             │
│  • Optional: RTK GPS, Modbus TCP            │
│                                             │
│  RP2040 Coprocessor:                        │
│  • Serial bridge or ESP-NOW receiver        │
└─────────────────────────────────────────────┘

A wearable backpack runs a LattePanda IOTA that serves a PWA to the operator’s phone over WiFi. The phone becomes the control surface — real-time signal display, heatmap, GPS tracking, camera, haptics — while the backpack handles signal processing, logging, and the detector coils themselves.

Why this design

Decoupling the UI (phone) from the detector (backpack) means the operator carries nothing in-hand, the interface can be upgraded independently of the hardware, and the same backpack can feed data to the rover platform when mounted on it.

Repo: github.com/fixstuff/Modular-Metal-Detector