// Hardware Design & Firmware

Autonomous Parafoil Guidance System

A custom 4-layer PCB-based GNC system engineered for precision payload recovery. Landed under 5m from target on a 75m drop.

STM32H7 Altium Designer FreeRTOS EKF Fusion

// Overview

Project Overview

An autonomous Airborne Guidance Unit (AGU) that navigates a 5kg payload to a designated GPS coordinate. The problem it solves: high-altitude scientific payloads frequently drift off-course during unguided descent.

The system is a custom 4-layer PCB with a high-fidelity RF/inertial sensor suite and a GNC algorithm running on FreeRTOS. During field validation, it navigated from a 75-meter drop, correcting for wind shear, to land within a 5-meter radius of the target.

AGU Chassis

AGU chassis & actuation rigging

// Flight Test

Flight Validation

2025-12-06 · drop altitude 75m · wind moderate

AGU detects freefall via the IMU, stabilizes the payload, and begins actuating the left/right brake lines to execute calculated heading corrections against the wind vector. Final touchdown occurred <5m from the target coordinate.

// Hardware

Hardware Architecture

Altium 3D render
3d_render.png
Routing topology
routing.jpg
Assembled top view
assembled_top.jpg
Assembled bottom view
assembled_bottom.jpg

click any image to inspect at full resolution

Layer stackup & EMI shielding

A Ground–Signal–Power–Ground stackup shields internal high-speed digital traces from external EMI, which matters for the onboard RF modules. Inner layers use 2oz copper to handle high-current transients from the servo motors without severe thermal rise.

Power distribution — star topology

A star routing topology isolates the noisy servo power rails from the sensitive 3.3V logic rails. Prevents inductive ground bounce and voltage sags from servo stall currents resetting the STM32 core during stall flight maneuvers.

Active RF front-end

A NEO-M9N GNSS receiver paired with a custom bias-tee circuit (27nH inductor + 100nF capacitor network). It injects clean, low-noise DC power via an LT1764AET-3.3 LDO into the active antenna coax while isolating the RF path back to the receiver.

// Firmware

Firmware & State Estimation

RTOS architecture

Bare-metal firmware on an STM32H7, with FreeRTOS managing asynchronous sensor pipelines.

  • Task_IMU (100Hz) — high priority. Polls BNO085 via custom SPI driver. Handles SHTP protocol fragmentation/reassembly for zero data loss.
  • Task_GPS (DMA) — parses binary UBX packets directly from UART via DMA. Extracts V_NED vectors without blocking CPU cycles.

7-state EKF

A 7-state Extended Kalman Filter targeting position, velocity, and heading bias. To optimize for the MCU's FPU, I used a sequential update formulation, processing GPS measurement scalars independently and bypassing matrix inversions during the update step.

failsafe

Continuous geofence and sensor-health monitoring. Breaches trigger a hard "deadspin" interrupt, forcing servos into a rapid spiral descent to prevent fly-aways.

Control flow

execution rate: 100Hz

BNO085 IMU
SPI / SHTP
NEO-M9N GPS
UART / DMA
STM32H7 core · FreeRTOS
EKF fusion
state predict/update
GNC logic
pathing & actuation
Dual servo actuation
hardware timer PWM (TIM2)