← All projects
PRJ-003 in progress

Avionics data logger

My own PCB that records motion (IMU) and altitude (barometer) data to onboard flash, with Python tooling to analyse it. It will become the base of a model rocket flight computer.

Domain
Avionics · Embedded
Period
2026-08 → ongoing
Stack
KiCad · STM32 · C · Python
Tags
aerospaceembeddedpcbfirmware
Block diagram. USB-C and a 1S LiPo feed a charger and 3.3 V LDO powering an STM32F411, which talks to an IMU, a barometer and SPI flash, with SWD debug, LEDs, a buzzer and expansion headers.
FIG. 1 — Planned system architecture for rev A.

Status: design phase, ongoing (slowly). This is the first step of my avionics roadmap. Its successor is a model rocket flight computer.

Goal

Design, manufacture and bring up my own PCB that records motion (IMU) and altitude (barometer) data to onboard memory, then analyse the data in Python. This board becomes the base for the model rocket flight computer, the next project on my roadmap.

What I’m learning

  • Schematic capture and PCB layout in KiCad
  • Designing around an STM32 microcontroller: power, clock, programming, decoupling
  • Sensor interfaces: SPI, I²C, UART
  • Board bring-up and hardware debugging
  • Embedded firmware: timers, interrupts, DMA, buffering, flash storage
  • Data analysis in Python

Requirements

RequirementTarget
IMU sample rate1 kHz
Barometer sample rate50–100 Hz
Logging durationseveral minutes at full rate
Power1S LiPo + USB-C charging
Data offloadUSB (virtual COM port)
Sizefits a model rocket body tube (aim ≤ 25 × 50 mm in rev B)
Massas low as practical
Expansionspare UART + I²C headers (GPS, radio later)

Rev A is deliberately generous: a bigger board with test points everywhere, extra LEDs and jumpers. I’ll shrink it in rev B once everything works.

Candidate parts

FunctionCandidatesWhy
MicrocontrollerSTM32F411 (main pick), STM32F405, STM32G431The F4 family is widely used in flight controllers, has USB, and is well documented
IMUBMI088 or ICM-42688-PThe BMI088 is known for vibration robustness. The ICM-42688-P is common in modern drone flight controllers
BarometerBMP390 or MS5611Both are proven in rocketry and drones
StorageW25Q128 (16 MB SPI NOR)Survives vibration better than an SD card socket
ChargerMCP73831A simple, well-documented single-cell LiPo charger
RegulatorLow-noise 3.3 V LDOKeeps the sensor supply clean, and is simpler and quieter than a switcher
DebugSWD headerProgrammed with an ST-Link
IndicatorsLEDs + piezo buzzerA buzzer is the only status you get when the board is inside a rocket

Parts are checked against the PCB assembly house’s stock before the schematic is finalised.