Troubleshooting
This page covers the most common issues you might hit and how to diagnose them. Start withados diag for a full system dump, then work through the relevant section below.
First step: run diagnostics
Flight controller not detected
Symptoms:ados status shows FC: False. No telemetry in Mission Control. MAVLink screen in TUI shows “disconnected.”
Check the serial connection
Check the serial connection
Verify the UART cable is connected between the FC and the companion computer. Make sure TX goes to RX and RX goes to TX (crossover). Check voltage levels (most FCs use 3.3V UART; some use 5V TTL, which can damage a 3.3V SBC input).List available serial ports:If your FC is connected via USB, it usually appears as
/dev/ttyACM0 or /dev/ttyUSB0.Check baud rate
Check baud rate
The agent and FC must use the same baud rate. Common values:
- ArduPilot: 57600 (default TELEM1) or 921600
- PX4: 115200 or 921600
- Betaflight: 115200
Check for serial port conflicts
Check for serial port conflicts
Another process might be holding the serial port. Check:If something else is using the port, stop it or configure the agent to use a different port.
Check MAVLink protocol version
Check MAVLink protocol version
ArduPilot defaults to MAVLink 1 on some ports. The agent works with both MAVLink 1 and 2, but if you see garbled data, verify the FC’s
SERIALN_PROTOCOL is set to MAVLink (1 or 2).FC not sending heartbeats
FC not sending heartbeats
The agent waits for heartbeat messages to confirm the FC is alive. If the FC is not sending heartbeats, check:
- Is the FC powered on?
- Is the correct serial port configured on the FC side?
- Is the FC in a boot loop? (Check FC LED patterns)
Video frozen or not starting
Symptoms: Video feed is black in Mission Control.ados video shows State: idle or State: error. MediaMTX shows stopped.
Check if a camera is detected
Check if a camera is detected
/dev/video* devices exist, the camera is not recognized. For USB cameras, check lsusb. For CSI cameras, check that the ribbon cable is seated properly (gold contacts face the PCB on both ends for Radxa boards).Check the video service
Check the video service
Check MediaMTX
Check MediaMTX
cam. If MediaMTX is not responding, check its logs:Check cgroup resource limits
Check cgroup resource limits
The video service has a MemoryMax cgroup limit. If ffmpeg or MediaMTX is being OOM-killed, you will see it in the logs:Also check cgroup throttle stats:If
max is incrementing, the service is hitting its memory limit.Camera permission denied
Camera permission denied
The agent user needs access to Then log out and back in.
/dev/video*. The install script adds the user to the video group, but if you installed manually, you may need to:USB camera enumerates at wrong index
USB camera enumerates at wrong index
Some boards enumerate cameras at
/dev/video1 or higher instead of /dev/video0. The agent scans all /dev/video[0-9]* devices, but if you see “no camera found” in logs while a camera exists, check:Cloud disconnected
Symptoms: Drone does not appear in Mission Control.ados status shows cloud as disconnected. No telemetry in the dashboard.
Check internet connectivity
Check internet connectivity
Check pairing
Check pairing
Check MQTT connection
Check MQTT connection
- DNS resolution failure (check
/etc/resolv.conf) - TLS certificate errors (clock skew on the SBC can cause this)
- Auth failure (API key mismatch)
Check clock synchronization
Check clock synchronization
MQTT over TLS requires accurate time. If the SBC clock is off by more than a few minutes, TLS handshakes fail:Fix with NTP:
Check server mode
Check server mode
disabled, the cloud relay is turned off. Set it to cloud:WFB-ng not working
Symptoms: No video link,ados link shows State: inactive, ground station sees no signal.
Check the WiFi adapter
Check the WiFi adapter
Check the DKMS driver
Check the DKMS driver
88x2eu or rtl8812eu module. If it shows an error, rebuild:Check channel match
Check channel match
The air unit and ground station must use the same WFB-ng channel:Make sure both sides are on the same channel (default: 149).
Check key match
Check key match
Both sides need the same WFB-ng encryption key:Compare the key on the air unit and ground station. They must be identical.
Agent not starting
Symptoms:ados status returns “Agent is not running.”
Check systemd
Check systemd
Check Python and venv
Check Python and venv
Check disk space
Check disk space
High CPU or temperature
Check which service is using resources
Check which service is using resources
ffmpeg is using high CPU, the video encoder may not be using hardware acceleration. Check that hw_video_codecs in your board profile includes h264_enc.Thermal throttling
Thermal throttling
Getting help
If the troubleshooting steps above do not solve your problem:- Run
ados diagand save the output - Collect relevant service logs:
sudo journalctl -u ados-* --since "1h ago" > /tmp/ados-logs.txt - Open an issue on GitHub with the diagnostics output and logs
- Join the Discord community for real-time help