Skip to content

mLRS firmware map

915 MHz MAVLink link

How the mLRS radio firmware is put together, drawn for the Matek mR900-30 pair on the bench. Both ends run the same six layers. Pick a stop, or use the arrow keys, and its part of the diagram lights up.

Site node or GCS Flight controller, TELEM2 MAVLink on LT1/LR1 or USB MAVLink on Tx1/Rx1 TRANSMITTER BUILD · DOCK END RECEIVER BUILD · AIRCRAFT END same code? Transmitter program CLI on USB · display · Bluetooth, WiFi Receiver program one main loop · RC out · fan ≠ Protocols MAVLink · CRSF in from a handset Protocols MAVLink · SBUS or CRSF out ≈ Settings edits them, sends them to the receiver Settings keeps its copy in flash = Link core sends first, then listens Link core listen → sync → connected = Radio driver SX1262 over SPI Radio driver SX1262 over SPI = Board file tx-hal-matek-mr900-30 · pins, power Board file rx-hal-matek-mr900-30 · pins, power ≠ 91-byte frame, dock to aircraft 91-byte frame back one exchange every 32 ms, then both ends hop to the next of 25 channels
Both radios run the same stack. The centre column marks each layer as identical (=), nearly identical (≈) or different (≠) between the two ends. Figures are for the 915 MHz FCC band in 31 Hz mode.

Walkthrough

1 of 7
Read from github.com/olliw42/mLRS at commit 62454fc (v1.4.02 pre-release plus 71 commits) on 2026-10-05. The Matek board files and the power table were read in full. The other layers are described from their folders, headers and the include lists of the two main programs.

Comments on

    Comments are reviewed before they appear. Please leave out places, addresses and other personal details.

    A Supported Systems Flight

    This build log is written and kept by Supported Systems, a small studio that makes thoughtful, user-first technology. The airframe, the hangar and the simulation are ours.

    Visit supported.systems