MCPcopy Index your code
hub / github.com/BeechatNetworkSystemsLtd/rns-mavlink-rs

github.com/BeechatNetworkSystemsLtd/rns-mavlink-rs @v0.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.1 ↗ · + Follow
15 symbols 17 edges 6 files 0 documented · 0%

Browse by type

Functions 7 Types & classes 8
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

rns-mavlink

Reticulum-Mavlink bridge

Bridges a flight controller connectd via serial port to a ground station over Reticulum mesh network.

Building and running

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: 9999
  • fc_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: 115200
  • gc_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.

Kaonic build

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.

Kaonic installation

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.

Core symbols most depended-on inside this repo

Shape

Class 6
Method 4
Function 3
Enum 2

Languages

Rust100%

Modules by API surface

src/gc.rs5 symbols
src/fc.rs5 symbols
src/bin/gc.rs2 symbols
src/bin/fc.rs2 symbols
src/bin/tty-test.rs1 symbols

For agents

$ claude mcp add rns-mavlink-rs \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page