Overview

QuadroFleet is a modular, open-source platform for controlling FPV drones over cellular networks. It integrates low-latency video streaming, secure communication, and robust safety features, making it suitable for both hobbyists and professional applications.

This project was partially inspired by another one — MasinaV3, and I would also like to thank its author Daniel Banar for the help and advice during the OpenIPC firmware configuration.
I would also recommend his YouTube channel, where you can find working examples of this technology in use.

Features

  • Low-Latency Video: Delivers FPV streams with <100 ms latency using H.265 encoding.
  • Connection Loss Handling: Configurable failsafe modes (hover, land, or RTH) activate on signal loss.
  • Live GPS Tracking: Displays drone position on an interactive OpenStreetMap interface.
  • Extended Range: Leverages 4G/5G networks for ranges far beyond traditional 2.4 GHz systems.
  • On-Screen Display (OSD): Overlays telemetry (battery voltage, GPS coordinates, speed, altitude, compass) on the video feed.
  • Cross-Platform Control: Supports XBOX, PlayStation, or RC controllers via USB.

System Architecture

QuadroFleet operates through a client-server model, with components communicating over a secure WireGuard VPN using UDP for minimal latency.

1. Drone Module

  • Hardware:
    • OpenIPC-based IP camera (e.g., SSC30KQ, SSC338Q) for video and telemetry processing.
    • 4G/5G modem (e.g., Quectel EC25, EP06) for internet connectivity.
    • Flight controller (e.g., SpeedyBee F405) interfaced via UART using the CRSF protocol.
  • Functionality:
    • Streams H.265 video over UDP without additional synchronization to minimize latency.
    • Receives CRSF control frames and forwards them to the flight controller.
    • Collects and transmits telemetry (e.g., battery, GPS) to the ground station.

2. Ground Station (Operator Side)

  • Hardware: PC or smartphone running the QuadroFleet application.
  • Functionality:
    • Establishes a connection via WireGuard VPN tunnel to the drone.
    • Reads joystick inputs (throttle, pitch, roll, yaw) from a gamepad or RC transmitter.
    • Encodes inputs into CRSF frames and sends them via UDP.
    • Decodes telemetry and overlays it on the video stream.
    • Displays real-time drone position on an OpenStreetMap-based interface.

3. VPN Server

  • Purpose: Facilitates secure, direct communication between the drone and ground station.
  • Setup: Runs WireGuard on a VPS or local PC, requiring minimal configuration.
  • Benefits: Eliminates complex network setups and ensures data privacy.

4. Safety & Resilience

  • Connection Loss:
    • After 250 ms (configurable), the drone enters hover mode.
    • After 5 seconds (configurable), it initiates landing or RTH based on flight controller settings.
  • Redundancy: Optional ELRS (ExpressLRS) backup for local control if cellular connectivity fails.
System Diagram

FPV Drone Module

The drone module integrates:

  • OpenIPC Camera: Connects to the flight controller via UART, using CRSF for telemetry and control. Streams H.265 video over UDP.
  • 4G/5G Modem: Provides internet connectivity for VPN and data transmission.
  • Power Management: A DC-DC buck converter ensures stable 5V power for the camera and modem.
FPV Drone Module

VPN Server

The VPN Server is a service that allows the creation of a Virtual Private Network (VPN), enabling data exchange without the need for additional network configurations. In this case, the VPN connection allows the operator to quickly and easily connect directly to the drone.

VPN connection

Operator's Application

The QuadroFleet control application is a Java-based program with:

  • SDL Framework: Supports gamepad input (XBOX, PlayStation, or RC controllers).
  • Web Server: Hosts a local interface displaying:
    • Live video feed with OSD telemetry.
    • Interactive map for GPS tracking.
  • UDP Communication: Sends control commands and receives telemetry/video.

Android QuadroFleet app is also available.

Operator's Application

Next Steps

  1. Assemble the Drone Module: Follow the Module Assembly guide.
  2. Configure VPN: Set up WireGuard as described in Setting Up VPN.
  3. Flash Firmware: Install OpenIPC firmware per the Firmware guide.
  4. Tune Settings: Configure camera and app settings in Update Settings.

For troubleshooting, refer to the Troubleshooting section.