Deploy MAVProxy ground station software on your edge device with BalenaOS in one click for reliable ArduPilot vehicle communication.
- π MAVProxy Ground Station: Full-featured ArduPilot ground station software
- π§ Configurable Serial Interface: Connect to flight controllers via USB, UART, or network
- π‘ UDP Telemetry Output: Stream telemetry data to ground control stations
- π₯οΈ Remote Access: Access MAVProxy console via Balena dashboard
- π Auto-restart: Automatic recovery from connection failures
- π Persistent Logs: Aircraft logs stored across device reboots
Click the deploy button above to deploy this project to your Balena device in one click!
Alternatively, you can deploy manually:
- Create a Balena application
- Add your device to the application
- Clone this repository and push to your Balena application:
git clone https://github.com/samuel-duffield1/balena-mavproxy.git
cd balena-mavproxy
balena push <your-app-name>Configure your MAVProxy instance using Balena device variables:
| Variable | Description | Default |
|---|---|---|
SERIAL_DEVICE |
Serial device path for flight controller | /dev/serial0 |
OUTPUT_IP |
IP address for UDP telemetry output | 127.0.0.1 |
OUTPUT_PORT |
Port for UDP telemetry output | 14550 |
BAUD_RATE |
Serial communication baud rate | 57600 |
AIRCRAFT_NAME |
Aircraft identifier for logs | aircraft |
- Navigate to your device in the Balena dashboard
- Go to "Device Variables"
- Add the variables you want to customize
- The application will restart automatically with new settings
This application works on any Balena-supported device with USB ports (and GPIO UART controllers, if applicable):
- Raspberry Pi
- Intel NUC
- Jetson Nano
- Generic x86_64 devices
- USB Connection: Connect your flight controller to the device via USB
- UART Connection: Use GPIO pins for direct serial connection (Raspberry Pi & Jetson)
- Network Connection: Configure for network-based MAVLink connections
- Pixhawk/PX4: Usually
/dev/ttyACM0or/dev/ttyUSB0 - ArduPilot: Typically
/dev/ttyUSB0 - FTDI adapters: Usually
/dev/ttyUSB0,/dev/ttyUSB1, etc.
- Open your device in the Balena dashboard
- Click on the "Terminal" tab
- Select the
mavproxyservice - You'll have access to the MAVProxy console
Configure your ground control station to receive telemetry:
- Set connection type to "UDP"
- Use device IP address and port 14550 (or your configured port)
- Go to Application Settings > Comm Links
- Add new link with type "UDP"
- Set listening port to match your OUTPUT_PORT
mavproxy.py --master=udp:YOUR_DEVICE_IP:14550# Via Balena CLI
balena logs <device-uuid> --service mavproxy
# Via Dashboard
# Navigate to your device > Logs tabMAVProxy automatically logs flight data to /data/aircraft/ which persists across container restarts.
The service includes health checks to ensure MAVProxy is running correctly. Check service status in the Balena dashboard.
Device not detected
- Check USB connection
- Verify device permissions with
ls -la /dev/tty* - Try different SERIAL_DEVICE values (
/dev/ttyACM0,/dev/ttyUSB1, etc.)
Connection timeout
- Verify baud rate matches flight controller settings
- Check serial cable quality
- Ensure flight controller is powered and booted
No telemetry output
- Verify OUTPUT_IP and OUTPUT_PORT settings
- Check network connectivity between device and ground station
- Ensure firewall allows UDP traffic on the specified port
Service won't start
- Check device variables are set correctly
- Review logs for error messages
- Verify Dockerfile builds successfully
Enable verbose logging by setting the device variable:
DEBUG=1
This will provide detailed MAVProxy output for troubleshooting.
- Clone the repository:
git clone https://github.com/samuel-duffield1/balena-mavproxy.git
cd balena-mavproxy- Test with Docker Compose:
docker-compose up --build- Test with Balena CLI:
balena push <your-test-app>- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Balena Forums: Balena Community
- MAVProxy Documentation: MAVProxy Docs
- ArduPilot - Open source autopilot software
- QGroundControl - Cross-platform ground control station
- Mission Planner - Full-featured GCS for Windows