Introduction / Purpose
This lab focused on two core competencies: (1) configuring RFD900x telemetry radios for reliable point-to-point communications and (2) installing custom ArduPilot firmware (.apj) on the Blue Cube flight controller and validating USB serial connectivity through the Windracers Ground Control application.
Hardware and Software Used
• Blue Cube Flight Controller (H7)
• RFD900x‑US telemetry modems (Air & Ground) with antennas
• USB serial cable (3.3V logic)
• AIDA3 PC with admin rights
• Personal Windows PC
• Mission Planner, PuTTY, and RFDTools
Activity 1 – RFD900x Telemetry Setup
We reviewed the RFD900x operating band (902–915 MHz uplink and 915–928 MHz downlink in the ISM band) and why this sub‑GHz range is used in North America for long‑range, resilient data links. We verified that antennas must be connected prior to powering to prevent RF energy from reflecting back into the PA, causing overheating or damage. We also identified pin 1 on the USB serial connector (black wire at the square pad with '1' PCB mark) and confirmed the baud selection for serial communications.
Procedure:
– Install RFDTools on the ‘Ground’ PC; connect the ground modem over USB.
– Connect the ‘Air’ modem to a second PC via USB serial.
– In RFDTools, set matching network parameters (e.g., NETID per group), and serial speed to 115200 bps.
– Label both radios (e.g., GROUND‑1, AIR‑1).
– Open Device Manager to find each COM port assignment.
– Open PuTTY on both PCs, select corresponding COM ports @ 115200, and validate link by sending 'hello world' between modems.
Key parameters included SERIAL_SPEED=115 (115200 bps) and group‑specific NETID values (e.g., 25, 50, 75, 100, 125, 150) to avoid cross‑talk among teams. Purpose: SERIAL_SPEED sets UART throughput/latency; NETID defines the RF network domain.
Activity 2 – Firmware Installation
We used Mission Planner’s custom firmware loader for ArduPilot to flash the Blue Cube with the Windracers‑provided .apj build. Unlike .hex images (typically used via DFU/JTAG/SWD), .apj is a packaged firmware format accepted by the bootloader and generally validated by developers. After flashing, we used the Windracers Ground Control app to create a Serial connection on the identified COM port at 115200 and confirmed the vehicle appeared in Flight Plan.
Key Q&A:
Q: What does the .apj extension mean and why use it?
A: It’s a bootloader‑ready ArduPilot firmware package. .apj simplifies field updates; .hex is intended for low‑level DFU/JTAG/SWD.
Q: What is Mission Planner? Any alternatives?
A: A full‑featured ground station for configuration, planning, and telemetry. Alternatives: QGroundControl, APM Planner, UGCS, PX4 tools, Betaflight configurator.
Q: Will the Windracers firmware work with Mission Planner?
A: Yes. ArduPilot supports custom firmware servers and builds that are compatible with Mission Planner tooling.
Q: How much memory does the Blue Cube have?
A: Approximately 1 MB RAM and 2 MB flash (H7 family has expanded resources for advanced features).
Figures
Figure 1/2. RFD900x hardware and pin‑1 identification before/after configuration.
Figure 3. Windows Device Manager indicating assigned COM ports for the USB serial adapters.
Figure 4. PuTTY serial session demonstrating successful 'hello world' telemetry between ground and air radios.
Figure 5. Mission Planner custom firmware loader after flashing the Blue Cube with the .apj package
Figure 6/7. Windracers Ground Control connected over Serial (COM#, 115200) with vehicle visible in Flight Plan.
Reflection / Key Takeaways
• Telemetry configuration forced disciplined parameter management (NETID segregation, UART speed matching).
• The antenna‑before‑power rule is non‑negotiable for RF hardware longevity.
• The .apj workflow is fast and field‑friendly; good for iterative test flights.
• Serial debugging with PuTTY remains a reliable first‑line validation tool.
• This stack generalizes to other UAS workflows (PX4/ArduPilot) with minimal changes.
Challenges & Fixes
• COM port contention on lab PCs: resolved by unplug/replug and verifying Device Manager mappings.
• Mismatched NETID between radios initially blocked link: fixed by applying group NETID consistently on both units.
• Incorrect baud selection on one side caused gibberish: resolved by standardizing on 115200.