Project Summary


Flight Controller
IMU Face

Background & Motivation
The rapid growth of UAVs in logistics, emergency response, inspection, and agriculture requires efficient, precise, and modular flight control systems. Most commercial systems are limited by power inefficiency and lack of customization. Our Low SWaP-C flight controller addresses these concerns with an STM32F405-based system designed for adaptability and modular testing.

IMU Math & Visualization


Acceleration is a strong indicator of IMU accuracy. Because gravity is constant (~9.81 m/s²), it provides a reference when the device is stationary. Our upcoming visualizations will compare raw acceleration data with expected baseline values. Velocity will be estimated by discrete integration in follow-up testing.

IMU Sensor GIF IMU Accel Snapshot

Testing Results


Serial Output & Sensor Fusion Results

IMU data is being visualized through CircuitPython for interpretation. Each image demonstrates that the IMU can accurately read acceleration across all axes, as well as relative altitude and temperature.

X-Axis Test

X Axis Results

// Last Sample Serial Output Format:
// G: 0.00, 0.08, -0.08   A: 9.74, 0.51, 0.90   ALT: 1.46ft   TEMP: 84.65°F
//
// G = Gyroscope (rad/s) readings per axis
// A = Accelerometer (m/s²) readings per axis
// ALT = Relative Altitude
// TEMP = Onboard sensor temperature
//
// Gravity is expected to dominate one axis depending on orientation.
// In this test, the X-axis is vertically aligned, so ~9.8 m/s² is expected on Ax.
// Small deviations result from noise or environmental factors.
// Click the image above to zoom in and examine detailed results.
    

Y-Axis Test

Y Axis Results
// Last Sample Serial Output Format:
// G: -0.10, -0.13, -0.13   A: 0.22, -9.73, 1.67   ALT: 1.35ft   TEMP: 84.46°F
//
// G = Gyroscope (rad/s) readings per axis
// A = Accelerometer (m/s²) readings per axis
// ALT = Relative Altitude
// TEMP = Onboard sensor temperature
//
// Gravity is expected to dominate one axis depending on orientation.
// In this test, the Y-axis is vertically aligned, so ~9.8 m/s² is expected on Ay.
// Small deviations result from noise or environmental factors.
// Click the image above to zoom in and examine detailed results.
    

Z-Axis Test

Z Axis Results
// Last Sample Serial Output Format:
// G: -0.16, 0.26, 0.45   A: -1.37, -0.42, 9.19   ALT: 1.39ft   TEMP: 84.67°F
//
// G = Gyroscope (rad/s) readings per axis
// A = Accelerometer (m/s²) readings per axis
// ALT = Relative Altitude
// TEMP = Onboard sensor temperature
//
// Gravity is expected to dominate one axis depending on orientation.
// In this test, the Z-axis is vertically aligned, so ~9.8 m/s² is expected on Az.
// Small deviations result from noise or environmental factors.
// Click the image above to zoom in and examine detailed results.
    

Sensor Reliability Testing – Acceleration

Each axis (X, Y, Z) was held stationary for 10 minutes with data logged through the STM32 while powered via USB.

X-Axis Test

X Axis Results
// X-Axis Acceleration Logging Summary
// Average Reading: 9.7515 m/s²
// Max Reading: 9.8393 m/s²
// Min Reading: 9.6964 m/s²
// Data Size: ~4975 KB
/*
  This test confirms the stability and accuracy of the accelerometer 
  along the X-axis while stationary. A consistent average reading 
  near 9.81 m/s² (Earth's gravity) indicates reliable sensor performance.

  The sensor was mounted with the X-axis aligned vertically, 
  logging data for 10 minutes through an STM32 controller. 
  Data anomalies and spikes were filtered out during analysis to 
  reflect true static behavior.

  Note: Minor deviations may result from external vibrations, 
  environmental noise, or data logging limitations. Values outside 
  the ±9.9 m/s² range were considered outliers and excluded from the 
  summarized metrics.
*/

    

Y-Axis Test

Y Axis Results
// Y-Axis Acceleration Logging Summary
// Average Reading: 9.7881 m/s²
// Max Reading: 9.8012 m/s²
// Min Reading: 9.7345 m/s²
// Data Size: ~4772 KB
/*
  This test confirms the stability and accuracy of the accelerometer 
  along the Y-axis while stationary. A consistent average reading 
  near 9.81 m/s² (Earth's gravity) indicates reliable sensor performance.

  The sensor was mounted with the Y-axis aligned vertically, 
  logging data for 10 minutes through an STM32 controller. 
  Data anomalies and spikes were filtered out during analysis to 
  reflect true static behavior.

  Note: Minor deviations may result from external vibrations, 
  environmental noise, or data logging limitations. Values outside 
  the ±9.9 m/s² range were considered outliers and excluded from the 
  summarized metrics.
*/

    

Z-Axis Test

Z Axis Results
// Z-Axis Acceleration Logging Summary
// Average Reading: -9.789 m/s²
// Max Reading: -9.8107 m/s²
// Min Reading: -9.7536 m/s²
// Data Size: ~4916 KB
/*
  This test confirms the stability and accuracy of the accelerometer 
  along the Z-axis while stationary. A consistent average reading 
  near 9.81 m/s² (Earth's gravity) indicates reliable sensor performance.

  The sensor was mounted with the Z-axis aligned vertically, 
  logging data for 10 minutes through an STM32 controller. 
  Data anomalies and spikes were filtered out during analysis to 
  reflect true static behavior.

  Note: Minor deviations may result from external vibrations, 
  environmental noise, or data logging limitations. Values outside 
  the ±9.9 m/s² range were considered outliers and excluded from the 
  summarized metrics.
*/

    

IMU Gyro Bias Testing

This test compares the gyroscopic data from the HGuide IMU against a standard off-the-shelf MPU6050 IMU. The purpose of the test is to evaluate the gyro bias and stability of each sensor by analyzing their outputs while stationary.

MPU6050 Gyroscope Bias Test

MPU6050 and STM32 MPU6050 Gyroscope Bias Analysis Result
// MPU6050 Gyroscope Bias Test Summary
// Sensor: MPU6050
// gx: Mean = 0.022003 rad/s, Std Dev = 0.001851 rad/s
// gy: Mean = -0.042590 rad/s, Std Dev = 0.001787 rad/s
// gz: Mean = -0.081430 rad/s, Std Dev = 0.002161 rad/s
/*
  The MPU6050 gyroscope bias test shows stable readings with low 
  standard deviation across all axes, indicating good consistency 
  during stationary testing.

  However, the mean bias values display noticeable offsets from zero, 
  especially on the Z-axis. These offsets highlight the sensor's 
  lower accuracy compared to other IMUs.

  While the MPU6050 is suitable for basic motion sensing, it lacks the precision and 
  reliability needed for industrial or professional grade 
  applications where minimal bias and high accuracy are critical.
*/

HGuide IMU Gyroscope Bias Test (Using data collected from acceleration tests.)

HGuide IMU Test Setup HGuide IMU Gyroscope Bias Analysis
// HGuide IMU Gyroscope Bias Test Summary
// Sensor: HGuide IMU
// gx-axis Range Observed: ~ -0.0005 to 0.0005 degrees/sec
/*
  The HGuide IMU gx-axis results show that the gyroscope readings 
  are extremely stable and tightly centered around zero.

  The scale of measurement is very small, with fluctuations limited 
  to approximately ±0.0005 degrees/sec. This indicates a 
  high-precision sensor with minimal noise and exceptional bias 
  stability.

  Very few small peaks are present, but they are rare and 
  insignificant, confirming the HGuide IMU's suitability for 
  professional, industrial, and high-accuracy applications where 
  precise motion detection is critical.
*/

Flight Demos


This section showcases live flight demonstrations and testing of the Low SWaP-C Flight Controller integrated with drone platforms. Video clips, logs, and results will be included to highlight performance, stability, and control capabilities. The 3D path is generated by integrating the drone’s recorded velocity over time at a constant sample rate (100 Hz). Each point represents a fixed time step, making the path scale linearly with time. The distance traveled reflects actual drone motion, with color indicating speed (green = slow, red = fast).

Demo Coming Soon 1 Demo GIF Demo GIF

Team


Team Photo
NameRoleContributions
Ethan Y.FirmwareWorked on firmware testing and debugging, particularly in relation to betaflight and firmware integration. Conducted research on communication protocols and system behavior.
Anthony A.FirmwareFocused on firmware development and validation, including SD card functionality testing. Supported integration of sensors and contributed to overall firmware stability.
Tristin R.Case DesignDesigned the enclosure and mechanical layout. Researched material options to ensure durability and manufacturability of the housing. Produced CAD models for prototyping.
Jeremiah H.HardwareLed hardware development including sensor integration, PCB prototyping, and system testing. Also contributed to team coordination and overall system design strategy.
Saif E.SupportAssisted in technical research, ensured accuracy of documentation, provided support across multiple subsystems during design and redesign phases, and contributed to sensor fusion and analysis efforts.

Powered by Team 29 | W3.CSS Template