Skip to the content
PCBKitNew board
4 layers53.7 × 53.7 mmRocketPower, the printed circuit board in 3D

Active fin control flight computer for a model rocket, built from scratch: custom PCB, Cortex-M7 firmware, PD attitude control, and hardware-in-the-loop testing.

Size
53.7 × 53.7 mm
Copper layers
4
Thickness
1.64 mm
Parts
133
Nets
220
Pads
681
Tracks, vias
1,391, 269
Pours
30
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Oct 2024
Updated
30 Oct 2026

Overview

RocketPower is an open-source printed circuit board by Sanassah, from the Sanassah/RocketPower repository on GitHub, published under the MIT licence. It is a 4-layer board of 53.7 × 53.7 mm with 133 parts on 220 nets, routed with 1,391 tracks and 269 vias.

It is built around the GD25Q64ESIG, DMG3406L and XRCGB24M000F2P29R0. Its parts include 39 capacitors, 32 resistors, 6 diodes, 4 crystals and 3 transistors.

Main components

3

README

README.md

RocketPower

An active fin control flight computer for model rockets.

Full rocket CAD render Cutaway CAD render, body cover and nose cone removed The real, assembled rocket

A model rocket built from the ground up: custom flight computer, custom PCB, active fin control for in-flight stabilization, and a full hardware-in-the-loop test rig.

Status: in bench and hardware-in-the-loop validation ahead of first flight.


🔧 Putting it together

Avionics bay assemblyAvionics bay CAD render

🚀 What it does

  • Active fin control. An ARM Cortex-M7 flight computer runs a PD controller on quaternion-derived tilt plus gyro rate, driving 4 independent servo fins in real time for active stabilization during ascent.
  • Redundant recovery. Apogee detection runs on multiple independent signals, each able to trigger deployment on its own.
  • Hardware-in-the-loop testing. A custom 6DOF Simulink model drives the real flight computer over serial, so the control loop gets validated before it ever has to fly.
  • Custom PCB. IMU, barometer, high-g accelerometer, GPS, power monitoring, pyro firing and continuity, and LoRa telemetry, all on one board.
  • Ground station. A PyQt6 desktop app for live telemetry, 3D orientation, and command/control.

🧠 Architecture

Every sensor feeds one MCU; that MCU runs the active fin control law and drives every output.

mermaid
flowchart TD
    classDef sensor fill:#4A90D9,stroke:#2C5F8A,color:#fff
    classDef compute fill:#F5A623,stroke:#B8780F,color:#000
    classDef output fill:#7ED321,stroke:#4C8A14,color:#000
    classDef ext fill:#9B59B6,stroke:#6C3483,color:#fff

    IMU[BNO085 IMU]:::sensor
    BARO[BMP390 Baro]:::sensor
    ACC[ADXL375 Accel]:::sensor
    GPS[ZOEM8 GPS]:::sensor
    PWR[INA260 Power]:::sensor

    subgraph MCU["ARM Cortex-M7 MCU (NXP i.MX RT1062)"]
        FSM[Flight State Machine]:::compute
        CTRL[PD Attitude Controller]:::compute
        PYRO[Pyro + Backup Deploy]:::compute
    end

    FINS[4x Servo Fins]:::output
    CHUTE[Recovery Parachute]:::output

    GS[GroundStation]:::ext
    SIM[Simulink 6DOF]:::ext

🛠️ Hardware

Every subsystem on one custom board: IMU, barometer, high-g accelerometer, GPS, power monitoring, pyro firing/continuity, and telemetry.

PCB layout PCB 3D render


🧪 Simulation and testing

Performance is modeled before anything is built, and the same model closes the loop with real hardware once it exists.

Simulink model view Flight path animation

A full powered ascent, coast, and parachute deployment, run entirely in hardware-in-the-loop: real flight computer, simulated flight.

Hardware-in-the-loop test


Reference launch photo

Where this is headed.

Parts

133
QtyValueFootprintReferences
90.22uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC5, C12, C13, C18, C19, C20, C21, C22, C26
80.1uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC29, C30, C31, C34, C35, C37, C39, C40
810kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR17, R19, R20, R22, R24, R26, R28, R30
8FiducialFiducial:Fiducial_1mm_Mask2mmFID1, FID2, FID3, FID4, FID5, FID6, FID7, FID8
74.7kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR6, R8, R14, R15, R16, R18, R32
6470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4, R5, R7, R9, R11, R12
6LOGOLOGOG***, G***, G***, G***, G***, G***
54.7uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC8, C14, C15, C16, C27
410uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC1, C7, C11, C28
37Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR21, R25, R29
37.32kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR23, R27, R31
3DMG3406LPackage_TO_SOT_SMD:SOT-23Q1, Q2, Q3
3TestPoint_2PoleTestPoint:TestPoint_2Pads_Pitch2.54mm_Drill0.8mmTP1, TP2, TP3
210nFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC17, C25
210pFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC23, C24
2120Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderFB1, FB2
218pFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC9, C10
21uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC3, C36
222pFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC32, C33
232.768kHzCrystal:Crystal_SMD_2012-2Pin_2.0x1.2mm_HandSolderingY1, Y3
25.1kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
1
1100kResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR13
11725711footprint:1725711ScrewTerminal1
11MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3
12.2MResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR10
12.2uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC6
1200G ACC LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD5
122uFResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderC2
13.3V LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD1
13.3Vregfootprint:TPS62111RSARTPS62111RSAR1
132.768kHzfootprint:830050789Y4
14.7uHInductor_SMD:L_0805_2012Metric_Pad1.05x1.20mm_HandSolderL2
1470ufCapacitor_THT:C_Radial_D6.3mm_H11.0mm_P2.50mmC41
16.8uHInductor_SMD:L_1008_2520Metric_Pad1.43x2.20mm_HandSolderL1
16AFuse:Fuse_1206_3216MetricF1
1ACCfootprint:ADXL375BCCZRLADXL1
1ALTIMETERBMP390:BMP388BMP1
1ANTENNAfootprint:CONMHF1SMDGTCONMHF1-SMD-G-T1
1Altimeter LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD4
1BATTfootprint:1725656ScrewTerminal2
1BOOTfootprint:QFN50P300X300X65-17N-DMKL02Z32VFG1
1BOOT LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD2
1CAMERAConnector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_VerticalJST-GH-2
1GD25Q64ESIGfootprint:GD25Q64ESIGFLASH1
1GPSZOE-M8Q:UBLOX_ZOE_M8-0-10U-BLOX_ZOE_M8Q-0-1
1GPS LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD3
1IMUfootprint:BNO085BNO1
1IMU LEDLED_SMD:LED_0603_1608Metric_Pad1.05x0.95mm_HandSolderD6
1INA260INA260:TSSOP16INA1
1MCUfootprint:BGA196C80P14X14_1200X1200X152MIMXRT1062DVL6B1
1MicroSDDM3DSF:DM3DSFDM3D-SF1
1RESETfootprint:KMR421GULCLFSKMR241GLFS1
1SERVO1Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_VerticalSERVO1
1SERVO2Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_VerticalSERVO2
1SERVO3Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_VerticalSERVO3
1SERVO4Connector_JST:JST_GH_BM03B-GHS-TBT_1x03-1MP_P1.25mm_VerticalSERVO4
1TELEMETRYConnector_JST:JST_GH_BM04B-GHS-TBT_1x04-1MP_P1.25mm_VerticalJST-GH-1
1USBcConnector_USB:USB_C_Receptacle_GCT_USB4110USB_C_Receptacle_USB2.0_14P1
1XRCGB24M000F2P29R0footprint:XRCGBY5

The 128 most common of 133 parts.

Questions

How big is the RocketPower PCB?

It measures 53.7 × 53.7 mm and has 4 copper layers, 1.64 mm thick.

What parts does the RocketPower use?

133 parts, built around the GD25Q64ESIG, DMG3406L and XRCGB24M000F2P29R0. 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 RocketPower KiCad files?

From the Sanassah/RocketPower repository on GitHub, at the commit this page was made from: the board is PCB/main/main.kicad_pcb and its schematic Documentation/Teensy-4.1-example-main/Teensy4.1-example.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the RocketPower 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 layers154.7 × 113 mmDeskMixer, the printed circuit board in 3D

    DeskMixer

    RaduAndre/DeskMixer

    DeskMixer is a software that allows control of application volumes with real sliders, and action mapping on buttons using arduino like platforms. The project was inspired originally by deej.

    113 parts3
  • 2 layers111.2 × 122.7 mmUniversalNode, the printed circuit board in 3D

    UniversalNode

    DPIclimate/ag-node

    Automatic multi-weigh-station for measuring the live-weight of sheep in remote locations.

    83 parts2MIT
  • 4 layers50 × 90 mmThermostat2, the printed circuit board in 3D

    Thermostat2

    conatsera/wireless_control_board

    45 partsCERN-OHL-W-2.0
  • 2 layers65 × 56 mmGreenhouse, the printed circuit board in 3D

    Greenhouse

    michaelbester/Raspberry_Pi_Hat

    PCB Design

    53 parts
  • 2 layers100 × 70 mmInuk base, the printed circuit board in 3D

    Inuk base

    NilsMinor/inuk-base

    NRF52 controller board to create connected garden / path lights based on the fruity-mesh protocol

    84 parts
  • 4 layers88.9 × 96.5 mmErs s32-board, the printed circuit board in 3D

    Ers s32-board

    schrodlm/nxp_hal

    In this assignment the target platform changes from the STM32F407 to the NXP S32K118, an Arm Cortex‑M0+ microcontroller from the S32K1xx automotive family.

    138 parts
  • 2 layers84 × 25 mmTransistors, the printed circuit board in 3D

    Transistors

    LilyTronics/lily_kicad_lib

    KiCad library by LilyTronics

    11 parts2MIT
  • 2 layers50 × 75 mmHAMS hub, the printed circuit board in 3D

    HAMS hub

    JakubFranek/Home-Air-Monitoring-System

    Home Air Monitoring System (HAMS) is my personal hardware & embedded software development project designed to monitor indoor and outdoor air quality in my home.

    32 parts