MSTAR24 One-to-Many Telemetry
Most telemetry radios are a matched pair: one on the ground, one in the aircraft, one link. MSTAR24 is built for the case where that does not scale — one ground unit and up to eight aircraft, all reachable from one ground station at the same time.
That is what you need for formation work, light shows, survey fleets, or a classroom with several aircraft in the air at once.
How it works
The ground unit connects to the computer with one USB cable and presents eight separate serial ports, named ChA to ChH. Each port is a pipe to one aircraft:
| Ground channel | Air unit slave number |
|---|---|
| ChA | 0 |
| ChB | 1 |
| ChC | 2 |
| ChD | 3 |
| ChE | 4 |
| ChF | 5 |
| ChG | 6 |
| ChH | 7 |
ChA also doubles as the ground unit's own configuration port.
The ground station then opens one connection per aircraft, each pointed at a different channel. From the ground station's point of view these are simply several serial links — which is why standard multi-vehicle support in Mission Planner and QGroundControl works without anything special.
Bandwidth is shared, and that shapes everything
This is the design constraint worth understanding before you configure anything, because it explains most of the decisions that follow.
All the aircraft share one radio downlink:
| Ground unit rate mode | Total downlink |
|---|---|
| Standard (default) | about 10.5 KB/s |
| High speed | about 22 KB/s |
That total is divided among however many air units the ground unit is configured to expect. Four aircraft in standard mode get roughly 10.5 ÷ 4 ≈ 2.6 KB/s each.
Three consequences:
- Set the air-unit count to what you actually fly. Leaving it at a higher number reserves bandwidth for aircraft that are not there.
- More aircraft means slower parameter loading and higher latency, not a broken link. On a full fleet, expect a ground station to take a minute or two to read every aircraft's parameters.
- Reducing each flight controller's MAVLink stream rates buys back real headroom.
Step 1 — Install the driver and find the channels
The ground unit needs a USB multi-serial driver — it is a single USB device presenting eight ports, and Windows needs to be told how to do that.
After installing, plug the ground unit in and open Device Manager. Under Ports (COM & LPT) you should see eight entries, ChA through ChH.
Windows assigns the COM numbers itself, so they differ between computers and are not necessarily consecutive. Write down which COM number belongs to which channel — everything later refers to channels, and the ground station asks for COM numbers.
If you see only one port, or none:
- Is the driver installed, and is it the multi-serial one?
- Is the USB cable a data cable?
- Any yellow warning triangles in Device Manager?
- Is this actually the ground unit rather than an air unit?
Step 2 — Configure the ground unit
Connect the ground unit, open MicoAssistant, select the COM port for ChA, set 57600 baud and connect. Open the radio settings, read the current parameters, change what you need, and write them back.
| Parameter | Range / default | What it does |
|---|---|---|
| Rate mode | Standard (default) or High speed | total downlink: about 10.5 KB/s or 22 KB/s |
| Number of air units | 1–8, default 4 | how many ways the bandwidth is divided |
| Transmit power | up to 1000 mW | ground-side power |
| Frequency mode | manual (fixed) | leave it |
| Module address | 1–30000, default 8888 | only units with the same address connect |
| Frequency channel | 0–82 → 2400–2482 MHz, default 0 | the operating frequency |
Module address is what separates one fleet from another. Two systems at the same site should use different addresses and different frequency channels — the address stops them pairing, the channel stops them interfering.
Step 3 — Configure each air unit
Each air unit is configured separately, over its own USB connection. The MSTAR24-F has a CP2102 on board, so it needs the CP210x driver.
Connect at 57600 baud in MicoAssistant and open the radio settings.
| Parameter | Set to | Notes |
|---|---|---|
| Working mode | networking mode | required for one-to-many; it is the default |
| Slave number | 0–7, unique per aircraft | number from 0 upwards with no gaps |
| Transmit power | up to 500 mW | air-side maximum |
| Rate mode | see the pairing table below | not the same name as the ground unit's |
| Module address | same as the ground unit | |
| Frequency mode | manual | the default |
| Frequency channel | same as the ground unit | |
| UART baud rate | 57600 by default | must match the flight controller's serial port |
| USB baud rate | 57600 | leave it |
The rate modes are named differently at each end
This is the single most confusing thing about MSTAR24, and it is worth reading twice:
| Ground unit | Air units |
|---|---|
| Standard | High speed |
| High speed | Ultra high speed |
An air unit acting as a one-to-many slave only offers high speed and ultra high speed. There is no "standard" to choose, and choosing the mode whose name matches the ground unit's is wrong. Match the pairing, not the label.
Slave numbers
Give the first aircraft 0, the second 1, the third 2, and so on. Numbering from zero with no gaps keeps the channel mapping predictable, and the slave number is what determines which ground-side channel that aircraft appears on.
Two air units with the same slave number will not both work. They are contending for one channel.
Step 4 — Wire and configure each flight controller
Wire the air unit to a spare serial port — TELEM 1 is the usual choice:
| Air unit | Flight controller |
|---|---|
| TX | RX |
| RX | TX |
| GND | GND |
ArduPilot
For an air unit on TELEM 1, which is SERIAL1:
SERIAL1_BAUD = 57600
SERIAL1_PROTOCOL = 2 # MAVLink2
Use the matching SERIALx_ parameters for any other port.
Then, connecting to each aircraft in turn over USB, give every one a different MAVLink system ID:
SYSID_THISMAV = 1 # aircraft 1
SYSID_THISMAV = 2 # aircraft 2
SYSID_THISMAV = 3 # aircraft 3
PX4
For an air unit on TELEM 1:
MAV_0_CONFIG = TELEM 1
MAV_0_MODE = Normal
MAV_0_FORWARD = Disabled
MAV_0_RATE = 1200 # bytes per second
Write those, reboot, and only then set the port's baud rate — the parameter does not exist until the port has been claimed:
SER_TEL1_BAUD = 57600
Reboot again, then give every aircraft a different system ID:
MAV_SYS_ID = 1 # aircraft 1
MAV_SYS_ID = 2 # aircraft 2
MAV_SYS_ID = 3 # aircraft 3
The slave number is a radio setting and decides which channel an aircraft appears on. The MAVLink system ID is a firmware setting and is how the ground station tells one aircraft from another.
They are independent, and both have to be unique. Duplicate slave numbers give you aircraft competing for a channel; duplicate system IDs give you several aircraft that the ground station believes are one.
MAV_0_FORWARD is disabled here deliberately. Forwarding relays traffic between links, and on a shared downlink that is bandwidth spent on nothing useful.
Step 5 — Connect the ground station
Before connecting, check:
- The ground unit is plugged into the computer.
- Every air unit is wired to a flight controller and powered.
- Every air unit has a different slave number.
- Every flight controller has a different system ID.
- Module address and frequency channel match across the whole system.
- Ground and air rate modes are correctly paired.
When an air unit has linked to the ground unit, its green LED lights steadily, and the ground unit's display shows the signal strength for that channel. That gives you a per-aircraft link check before any ground station is involved.
Mission Planner
- Select the COM port for ChA, set 57600, and click Connect. That is aircraft 1, on slave 0.
- With it connected, right-click the dark toolbar area at the top of the window and choose the connection option.
- In the window that opens, select the COM port for ChB, again at 57600, and connect. Aircraft 2 appears.
- Repeat for each further aircraft — ChC, ChD and so on.
Once they are all connected and have GPS positions, every aircraft shows on the map at once.
QGroundControl
QGroundControl keeps a list of defined links, which suits this well.
- Open Comm Links and click Add.
- Name it — "Aircraft 1" — set the type to Serial, choose the COM port for ChA at 57600, and save.
- Add one for each further aircraft, on ChB, ChC and so on.
- Select all the links you want, then click Connect. QGroundControl brings them all up together.
Reading every aircraft's parameters can take one to two minutes, because they are sharing one downlink. That is normal, not a fault.
Then use the multi-vehicle view to see everything at once, or switch between aircraft in the toolbar to work on one at a time.
Easily confused points
The ground unit is one USB device and eight serial ports. One cable, eight COM numbers.
ChA is both aircraft 1 and the configuration channel for the ground unit itself.
The rate mode names do not match across the pair. Ground standard goes with air high speed.
Slave number and system ID are different things, both unique per aircraft.
Module address separates fleets; frequency channel separates transmissions. You want both different between two systems at one site.
The air unit's UART baud and USB baud are separate parameters. The UART one has to match the flight controller.
Bandwidth is shared. Slow parameter loading with a full fleet is the design working, not a fault.
Troubleshooting
| Symptom | Where to look |
|---|---|
| Only one COM port, or none | Multi-serial driver not installed. Then the cable, then Device Manager warnings. |
| An air unit never links | Module address, frequency channel, and the rate-mode pairing. Then whether its slave number clashes with another. |
| Ground station sees one aircraft when several are connected | Duplicate MAVLink system IDs. Give each flight controller its own. |
| Two aircraft alternate or drop each other | Duplicate slave numbers. |
| Link is up but no MAVLink data | The air unit's UART baud rate does not match the flight controller's serial port, or the port is not set to MAVLink. |
| Everything works but is very slow | Expected with several aircraft. Reduce the air-unit count to the real number, use the faster rate pairing, and lower MAVLink stream rates. |
| Works indoors, drops outdoors at range | Antenna placement and transmit power. The air side maxes out at 500 mW against the ground side's 1000 mW, so the uplink is usually not the limit. |
Related guides
- MicoAssistant Guide
- CP2102 Driver Installation (Windows)
- ArduPilot — Telemetry Setup Guide
- PX4 — Telemetry Setup Guide
- MicoAir WiFi Link — Multi-Drone Networking Tutorial — the same problem solved over WiFi
- LR900 Telemetry Radio — User Manual
Written and maintained by the Robofusion engineering team.