DMON · Drone operations console

Ground control for several aircraft at once.

Aircraft report position, altitude, heading and battery over the protocol real drones use, and the console answers with commands: arm, take off, run the mission, hold, return. Missions are drawn on the map and uploaded over the standard transfer sequence. Every flight is recorded and can be replayed. The aircraft are simulated; the protocol and the console are not.

Simulated aircraft, real protocol. The flight model is simple on purpose, but every message between the aircraft and the console is MAVLink v2: heartbeat, position, battery, mission transfer, fence status, command acknowledgement. Connecting a real aircraft removes the simulator and leaves the console as it is.

Design

Three decisions that shaped it

Built so that the simulator is the only part a real aircraft would replace.

The protocol is the real oneTelemetry, commands, mission transfer and geofences all run on MAVLink v2 rather than a shortcut built for the demo. The console never learns that the aircraft are simulated.
Aircraft speak in numbersThe protocol carries a system id and nothing else, so names, models, purpose, weight and service intervals live in the ground inventory. Real operations are organized the same way.
Safety decisions sit in the aircraftThe geofence is uploaded to the aircraft, and the aircraft stops itself when it crosses the boundary. A rule that only lives in the console stops working the moment the link drops.
Control

From one aircraft to several

What the console does while the aircraft are in the air.

Live trackingPosition four times a second, with altitude, heading, battery, flight mode and mission progress per aircraft. A missing heartbeat for three seconds is reported as a lost link.
Missions on the mapClick to add waypoints, set an altitude for each, upload. The aircraft requests the items one at a time and acknowledges the set, which is the sequence a real autopilot expects.
GeofenceA radius and a ceiling, uploaded as a fence rather than kept on the screen. Crossing it puts the aircraft into hold and raises an alert in the log.
Several at onceStart every aircraft together, separate their cruising altitudes by 25 metres, or recall them all. Two aircraft within 150 metres horizontally and 15 vertically raise a proximity warning.
Airspace

Korean airspace, checked along the route

A route is not a set of points; the line between them crosses things too.

Sampled every 100 metresThe route is cut into samples and each one is tested against the zones, so a leg that passes through a prohibited area is caught even when both of its waypoints sit outside.
The whole round tripChecking covers takeoff from home and the return, because an approval is required when the departure point is inside a control zone even if the destination is not.
Requirements, not just a verdictRegistration, pilot certification and flight approval are listed per aircraft from its weight and whether the flight is commercial. Above 150 metres the approval applies regardless of zone.

Where the demo flies is itself the example. Seongnam sits under the Seoul Air Base control zone, which covers about 82% of the city, so the sample routes come back as "approval required". Since 17 September 2026 an unapproved flight inside a prohibited area carries up to a year in prison or a fine of 10 million won, up from an administrative fine.

Flight log

Every flight is kept

Recording starts when the aircraft is armed and ends when it is disarmed.

One second per samplePosition, altitude, battery and mode once a second. Storing the full telemetry rate would be four times the data for a resolution replay does not use.
ReplayThe track is redrawn with a scrubber and five-times playback, with the readings and the events of that moment.
ReportDuration, distance, ceiling, battery used, fence breaches, and whether the route needed approval.
Fleet hoursAccumulated flight time per aircraft comes from the saved flights, and the service interval counts down from it — a separate ledger would drift from the records.
Failures

Things going wrong, on purpose

A console is judged by what it shows when the flight stops going to plan, so the failures can be triggered from the screen.

Injected What actually happens On the console
Lost linkThe aircraft stops transmitting entirelyHeartbeat gone for 3s → marked offline, then recovers on its own
Battery drainConsumption jumps for 30 secondsThresholds at 30% and 15% each raise one warning, not a repeating line
Wind driftThe aircraft is pushed sideways regardless of its headingTrack leaves the planned line, and the geofence catches it if it reaches the boundary
Limits

What this does not claim

The console side is implemented end to end. Flying aircraft, official airspace data and legal clearance are outside the scope.

No aircraftEvery aircraft here is simulated. The flight model covers position, altitude, heading and battery, and leaves out attitude, inertia and real aerodynamics.
Airspace data is approximateZones are drawn from public descriptions, not from the official dataset. The national open API replaces them where they are loaded, and nothing else changes.
Not a flight clearanceThe verdict is a reference. Whether a flight may take place is decided by the approval process at the national drone service, not here.
Not a ground station productMature open-source ground stations exist and cover far more of the protocol. This is a demonstration of the operations side, not a replacement for them.