Flight Computer v2

A New Capable Flight Computer

My flight computer development journey, It is now a fully-fledged PCB from a prototype circuit board in its second version.

Overview

A robust system with comprehensive sensor integration, memory, and expansion capabilities, ensuring redundancy and future scalability.

This project has helped me enter UAV technology, develop controlled flying systems, and lay the foundation for advanced future designs.

Purpose

Developed to enhance my learning, it also serves as a platform for experimentation and innovation, paving the way for more advanced and capable designs. Each iteration, including v2, is a stepping stone towards a more sophisticated v3.

System Architecture
Brains: Dual MCU Setup, two dedicated STM32-based MCUs (Navigation and Flight Computer)
  • Navigation Computer: Handles sensors for flight dynamics and orientation calculations.
  • Flight Computer: Manages the overall system, including power monitoring and control systems.
Memories: Each MCU has a 256kBytes EEPROM; the Flight Computer has an additional 1Gbit Flash memory for data logging.
Status Indicators: Eight LEDs (four per MCU) for visual status.
Inter-MCU Communication: UART channel and eight dedicated signal pins.
USB Ports: Both MCUs feature full-speed USB-C ports for debugging and telemetry.
On-board Components/Sensors

Microcontroller Units:

  • STM32F07VGT6, one each for Navigation and main flight computer.

Sensors:

  • Magnetometer (LIS3MDL)
  • Inertial Measurement Unit (BMI088)
  • Digital Pressure Sensor (BMP388)
  • Power monitor (INA219)
  • PWM Driver (PCA9685)

Memories:

  • EEPROM (AT24C256)
  • Flash (W25N01GV)

Status Indicator:

  • LEDs (8x)

USB:

  • USB-C ports, for each MCU

Power Supply:

  • 5V regulation at 3A using LM2596S
  • 3.3V regulation at 1A using AMS1117

Others:

  • Additional ESD protection and reverse polarity protection.
Exposed Peripherals

Flight Computer:

  • 4x GPIOs
  • 1x SPI port
  • 4x Timer outputs
  • 2x ADC ports
  • 2x UART ports
  • 1x I2C port
  • 8x PWM outputs via PWM driver

Navigation Computer:

  • 4x GPIOs
  • 1x SPI port
  • 4x Timer outputs
  • 2x ADC ports
  • 2x UART ports
  • 1x I2C port      
Drivers for on-board sensors and modules

A GitHub repository containing the drivers for the on-board sensors.

Future Goals and Plans for Version 3
  • Integrate on-board GPS.
  • Consider multiple on-board IMUs.
  • Using a 9 DOF inertial measurement unit.
  • On-board high current channels for pyro and parachute deployment.
Testing and Demonstration

Raw Sensor Data and Inter-MCU Communication:

  • Video Slide 1: Demonstrates live raw and unfiltered sensor data streaming from the navigation and main flight computers, highlighting inter-MCU communication. The main Flight Computer’s USB interface transfers data to the PC. In this demonstration, the navigation computer reads IMU, magnetometer, and pressure sensor data at 100Hz and transmits it to the main flight computer at 4Hz. The main Flight Computer reads the transferred data as it arrives, monitors power at 1Hz, and sends the combined sensor and power data to the PC via USB at 2Hz.
    Note: Magnetometer axes are not aligned with the IMU in this demonstration.
  • Video Slide 2: A preview of the fin actuation prototype, showing the main flight computer’s control system (actuated using a PWM driver), with the fins moving to their minimum and maximum positions (set for this prototype).
    Note: This fin actuation hardware is an extremely early prototype of an airflow vectoring system I’m developing for a future project.

Attitude Control Demonstration: Visualizing Roll, Pitch, and Yaw

  • Real-Time Orientation Visualization: I developed a VPython script to visualize the orientation of the flight computer in real-time.
  • Orientation Calculation with the Madgwick AHRS Algorithm: The orientation is computed using the Madgwick Orientation Filter (AHRS (Attitude and heading reference system)) developed by x-io Technologies (Open source IMU and AHRS algorithms). 
  • This algorithm, running on the Navigation computer, computes quaternions and converts them into Euler angles. The calculated angles are then transferred to the PC through the Navigation computer’s USB port for real-time visualization.