Browse by type
rns-mavlinkReticulum-Mavlink bridge
Bridges a flight controller connectd via serial port to a ground station over Reticulum mesh network.
Ground Control (gc) and Flight Conroller (fc) binaries require ports and forward
links to be specified as command-line arguments:
# ground control
cargo run --bin gc -- -p 4242 -f 127.0.0.1:4243
# flight controller
cargo run --bin fc -- -p 4243 -f 127.0.0.1:4242
Additional configuration such as serial device and ground control ports are set in
Gc.toml and Fc.toml config files.
The gc application runs on a system that can communicate with ground station software
(QGroundControl, MissionPlanner) via UDP (either locally or over internet).
Configuration is as follows:
gc_udp_address -- UDP address:port where ground station application is reachable,
example: "127.0.0.1:14550"gc_reply_port -- local UDP port where ground station will send replies, example:
9999fc_destination -- Reticulum address hash of the fc node, example:
"db332f13541eb2e4b47d02923fbbcb9a"The fc application runs on a system that is connected to a flight controller via
USB/serial port. Configuration:
serial_port -- serial port where the flight controller is connected, example:
"/dev/ttyACM0"serial_baud -- serial port baud rate, example: 115200gc_destination -- Reticulum address hash of the gc node, example:
"758727c1d044e1fd8a838dc8d1832e95"The provided fc and gc binaries initialize UDP interfaces for next-hop communication
over Reticulum. The rns_mavlink library can be used with other Reticulum
configurations by initializing your own Transport instance and passing as an argument
to the Fc and Gc structs when running.
Build the docker image from this repository https://github.com/BeechatNetworkSystemsLtd/kaonic-radio/blob/main/Dockerfile:
docker build --platform linux/arm64 -t kaonicradioimage .
In the Dockerfile there are lines commented-out to set up the Yocto SDK. You can try un-commenting those lines to get the SDK installed in the image. If not you will have to run those same commands inside the container.
Run the container:
docker run -dit --rm --net=host --platform linux/arm64 --name kaonicradiocontainer \
kaonicradioimage bash
The container will remain running and you can enter the container with:
docker exec -ti kaonicradiocontainer bash
Clone this repository and checkout the kaonic-build branch:
git clone https://github.com/BeechatNetworkSystemsLtd/rns-mavlink-rs rns-mavlink
cd rns-mavlink
git checkout -t origin/kaonic-build
Run the build.sh script (modify to add --release flags if needed):
./build.sh
The output fc and gc binaries will be in
target/armv7-unknown-linux-gnueabihf/debug/ or
target/armv7-unknown-linux-gnueabihf/release/ depending on the flags provided to the
build command.
Copy the fc and gc binaries into /home/root/fc/ and /home/root/gc/ on the target
systems, together with Fc.toml and Gc.toml configuration files. On the flight
controller system, install the rns-mavlnk-fc.service file into /etc/systemd/system/
and run systemctl daemon-reload and systemctl enable rns-mavlink-fc.service to
enable start on boot. To start the service manually systemctl start
rns-mavlink-fc.service.
$ claude mcp add rns-mavlink-rs \
-- python -m otcore.mcp_server <graph>