Rpanion Electronics is run by Stephen Dade, an Engineer with over a decade of experience developing remote and autonomous systems (RAS). This includes such ecosystems as ArduPilot, Raspberry Pi and NVIDIA Jetson.
Case Studies
Visual (non-GPS) Positioning and Navigation

I developed an indoor navigation system (aprilmav) that provided an accurate (<5cm) position and velocity for ArduPilot.
Using Apriltags (similar to QR codes) mounting in an indoor space, I developed a lightweight software for a camera to detect multiple tags, determine the distance/angle to each tag and then use this information to determine the vehicle’s location and velocity. This was then fed into ArduPilot for accurate control of a ground-based RAS.
The software was flexible enough to be used with any type of camera (CSI, USB, etc) and could run on a Raspberry Pi, NVIDIA Jetson or most other compute devices in realtime (<150ms latency).
Companion Computer Management
In order to simply the management of a companion computer on a RAS, I developed a Web-based GUI (Rpanion-server) to perform the major tasks of a companion computer, including network configuration and MAVLink routing.
This software is flexible enough to be run on a Raspberry Pi, NVIDIA Jetson or most other compute devices.
Major features included GUIs for: Network management (including VPNs), MAVLink routing to/from the flight controller, realtime video streaming, automatic flight data logging and uploads and NTRIP ingestion into the flight controller.
Realtime Video Streaming
A client required a low-latency video stream via 4G from their fixed-wing aircraft. They were experiencing dropouts and high latency, in addition to poor video quality.
I improved on the setup by choosing more resilient video encoding, optimising their network setup to reduce dropouts and optimising the end-to-end setup to reduce latency.
The user experienced far fewer dropouts without needing to change their aircraft of GCS hardware setup.
Complex MAVLink Networks
A client required a highly reliable MAVLink network for their fix-wing aircraft over remote areas.
4G coverage was not available in the aircraft’s flight area, so a combined multi-technology network was conceived. This consisted of 3x different radio systems (satellite, long-range RF and Wifi) with automatic monitoring and handover depending on which radio system was the best connection at the time.
Additionally, the MAVLink stream would be automatically reduced to high-value messages in order to fit the bandwidth-constrained satellite system.
Custom software was developed so client’s GCS could see which radio system was active at any time and the signal quality of all 3 systems.
With this, the client’s aircraft could be confidently flown in BVLOS conditions.
As part of the 2025 ArduPilot Developer’s Conference, I gave a talk on the general aspects of complex networks:
Satellite System Integration
To better support ArduPilot in BVLOS conditions, I added support for the Rockblock 9603/9704 modems. These modems are some of the smallest satellite modems on the market, and are thus can be fitted to a large variety of RAS.
The support consisted of 2 parts. First, a Lua script was created to manage the modems state and send/receive data. Due to the low data rate of these modems, the “High Latency” version of MAVLink was used. Secondly, a GCS gateway was developed – sending/receiving MAVLink messages between the GCS and satellite ground station.
This has since become a standard feature of ArduPilot and has seen significant usage all over the world by a variety of RAS, allowing confident BVLOS operations for small-medium sized RAS.
MAVLink Interfaces
To support a client’s objective to show MAVLink-based vehicles in their situational awareness tool, I developed a custom MAVLink interface. This allowed any MAVLink-based vehicle to connect (via an IP-based network) to the interface, where their vehicle position, speed, name and platform type would be converted to their tool’s native format.
ROS2 Integration
As part of the 2025 ArduPilot Developer’s Conference, I developed and demonstrated ROS2 integration with ArduPilot:
This demonstration used Cartographer and NAV2 for autonomous navigation and pathfinding, with velocity and rotation rates being sent from NAV2 to ArduPilot via a DDS interface.


