Skip to content

Lab 08 Believer Comms and Firmware

RFD900x Telemetry and Firmware Lab Report

Activity 1: Setting Up the RFD900x

This lab focused on configuring and testing communication between two RFD900x telemetry modules—one serving as the ground unit and the other as the air unit. These radios allow wireless data exchange between a flight controller and a ground station, forming the backbone of UAS communication.
processed-D781DC54-BEFC-4A98-A852-44E741ACE0C5.jpeg
Figure 1. RFD900 USB Serial Connector
The RFD900x operates on the 902–928 MHz ISM band, which is approved for unlicensed use in the United States. This range is commonly used for telemetry and ensures legal, reliable operation. Before powering the units, antennas had to be connected so transmitted power could safely dissipate through them; without antennas attached, energy could reflect back and damage the transmitter.
Each module connects to a computer via a USB Serial plug, which provides both power and data through one port. Pin 1 of the connector serves as ground and uses a black wire. Using RFDTools, we increased the serial speed from 57 to 115 (baud) for faster communication and assigned each group a unique Network ID (NETID) to avoid interference with other radios in the same band.
image.png
After setup, we used PuTTY to confirm communication between two computers. Each module was assigned to its own COM port and configured to 115200 baud. Once connected, typing on one computer appeared instantly on the other. Sending a “hello world!” message verified successful two-way communication.
Seeing data appear live in PuTTY was a highlight—it clearly demonstrated how telemetry links work between the aircraft and the operator. Overall, this part of the lab taught me how baud rate and network configuration affect connection reliability and gave me hands-on practice with radio setup and serial communication.

Activity 2: Installing Firmware

The second portion of the lab involved installing custom firmware on the Windracers flight controller using Mission Planner, a ground control software designed for ArduPilot systems. The provided firmware file had a .apj extension, meaning it contained compiled ArduPilot code and configuration data.
Mission Planner allows users to upload firmware, adjust parameters, and monitor autonomous flights. Alternatives such as QGroundControl, PX4 Autopilot, and UgCS offer similar capabilities, but Mission Planner is the standard for ArduPilot-based controllers. Because Windracers uses ArduPilot, the firmware was expected to integrate smoothly.
The Blue Cube flight controller contains 1 MB of RAM and 2 MB of flash memory, enough for firmware and data storage. We began the upload process on an AIDA3 computer, but the system struggled to process the installation—likely due to hardware or permission limitations. Even though the upload did not complete, the process demonstrated how firmware communicates with the flight controller and emphasized the importance of compatible software and drivers.
image.png
image.png
After troubleshooting, we connected the controller to the Windracers Ground Control app. Using a serial connection set to 115200 baud, we verified that the system recognized the controller and could establish communication within the Flight Plan interface.

Reflection

This lab connected both hardware and software sides of UAS communication. I learned how to configure telemetry radios, verify data transfer, and attempt firmware installation through Mission Planner. The troubleshooting process taught patience and reinforced how attention to detail prevents connection issues.
Watching the PuTTY terminals exchange messages in real time was especially rewarding—it clearly showed how telemetry turns commands and flight data into a live digital conversation between drone and operator. Overall, this experience strengthened my understanding of UAS communication systems and built confidence in using the tools needed to maintain them.
Want to print your doc?
This is not the way.
Try clicking the ··· in the right corner or using a keyboard shortcut (
CtrlP
) instead.