REACT 18 · LEAFLET · FASTAPI · MQTT

Everything your team needs to run a mission. One screen.

The AEOS ground station gives operators a live satellite view of the drone, 5–10 Hz telemetry on every critical system, onboard camera video with AI detections, and Athena AI for in-flight queries — all in a single secure dashboard. From mission planning to post-flight review, nothing leaves the screen.

GROUND STATION · AEOS STACK
InterfaceReact 18 · FastAPI · MQTT
Telemetry5–10 Hz · HMAC-signed frames
AI FeedYOLOv6 live detections · OAK-D Pro
CommsWiFi → 4G → LoRa failover
AI AssistantAthena · 3-tier on-device + cloud
PlatformAgroExplorer One · Active

Your drone, live on the map.

Watch AgroExplorer One move in real time — GPS trail, altitude, battery, and system state updating ten times per second on a satellite map you can pan and zoom without losing track of the drone.

AEOS Operator Console — AgroExplorer One connected with satellite map, test harness, front camera, NDVI panel and live telemetry
AEOS Operator Console · AgroExplorer One CONNECTED · Satellite map · Test Harness · Front Cam · NDVI · Live Telemetry

The right view for every phase of a mission.

Switch between mission planning, live operations, flight history, and AI detection review. Every page shares the same live data — no reconnecting, no lag, no switching apps.

CONSOLE NAVIGATION
01
Dashboard

Live map + drone trail · telemetry · mission controls · video feed · YOLO detections · system log · Athena chat · draggable floating panels. Layout persisted per-user in localStorage.

02
Mission Planning

Click-on-map waypoint editor · polygon drawing · altitude and speed controls · YAML mission preview · Save Mission → POST to /missions API → start from Mission Controls.

03
Flight History

Table of all completed flights with mission ID, status, and duration. Export buttons for CSV, PDF, and orthomosaic ZIP (in development).

04
Settings

Backend URLs (API + WebSocket) · Athena config (enabled, WS URL, tier preference, authority levels) · static operator checklist reference.

UI COMPONENT CATALOG
ComponentFunction
LiveMapLeaflet satellite + OpenStreetMap · drone marker · 500-point trail · mission waypoints · layer toggle
TelemetryPanel5 tabs: Main · Extended · WiFi/4G · Jetson stats · LoRa
MissionControlsMission picker · Start · Pause · Resume · RTL · Abort · progress bar
VideoPlayerLive JPEG snapshot stream · OAK or CSI · recording on/off · HD/SD toggle
VisionPanelDepth map + contour overlay + detection thumbnails
AthenaPanelAI chat · push-to-talk · action approval cards
ArtificialHorizonSVG pitch/roll gauge with aircraft symbol
CompassHUDSVG compass ring · heading · wind barb
DetectionFeedScrollable YOLO detection thumbnails (≤100)
TestHarnessPanelService health · manual tests · device toggles · Jetson NVPModel
AuditLogPanelSecurity event table · polled 30 s · CSV export
SecurityStatusBarEMCON level selector with confirm on REDUCED/SILENT

Real missions. Real data.

Every screenshot here is from an actual AEOS field session — mission planning over Portuguese coastal farmland and live telemetry with AgroExplorer One airborne.

AEOS Mission Planning page — Portuguese coastline satellite view with mission config
Mission Planning · NAVIGATE mission · default AGL 25 m · speed 4 m/s
AEOS Test Harness — device toggles for OAK-D, modem, GPS, WiFi, LiDAR with live Jetson stats
Test Harness · Devices tab · per-device toggle (OAK-D, modem, GPS, WiFi, LiDARs)
AEOS dashboard — Lisbon bridge satellite view with system log and telemetry
Dashboard · System Log panel · Tailscale link transitions · OpenStreetMap layer
AEOS Connect to AEOS dialog — SITL simulator and AgroExplorer One hardware drone listed
Connect to AEOS dialog · SITL simulator + AgroExplorer One hardware drone discovered

Depth and detections. Side by side.

The VisionPanel streams live OAK-D stereo depth alongside YOLO detection thumbnails. Depth frames arrive as JPEG tiles with contour overlays — the operator sees exactly what the obstacle avoidance system sees, in real time.

AEOS VisionPanel — live depth map with contour overlay and YOLO detection thumbnails alongside satellite map
VisionPanel · OAK-D stereo depth map · YOLO detections · live satellite map · full telemetry · AgroExplorer One airborne

5–10 Hz. Every system. Every second.

Altitude, heading, battery, GPS quality, and AEOS state stream to every panel simultaneously the moment they arrive. One connection. No duplication. Nothing buffered.

TELEMETRY PANEL · MAIN TAB
AEOS Telemetry panel — Main tab showing mode, battery, altitude, GPS, heading and sensor readings
Telemetry · Main tab · STABILIZE mode · GPS status · sensors live
WEBSOCKET EVENT TYPES
EventDestinationContent
telemetryTelemetryPanel, LiveMap, MissionControlslat/lon/alt, battery, mode, speed, EKF, vibration, Jetson stats
mission_stateMissionControlsstate, progress %, waypoint index, status message
detectionsDetectionFeed, VisionPanelclass, confidence, lat/lon, thumbnail JPEG (≤100 kept)
snapshotsVideoPlayerJPEG base64 → blob URL (revoked on replacement)
depth_mapVisionPaneldepth JPEG + contours + markers
linksTopBar, ConnectionPanelcomposite link score + per-interface WiFi/4G/LoRa status
hmac_alertTopBar (red badge)HMAC mismatch on tampered telemetry frame
presenceTopBaronline: true/false
lora_statusTelemetryPanel (LoRa tab)LoRa-only state via custom window event

Every command is accountable.

Arm, takeoff, waypoint, return-to-launch — every action is cryptographically signed, routed through the ground API, and logged with its outcome. If something goes wrong, you have a complete audit trail.

FLIGHT COMMANDS
ActionAPI EndpointConfirm?
ArmPOST /drones/{id}/commands { command: arm }None
Start MissionPOST /drones/{id}/commands { command: start, params: { mission_id } }Must pick mission first
Pause MissionPOST /drones/{id}/commands { command: pause }None
Resume MissionPOST /drones/{id}/commands { command: resume }None
Return to LaunchPOST /drones/{id}/commands { command: rtl }None
Abort MissionPOST /drones/{id}/commands { command: abort }None
Connect VehiclePOST /vehicle/{id}/connectPolls until CONNECTED
Toggle DevicePOST /drones/{id}/commands { command: device_toggle }None (optimistic UI)
SECURITY + EMCON
  • All commands signed with ED25519 on the ground, verified by SecurityGateway on the drone
  • Nonce + timestamp window prevents replay attacks (test: test_replay_attack.py)
  • HMAC verification on every incoming telemetry frame — mismatch triggers red TopBar badge
  • EMCON REDUCED / SILENT require explicit operator confirmation in the dropdown
  • Audit log: GET /api/audit?limit=200 — polled every 30 s — colour coded
  • COMMAND_ACCEPTED = green · COMMAND_REJECTED = red · EMCON_CHANGE = orange · HMAC_MISMATCH = red
  • CSV export from the AuditLogPanel modal (client-side blob download)
  • Role-based JWT auth: admin creates first account via POST /auth/bootstrap

No cloud required to fly.

AEOS runs entirely on the drone and a local ground station. No subscription, no internet dependency for flight operations. Tailscale provides an optional encrypted private link for remote access when you need it.

GROUND SERVICES
ServicePurpose
Mosquitto MQTTPrimary broker at 100.64.0.10:1983 (TCP) / :9101 (WS)
FastAPI (Uvicorn)Ground API at localhost:8100 — REST + WebSocket /ws/telemetry
React + ViteOperator UI at localhost:5173
ground_link_manager.pyKeeps ground Tailscale healthy; joins AEOne hotspot on link loss
ground_beacon.pyUDP heartbeat so the drone can find the ground host
lora_bridge.pyAuto-detects ground Heltec CP210x; parses LNKS_RX lines; TX heal commands
aeos-tailscale (Docker)--network=host · WireGuard · pinned to v1.78.3
VPS Mosquitto91.98.207.102:1983 — always-on rendezvous when ground host is unreachable
STARTUP SEQUENCE
# 1. Ground services (MQTT, API, link mgr, beacon, LoRa) ./start-ground-services.sh # 2. Tailscale (must be --network=host) docker start aeos-tailscale # 3. Operator UI cd ground/web && npm run dev → http://localhost:5173 # 4. Optional: tail live logs tail -f /tmp/ground-api.log \ /tmp/ground-link-manager.log # Drone boot → aeos-engine.service starts # Telemetry flows: drone MQTT → ground WS → UI

The ground server that closes the loop.

While AgroExplorer-001 is airborne, a rack-mounted server handles MQTT brokering, the ground API, and the operator UI. The moment the drone lands, the same machine kicks off post-flight intelligence — stitching orthomosaics, computing NDVI maps, running deep crop analysis, and making the full mission dataset available for review.

TwoAeon ground station server rack — rack-mounted server running AEOS ground services, MQTT broker, FastAPI, and post-flight AI pipeline
TwoAeon ground station · Rack server · MQTT · FastAPI · Post-flight AI pipeline · Alto Estanqueiro, Portugal
POST-FLIGHT INTELLIGENCE PIPELINE
Orthomosaic

OpenDroneMap stitches all geotagged frames into a full-field orthomosaic at cm/pixel resolution

Output: GeoTIFF · EPSG:4326 · mission-ID tagged
NDVI Map

Vegetation index computed per-pixel from the orthomosaic — zones of stress, senescence, or anomaly highlighted in the output

Output: colourised NDVI raster · field-boundary clipped
3D Mesh

Point cloud and textured 3D mesh reconstruction from SfM — full canopy structure for volumetric crop assessment

Output: PLY / OBJ · coloured from RGB keyframes
AI Server

Deep crop analysis and model re-training on collected detections — continuously improving YOLO accuracy on your specific crop and field conditions

Output: updated detection model · anomaly report · CSV export
FLIGHT OPERATIONS (LIVE)
Mosquitto MQTT100.64.0.10:1983
FastAPI ground APIlocalhost:8100
Operator UI (React)localhost:5173
VPN overlayTailscale · WireGuard
VPS rendezvous91.98.207.102:1983

Night operations. Full situational awareness.

The AEOS dashboard operates identically at night — all telemetry, AI detections, and mission controls remain live regardless of lighting conditions on the drone.

AEOS ground station night session — depth map panel with obstacle depth visualisation and live system log
Night session · Depth map panel · stereo obstacle depth · system log live
AEOS ground station night mission — dark satellite map with drone position and telemetry
Night mission · Dark satellite map · AgroExplorer One position · full telemetry
READY TO CONNECT

See AgroExplorer One live.

We'll walk your team through the AEOS ground station with a real drone connected — mission planning, live telemetry, AI detections, and the full operator workflow.

Book a Demo

info@twoaeon.com · +351 932 340 144