I am excited to present my MSc Advanced Lab project, where I extended the ARGOS/MARMOT drone platform with a bidirectional LoRa communication channel. This project built on my previous work in mesh-based drone coordination, now introducing a low-power, long-range out-of-band communication layer.
Project Overview#
The Advanced Lab project focused on enhancing resilience and operational flexibility of the ARGOS/MARMOT system. Core components developed include:
- LoRa Driver – Custom C driver for Raspberry Pi 3B+ with Dragino LoRa HAT, enabling bidirectional packet transmission over SPI.
- Remote Control Client – CLI tool to issue commands such as shutdown and GPS queries to remote nodes.
- Automated Deployment – Ansible workflow for provisioning, software deployment, and systemd service management across multiple nodes.
This architecture ensures control and monitoring capabilities even when Wi-Fi mesh connectivity is unavailable or unstable.
Technical Details#
LoRa Driver#
The driver bridges a TUN/TAP virtual interface with the LoRa module, exposing a standard network interface. Highlights:
- Packet Headers & Fragmentation – Reliable reconstruction over half-duplex links
- Checksum & Sequencing – Ensures data integrity
- Remote Command Handling – CMD_SHUTDOWN, CMD_GPS_REQUEST, CMD_GPS_DATA
- Logging & Telemetry – Systemd journal integration
It runs as a systemd service, with automatic startup and crash recovery.
Remote Control Client#
The client communicates with the driver via a Unix datagram socket, supporting commands:
shutdown– Stop local serviceremote_shutdown– Command remote nodesgps_request/send_gps– Query or transmit GPS coordinatesstatus– Check node health
Designed for lightweight, scriptable control in controlled lab environments.
Deployment Automation#
Automated deployment ensures repeatable, scalable setup:
- Install dependencies (WiringPi, CMake, libcorrect)
- Configure hardware and SPI interface
- Compile and deploy driver and client binaries
- Generate node-specific configurations
- Manage systemd services for automatic startup
This reduces human error and downtime while supporting multi-node scalability.
Results#
The system demonstrated functional bidirectional LoRa communication in real-world testing. Observed limitations include:
- Packet loss due to half-duplex nature
- Latency constraints for continuous BATMAN-adv integration
- Opportunity to improve fragmentation and retransmission protocols
Despite these, the project created a robust out-of-band control channel to extend drone network resilience.
Future Directions#
Potential enhancements:
- Rust rewrite – safer memory handling and concurrency
- Advanced packet protocol – adaptive fragmentation and loss mitigation
- Enhanced logging and monitoring – real-time system health visibility
This MSc Advanced Lab project provided hands-on experience in embedded systems, networking, and distributed communications, building a foundation for scalable, fault-tolerant drone operations.



