Skip to the content
FixTheRobot Explore Robotics / UAV / Module 1 / M1-T11

UAV Systems Engineering · Module 1

M1-T11: UAV communication and onboard architecture

Every arrow in the architecture diagram is a link with a bandwidth, a latency and a way to fail: choose each one on purpose.

  • Lesson 11 of 12
  • UAV Fundamentals and System Architecture
  • Established engineering
  • About 5 minutes to read

A UAV has two communication problems: the radio links to the ground and the buses inside the airframe. Both are bandwidth, latency and reliability budgets, and both fail in ways the autonomy stack must expect.

Learning objectives

After this lesson, you should be able to:

  • Distinguish the command and control, telemetry and payload links and their requirements.
  • Compute a free-space link budget and the maximum range for a given margin.
  • Choose an onboard bus (UART, CAN, Ethernet, USB, SPI, I²CC) for each device.
  • Specify the loss-of-link behaviour for each link.

Conceptual explanation

Off-vehicle: a command and control (C2) link (low rate, high reliability, long range), telemetry to a ground station (MAVLink) and a payload link (video, high rate, shorter range). On-vehicle: buses between flight controller, ESCs, sensors and the companion computer.

Links and busesGround station connects through a C2 and telemetry radio to the flight controller; a video link carries payload data from the companion; inside the airframe UART, CAN, Ethernet and USB connect the flight controller, ESCs, sensors and companion.Ground stationQGC, operatorC2 + telemetryradio, MAVLinkFlight controllerUART, CAN, SPICompanionEthernet, USBPayload linkvideolow-rate reliable control, high-rate best-effort payload
Onboard buses
BusTypical useStrengthWatch for
UARTGNSS, telemetry radio, companionsimple, commonlow rate, no addressing, baud mismatch
CAN / DroneCANESCs, GNSS, sensorsrobust, multi-drop, differentialbus load, termination, firmware versions
SPI / I²CCIMU, barometer, magnetometershort on-board linksI²CC noise and address clashes, SPI wiring length
EthernetLiDAR, cameras, companionhigh rate, PTP-capable hardwareconnectors, weight, switch failure
USBcameras, donglesconvenientUSB 3 noise, connector reliability, power
Animation of message traffic on a UAV. Packets travel along the links between a GNSS receiver, a camera, a companion computer, a flight controller, ESCs and a telemetry radio. Small frequent packets run on serial and CAN style links between the flight controller and its peripherals, medium packets between the flight controller and the companion, and large image packets from the camera to the companion over USB or MIPI. Counters show messages per second on each link.
Typical links of a small UAV and the traffic on each. Packet width is proportional to message size: control traffic is small and steady, images are large and belong on the companion’s own bus. Rates and sizes are typical orders of magnitude. (Looping, about 5 seconds; drawn and computed for this course with illustrative values.)

Engineering intuition

Match the bus to the requirement: control-critical, low-rate and long cable run suggests CAN; sensor on the same board suggests SPI; high-rate payload suggests Ethernet. Then ask of each link “what does the vehicle do if this goes silent?” and write the answer into the failsafe table (lesson M8-T14). The most dangerous links are the ones with no heartbeat, because silence looks like “nothing to report”.

Mathematical formulation

Free-space path loss and the link budget (established radio engineering):

Free-space link budget
FSPL [dB]=20log⁡10d [km]+20log⁡10f [MHz]+32.44\mathrm{FSPL}\,[\text{dB}] = 20\log_{10}d\,[\text{km}] + 20\log_{10}f\,[\text{MHz}] + 32.44
Prx=Ptx+Gtx+Grx−FSPL−Lother,margin=Prx−sensitivityP_{rx} = P_{tx} + G_{tx} + G_{rx} - \mathrm{FSPL} - L_{\text{other}}, \qquad \text{margin} = P_{rx} - \text{sensitivity}

Doubling distance costs 6 dB; doubling frequency costs 6 dB. The maximum range for a required margin MM follows by solving for dd. Real links need extra margin for fading, antenna orientation, obstructions and interference; the free-space result is an upper bound.

dd, ff
distance and carrier frequency.
PtxP_{\text{tx}}, GtxG_{\text{tx}}, GrxG_{\text{rx}}
transmit power and antenna gains (dBm, dBi).
sensitivity
minimum received power for the data rate (from the radio’s datasheet).

Architecture and data flow

Control path: ground station → C2 radio → flight controller. Autonomy path: companion → FC (UART/Ethernet). Logging path: flight controller → SD card; companion → disk. Time path: GNSS PPS or PTP to sensors. Document every link in the Interface Control Document (lesson M7-T17) with rate, latency, frame, and failure behaviour.

Real-world UAV applications

  • Choosing a telemetry radio and antenna for a given range.
  • Deciding the bus for a new payload.
  • Defining link-loss actions and timeouts.
  • Estimating whether live video is feasible at the mission range.

Implementation example

This runs as shown: free-space link budget and the maximum free-space range for a margin, with a check that doubling distance costs 6 dB.

import math

def fspl_db(d_km, f_mhz): return 20 * math.log10(d_km) + 20 * math.log10(f_mhz) + 32.44
def rx_dbm(ptx_dbm, gtx_dbi, grx_dbi, d_km, f_mhz, other_loss_db=0.0): return ptx_dbm + gtx_dbi + grx_dbi - fspl_db(d_km, f_mhz) - other_loss_db
def max_range_km(ptx_dbm, gtx, grx, f_mhz, sensitivity_dbm, margin_db):
    allowed_loss = ptx_dbm + gtx + grx - sensitivity_dbm - margin_db
    return 10 ** ((allowed_loss - 32.44 - 20 * math.log10(f_mhz)) / 20)

assert abs(fspl_db(2, 2400) - fspl_db(1, 2400) - 6.0206) < 1e-3                       # doubling the distance costs 6 dB
assert abs(fspl_db(1, 2400) - 100.04) < 0.05                                          # 1 km at 2.4 GHz is about 100 dB
d = max_range_km(20, 2, 2, 2400, -100, 20)                                            # 100 mW, 2 dBi antennas, -100 dBm sensitivity, 20 dB margin (illustrative)
print(f"free-space upper bound on range: {d:.1f} km (real links need extra margin)")
assert abs(rx_dbm(20, 2, 2, d, 2400) - (-100 + 20)) < 1e-9 and 1 < d < 3
Link budget and maximum free-space range (illustrative radio parameters).

Common engineering mistakes

Using the free-space range as the operating range

Obstructions, antenna pattern and interference reduce it a lot; test in the real environment.

No heartbeat on a link

A silent link is indistinguishable from an idle one.

Mixing 2.4 GHz C2, video and Wi-Fi without planning

Self-interference degrades all of them.

Daisy-chaining CAN without termination

Reflections and intermittent faults.

Ignoring latency of video links

A 200 ms video delay is unusable for manual control and must be allowed for in any FPV design.

Failure modes

Failure modes, symptoms and causes
Failure modeHow it shows upLikely cause
C2 link lossNo operator controlRange, obstruction, interference
CAN bus-offESCs or sensors disappearTermination or load fault
Link saturationRising latency and dropsToo many topics or payload on the telemetry link
USB disconnectCamera stream stopsConnector vibration

Debugging approach

  1. Log received signal strength and packet loss against distance and attitude.
  2. Measure bus load and error counters.
  3. Test link-loss behaviour by pulling the link in a tethered or simulated test.
  4. Review the ICD against measured rates.

Practical exercises

  1. Compute FSPL at 5.8 GHz and 3 km.
  2. Find the maximum range if the margin requirement is 30 dB.
  3. Choose buses for ESCs, GNSS, a LiDAR, a stereo camera and a companion computer and justify each.
  4. Write the loss-of-link action for each link in your architecture.

Interview questions

Write an answer in your own words, then reveal the model answer. Nothing is sent anywhere.

Question 1

How does free-space path loss scale?

Model answer

With 20 log₁₀ of both distance and frequency: 6 dB per doubling of either, so it is an upper bound on range before fading and obstruction.

Question 2

Why prefer CAN for ESCs and some sensors?

Model answer

It is differential, multi-drop and robust to noise over long cables, with built-in error detection.

Question 3

What should every link have?

Model answer

A defined rate and latency budget, a heartbeat or timeout, and a documented failure behaviour.

References and further reading

Primary papers, official documentation and standards. Each claim above that is specific to a tool or version points here.

What’s next

Mark this lesson

Saved in this browser and synced to your account when you are signed in.

Next lesson

M1-T12: Complete UAV system architecture and data flow

Draw the end-to-end data flow from sensors to actuators with rates, frames and owners.