First step: run the agent’s checks
ados diag videoanswers “where does video die”: it samples each hop twice over 2 s and names the first stalled one.ados diag linkanswers “is the radio link working”:healthy,searching,deaf,mis_keyedorjammed, plus measured packet loss.ados diag storageanswers “is the card full or wearing”: space first, then write rate and power or thermal throttling.
--json to any of them, or run ados status --json, for a support ticket or a script. See Drone Agent diagnostics for every verdict.
Read the logs
The Black Box log store is off by default, so the systemd journal is the log of record:ados logs query and ados logs tail instead.
Flight controller not detected
Symptoms:ados shows MAVLink not connected. No telemetry in Mission Control.
Check the serial connection
Check the serial connection
/dev/ttyACM0 or /dev/ttyUSB0.Check baud rate
Check baud rate
mavlink.serial_port and mavlink.baud_rate. See What baud your drone is actually running.Check for serial port conflicts
Check for serial port conflicts
Check the MAVLink protocol setting
Check the MAVLink protocol setting
SERIALn_PROTOCOL for that port is set to MAVLink.FC not sending heartbeats
FC not sending heartbeats
Video frozen or not starting
Symptoms: Black video in Mission Control.ados diag video reports a stalled hop.
Check if a camera is detected
Check if a camera is detected
/dev/video* device means the camera is not recognised. For USB cameras check lsusb. For CSI cameras, check that the ribbon cable is seated on both ends.Check the video service
Check the video service
Check mediamtx
Check mediamtx
main. If mediamtx does not answer, check its log lines:Check cgroup resource limits
Check cgroup resource limits
MemoryMax cgroup limit. An OOM kill shows in the journal:max count means the service is hitting its limit.Camera permission denied
Camera permission denied
video group. After a manual install you may need:Radio link not working
Symptoms: No video over WFB-ng. The ground station shows no signal.ados diag link reports deaf, mis_keyed or jammed.
Check the WiFi adapter
Check the WiFi adapter
Check the kernel driver
Check the kernel driver
8812eu module is missing, rebuild it:Check channel match
Check channel match
ados radio status on both nodes. With auto-hop on, both sides return to the home channel (149 by default) when they lose each other; a different channel or reg_domain on the two rigs keeps them apart. See Link automation.Check key match
Check key match
tx.key and the ground station rx.key, complementary halves of one key pair created by a bind. They are not identical files. Compare the fingerprint in ados radio pair status on both nodes instead.mis_keyed from ados diag link, mean the two rigs come from different binds. Re-bind them; see WFB-ng pairing.Cloud disconnected
Symptoms: The drone does not appear in Mission Control over the cloud.ados shows cloud disconnected.
Check internet connectivity
Check internet connectivity
Check pairing
Check pairing
ados. If the agent is not paired with Mission Control, follow Pairing.Check the MQTT connection
Check the MQTT connection
/etc/resolv.conf), TLS certificate errors from clock skew, or an API key mismatch.Check clock synchronization
Check clock synchronization
date is off by more than a few minutes, enable NTP:Check server mode
Check server mode
Agent not starting
Symptoms:ados status reports that the agent is not running.
Check systemd
Check systemd
Reinstall over a broken install
Reinstall over a broken install
--force to clear its checkpoints and reinstall:Check disk space
Check disk space
/var/ados/recordings. Delete segments older than an hour and trim the journal:ados diag storage again to confirm the footprint dropped.High CPU or temperature
Check which process is using resources
Check which process is using resources
h264_enc under hw_video_codecs (see HAL and tiers).Thermal throttling
Thermal throttling
ados diag storage shows whether throttling has occurred in the retained window. Add a heatsink or fan, or reduce video resolution or frame rate.High control latency
Symptoms: Manual control feels laggy. Mission Control shows a high or climbingcontrolRttMs on the drone card.
Check which path the GCS is using
Check which path the GCS is using
controlRttMs is the round-trip time of the control link, measured against the agent’s GET /api/ping. A few tens of milliseconds is a healthy LAN link. Hundreds of milliseconds points to the MQTT relay or a busy network. Seconds means the GCS is on the cloud command-queue path, which suits monitoring but not hands-on flying.For low-latency control, connect over the LAN: serve Mission Control over plain HTTP (http://localhost:4000 or http://<lan-ip>:4000) and pair the agent by IP so the GCS uses the direct WebSocket path.Confirm the agent is reachable directly
Confirm the agent is reachable directly
Getting help
If these steps do not solve the problem:- Run
ados support-bundleon the affected node before rebooting it. It collects status, configuration, diagnostics, log records and service journals into one redacted archive, and sends nothing anywhere. - Open an issue on GitHub and attach it.
- Join the Discord community for real-time help.
Next steps
Drone Agent diagnostics
ados diag verdict and what it measures.