Rust FPV system for Raspberry Pi — low-latency H.264 over raw 802.11
A low-latency FPV system for drones, written entirely in Rust. It gives the operator live video, flight telemetry, and manual RC control through a direct link between a Raspberry Pi on the aircraft and one at the ground station. The system is designed to stay responsive without relying on a conventional Wi-Fi or IP network.
RPV is split into two programs. rpv-cam runs on the drone's Raspberry Pi 5, captures H.264 video, and sends it alongside telemetry and RC commands. It communicates with the flight controller over MAVLink. rpv-ground runs on the ground-station Raspberry Pi 5, receives and decodes the video, and displays an on-screen view of the link status, frame rate, signal strength, battery, GPS, and aircraft attitude.
Instead of a standard Wi-Fi connection, RPV can send data directly over raw 802.11 radio frames. This removes network overhead and helps keep video latency low. Video packets include Reed-Solomon forward-error correction, so the receiver can recover from some lost packets without interrupting the stream. RC commands are sent at 50 Hz across 16 channels, while a 10 Hz heartbeat monitors the state of the link. Raw 802.11, TCP, and UDP transport modes are available for different operating conditions.
The system starts automatically through system services and gives the video and radio tasks high scheduling priority to keep them responsive. Resolution, frame rate, and bitrate are configurable, including video up to 4096×2160 at 24–60 FPS. If the link is lost, an RC failsafe releases manual override after 500 ms over MAVLink or 2 seconds through the file-based control path.