Skip to the content
PCBKitNew board
4 layers67.5 × 96.5 mmNew Flight Controller, the printed circuit board in 3D

New Flight Controller

chanmeletio/Astro_Avionics

Astro at Baylor HPR Avionics Software

Size
67.5 × 96.5 mm
Copper layers
4
Thickness
1.6 mm
Parts
139
Nets
164
Pads
596
Tracks, vias
1,258, 246
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
22 Sep 2026
Updated
28 Oct 2026

Overview

New Flight Controller is an open-source printed circuit board by chanmeletio, from the chanmeletio/Astro_Avionics repository on GitHub, published under the MIT licence. It is a 4-layer board of 67.5 × 96.5 mm with 139 parts on 164 nets, routed with 1,258 tracks and 246 vias.

It is built around the E22-400M30S, MAX-M10S-00B and MS560702BA03-50, with the BMI270, NINA-B306-00B-00 and TPD4E001DBVR among its other parts. Its parts include 51 capacitors, 34 resistors, 13 diodes, 12 ICs and 9 connectors. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

12

README

README.md

Astro at Baylor — Avionics Subsystem

Hardware DRC (KiCad v10) Firmware Build Firmware CI License: MIT

Flight computer, sensor acquisition, dual-deployment recovery actuation, and telemetry subsystem developed by Astro at Baylor for the 2027 Intercollegiate Rocket Engineering Competition (IREC) at Spaceport America.


Subsystem Architecture

text
Astro_Avionics/
├── .github/
│   ├── workflows/          # Automated CI/CD (KiCad v10 DRC/ERC, ARM GCC cross-compilation)
│   ├── ISSUE_TEMPLATE/     # Hardware ECO, firmware bug, and flight anomaly reports
│   └── PULL_REQUEST_TEMPLATE.md
├── docs/                   # Flight documentation, state machines, pinouts, and link budgets
├── firmware/
│   ├── app/                # Flight state machine, telemetry dispatcher, and mission logic
│   ├── bsp/                # Board Support Package for Astro Flight Computer
│   ├── cube/               # STM32CubeMX HAL initialization and CMSIS DSP libraries
│   ├── drivers/            # Sensor drivers (Baro, High-G & Low-G IMUs, GPS, Radio, MicroSD)
│   ├── mid/                # Middleware (ring buffers, comms framing, RTOS abstractions)
│   └── tests/              # Native host unit tests and simulation mocks
├── ground-station/         # Real-time telemetry receiver, packet decoder, and mission UI
├── hardware/
│   ├── drc/                # KiCad Design Rule constraints and automated DRC check scripts
│   ├── libraries/          # Custom team footprint, symbol, and 3D model libraries
│   └── rev_a/              # KiCad v10 Flight Controller schematics, layouts, and manufacturing outputs
└── sim/                    # Software-in-the-Loop (SITL) and Hardware-in-the-Loop (HIL) simulators

Hardware Overview (Rev A)

The Astro Avionics Flight Controller is designed in KiCad v10 to withstand high acceleration, vibration, and thermal environments typical of supersonic high-power rocket flights.

  • Primary Processing Unit: STM32F405RGT6 (Arm Cortex-M4 with FPU @ 168 MHz)
  • Inertial Sensing:
    • High-G Triaxial Accelerometer (high-velocity boost phase acquisition)
    • Low-G 6-DOF IMU (apogee detection, attitude estimation, and descent tracking)
  • Barometric Altimetry: High-precision barometric pressure sensor for altitude & apogee determination
  • Recovery & Pyrotechnics: Dual-deployment pyro firing channels (Drogue @ Apogee, Main @ configured AGL altitude) with hardware interlocks and live continuity sensing
  • Telemetry & RF: Long-range transceiver for live flight telemetry packet transmission to the ground station
  • Non-Volatile Logging: MicroSD card interface logging sensor telemetry at high rates

For complete design files, see hardware/rev_a/.


Toolchain & Developer Prerequisites

1. Hardware Engineering (KiCad EDA)

  • KiCad v10 (or compatible KiCad 10 nightly build)
  • KiCad CLI (kicad-cli) installed on system PATH for running local DRC/ERC exports

2. Embedded Firmware

  • ARM Embedded Toolchain: arm-none-eabi-gcc (v10+ recommended)
  • Build Systems: cmake (v3.22+) and ninja-build or GNU make
  • Static Analysis: clang-format and cppcheck
  • Flashing & Debugging: ST-LINK / J-Link with openocd or STM32CubeProgrammer

3. Simulation & Ground Station

  • Python: Python 3.10+ with pip and virtual environment support

Quickstart Guide

Building Firmware Locally

bash
# Clone the repository
git clone https://github.com/chanmeletio/Astro_Avionics.git
cd Astro_Avionics

# Configure and build firmware
cmake -B firmware/build -S firmware -DCMAKE_TOOLCHAIN_FILE=cmake/arm-none-eabi.cmake -GNinja
cmake --build firmware/build

Running Hardware DRC & ERC Headless

bash
# Run KiCad Electrical Rules Check
kicad-cli sch erc --output hardware/rev_a/output/erc_report.json hardware/rev_a/New_Flight_Controller.kicad_sch

# Run KiCad Design Rules Check
kicad-cli pcb drc --output hardware/rev_a/output/drc_report.json hardware/rev_a/New_Flight_Controller.kicad_pcb

# Parse violations with gatekeeper script
python hardware/drc/drc-ci-check.py --drc hardware/rev_a/output/drc_report.json --erc hardware/rev_a/output/erc_report.json

Safety Protocol & Mission Rules

[!CAUTION] Pyrotechnic Safety Interlock Rule: No live e-matches or pyrotechnic charges may be connected to the flight computer in the laboratory without the physical arming key / safety shunt removed and verified with a multimeter. Live fire testing must strictly adhere to docs/safety_procedures.md.


Contributing & Development Workflow

  1. Create a feature branch from develop (feat/driver-bmi088, hw/rev-a-power-trace-update).
  2. Ensure DRC/ERC passes with zero errors before opening a pull request.
  3. Submit a Pull Request targeting develop using the provided Pull Request Template.

License

This project is licensed under the MIT License.

Parts

139
QtyValueFootprintReferences
23100nFCapacitor_SMD:C_0603_1608MetricC1, C12, C13, C14, C16, C17, C18, C21, C23, C24, C29, C39, C40, C41, C42, C43 +7
1310kResistor_SMD:R_0603_1608MetricR2, R3, R4, R7, R10, R13, R18, R20, R22, R24, R32, R33, R34
910uFCapacitor_SMD:C_0603_1608MetricC10, C19, C20, C26, C32, C35, C36, C37, C49
5100Resistor_SMD:R_0603_1608MetricR5, R17, R19, R21, R23
510nFCapacitor_SMD:C_0603_1608MetricC25, C27, C28, C38, C46
5436500503Kicad Doc:CONN_SD-43650-002_05_MOLJ4, J5, J6, J7, J8
5B240APCM_Diode_SMD_AKL:D_SMAD2, D3, D4, D5, D8
4IRLML6344PCM_Package_TO_SOT_SMD_AKL:SOT-23Q2, Q3, Q4, Q5
31kResistor_SMD:R_0603_1608MetricR1, R6, R31
2100kResistor_SMD:R_0603_1608MetricR8, R15
212pFCapacitor_SMD:C_0603_1608MetricC3, C4
22.2uFCapacitor_SMD:C_0603_1608MetricC45, C47
222uFCapacitor_SMD:C_0603_1608MetricC31, C33
224kResistor_SMD:R_0603_1608MetricR26, R28
24.7uFCapacitor_SMD:C_0603_1608MetricC15, C22
2470uF_35V_-55CCapacitor_SMD:C_Elec_10x10.2C30, C34
25.1kResistor_SMD:R_0603_1608MetricR11, R12
26.8pFCapacitor_SMD:C_0603_1608MetricC2, C5
2PINHD_1x4_FemaleConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ1, J9
2SMAJ3.3ADiode_SMD:D_SMAD7, D9
2~Button_Switch_SMD:SW_Push_1P1T_NO_E-Switch_TL3301NxxxxxGSW1, SW2
1100pFCapacitor_SMD:C_0603_1608MetricC11
110uHInductor_SMD:L_0805_2012MetricL2
112.5kResistor_SMD:R_0402_1005MetricR16
11N4148WPCM_Diode_SMD_AKL:D_SOD-123D1
11k Ohm @ 100mHzPCM_Ferrite_SMD_AKL:Ferrite_0603_1608MetricL3
11uFCapacitor_SMD:C_0603_1608MetricC48
12.2kResistor_SMD:R_0603_1608MetricR29
12137160001Kicad Doc:2137160001_MOLU8
127nH @2GHzInductor_SMD:L_0603_1608MetricL1
1370kResistor_SMD:R_1206_3216MetricR14
14.7kResistor_SMD:R_0603_1608MetricR27
145.3kResistor_SMD:R_0603_1608MetricR30
1472192001Kicad Doc:CONN_47219-2001_MOLJ3
147kResistor_SMD:R_0603_1608MetricR9
182kResistor_SMD:R_0603_1608MetricR25
1ABLS-8.000MHZ-B2-TKicad Doc:ABLS-8.000MHZ-B2-T_ABRX1
1ABS07-32.768KHZ-TKicad Doc:CAP_ABS07-32.768KHZ-T_ABRX2
1BMI270Kicad Doc:BMI270_BOSU4
1BuzzerBuzzer_Beeper:Buzzer_Murata_PKMCS0909EBZ1
1DMP3099LPCM_Package_TO_SOT_SMD_AKL:SOT-23Q6
1E22-400M30SKicad Doc:E22-400M30SU6
1H3LIS331DLTRKicad Doc:QFN_31DLTR_STMU2
1IRLML2502PCM_Package_TO_SOT_SMD_AKL:SOT-23Q1
1LED_0603_AmberPCM_LED_SMD_AKL:LED_0603_1608MetricLED3
1LED_0603_BluePCM_LED_SMD_AKL:LED_0603_1608MetricLED1
1LED_0603_GreenPCM_LED_SMD_AKL:LED_0603_1608MetricLED4
1LED_0603_RedPCM_LED_SMD_AKL:LED_0603_1608MetricLED2
1LMR51420XDDCRKicad Doc:SOT23_DDC_TEXU11
1LOGOLOGOG***
1MAX-M10S-00BKicad Doc:XCVR_MAX-M10S-00BU5
1MS560702BA03-50Kicad Doc:SON8_MS5611_TECU3
1NINA-B306-00B-00Kicad Doc:XCVR_NINA-B306-00B-00U12
1R_10k_4x1206PCM_Resistor_SMD_AKL:R_Array_Concave_4x0603RN1
1SMAJ9.0ADiode_SMD:D_SMAD6
1STM32F405RGT7TRKicad Doc:LQFP64-10x10mmU1
1TPD4E001DBVRKicad Doc:DBV6U7
1TPS2121RUXRKicad Doc:RUX0012AU10
1TPS259830ONRGERKicad Doc:IC_TPS259830LNRGERU9
1U.FLPCM_SparkFun-Connector:U.FLJ2

The 135 most common of 139 parts.

Questions

How big is the New Flight Controller PCB?

It measures 67.5 × 96.5 mm and has 4 copper layers, 1.6 mm thick.

What parts does the New Flight Controller use?

139 parts, built around the E22-400M30S, MAX-M10S-00B, MS560702BA03-50 and BMI270. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the New Flight Controller KiCad files?

From the chanmeletio/Astro_Avionics repository on GitHub, at the commit this page was made from: the board is hardware/rev_a/New_Flight_Controller.kicad_pcb and its schematic hardware/rev_a/New_Flight_Controller.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the New Flight Controller design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layersOpenPowerDistribution, the printed circuit board in 3D

    OpenPowerDistribution

    ulikoehler/OpenPowerDistributor

    Open-hardware PCB to distribute DC 12V power to 12V / 5V / 9V & 24V consumers

    537 partsCC0-1.0
  • 4 layers107.5 × 102.5 mmNeo, the printed circuit board in 3D

    Neo

    kc099/kicad

    145 parts
  • 2 layers191 × 125.5 mmXcku5p board, the printed circuit board in 3D

    Xcku5p board

    sjbar03/XCKU5P-Development-Notes

    Notes while learning how to develop with the Xilinx Ultrascale+ XCKU5P FPGA. Also notes on PCB design.

    96 parts3
  • 4 layers70.9 × 71.2 mmFrameGuard, the printed circuit board in 3D

    FrameGuard

    ahmeda-42/FrameGuard

    FrameGuard PCB - Bike Theft Deterrent

    43 parts
  • 6 layers90 × 45 mmHw tele stern, the printed circuit board in 3D

    Hw tele stern

    shorlee/TeleSTERN

    The TeleSTERN Project is an Open Source Rocketry Flight Computer based on the TeleMega by Altus Metrum.

    303 parts3GPL-3.0
  • 2 layers101.6 × 48.3 mmLimn, the printed circuit board in 3D

    Limn

    prashnts/limn

    Pen Plotter with toolchanger

    53 parts14GPL-3.0
  • 2 layers109 × 67.2 mmDaughter Board, the printed circuit board in 3D

    Daughter Board

    hancho6319/My_PCB_Designs_repo

    48 parts
  • 4 layers89.5 × 62.6 mmPenguin, the printed circuit board in 3D

    Penguin

    jeevan9s/penguin-bot

    intelligent hybrid robot

    165 parts1