Skip to the content
PCBKitNew board
2 layers140 × 60 mmFlight computer, the printed circuit board in 3D

[Telemetry] Onboard flight computer for rocket avionics.

Size
140 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
44
Nets
57
Pads
138
Tracks, vias
202, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
4 Nov 2025
Updated
5 Nov 2026

Overview

Flight computer is an open-source printed circuit board by Serra-Rocketry, from the Serra-Rocketry/flight-computer repository on GitHub, published under the MIT licence. It is a 2-layer board of 140 × 60 mm with 44 parts on 57 nets, routed with 202 tracks and 0 vias.

It is built around the ESP32-S3-DEVKITC-1-N8R2, BMP585 and LSM6DS3, with the RFM95W-915S2 and BC547 among its other parts. Its parts include 7 ICs, 1 resistor, 1 transistor, 1 connector and 1 switch. It belongs with the ESP32 boards of this library.

Main components

5

README

README.md

Avionics — Onboard Computer

v2.0 Flight Computer for Serra Rocketry (#11 - Dedalo).

OOP + FreeRTOS + 4-state FSM, validated against real flight data. Built for the ESP32-S3.

Overview

Real-time avionics firmware for a sounding rocket. Runs on an ESP32-S3 under FreeRTOS, reading barometric (BMP585), inertial (LSM6DS3) and GPS (NEO-8M) sensors to detect flight events and deploy the parachute at apogee.

  • Flight state machine: IDLE → ASCENT → DESCENT → LANDED, with sub-event flags (liftoff, burnout, apogee, freefall, parachute)
  • Parachute deployment: Apogee + stable negative Vz, 3-cycle confirmation, 50 m ground guard — validated against RocketPy + real flight data points
  • Telemetry: 22-field CSV over LoRa @ 915 MHz to ground receiver
  • Logging: SD card (primary) with LittleFS flash fallback
  • Safety: NaN/Inf rejection, sensor fallback, TWDT watchdog, multi-condition parachute logic

Architecture

text
firmware/
├── firmware.ino          # setup()/loop() — orchestrates init*Task()
├── config.h              # Pins, thresholds, radio parameters
├── sensors/              # ISensor implementations (BMP585, LSM6DS3, GPS)
├── flight/               # FreeRTOS tasks + FlightStateMachine
├── modules/              # Actuators/peripherals (servo, LoRa, buzzer, FS)
└── docs/architecture.md  # v2.0 architecture (consolidated from REFACTORING_PLAN.md)

Two FreeRTOS cores with queue-based communication:

CoreTaskPriorityRateResponsibility
1FlightControlTask205 HzSensors + FSM + parachute + watchdog
0TelemetryTask55 HzGPS enrichment + LoRa + file + Serial
0LoggerTask1—Async log queue with level filter

Quick Start

Arduino IDE (recommended)

  1. Board: ESP32-S3 Dev Module (enable "USB CDC On Boot")
  2. Open firmware/firmware.ino
  3. Install libraries: Adafruit BMP5xx, Adafruit LSM6DS3, TinyGPS++, ESP32Servo, LoRa by Sandeep Mistry
  4. Compile (Ctrl+R) and upload (Ctrl+U)

Validate without hardware

bash
python3 extras/FSM_tester/FSM_Tester.py       # FSM against 1,873 real data points
python3 extras/validate_telemetry_format.py    # 22-field telemetry alignment

Key Specifications

ParameterValue
FlightControl rate5 Hz (200 ms)
Telemetry rate5 Hz (200 ms)
Parachute confirm3 consecutive Vz < −2 m/s
Ground guard50 m AGL
LoRa frequency915 MHz (Brazil/Americas ISM)
LoRa configSF7, BW 125 kHz, CR 4/5, CRC on, +17 dBm
StorageSD card (SPI) → LittleFS fallback
Sensor queue25 slots (∼2.4 KB)
Log queue50 slots (∼7.2 KB)

Documentation

Repository Layout

text
firmware/   v2.0 firmware (OOP + FreeRTOS + FSM)
test/       Hardware validation sketches (sensors, servo, FSM)
docs/       software.md, hardware.md, telemetry-format.md, flowchart.md
hardware/   KiCad schematic + PCB + BOM
extras/     Scripts, FSM tester, format validator, emergency deploy

Status

All refactoring plan phases are complete — v2.0 is fully implemented and documented. See CHANGELOG.md for the full release history.

Team

Serra Rocketry — IPRJ/UERJ

License

This project is licensed under the MIT License - see the LICENSE file for details.

Parts

44
QtyValueFootprintReferences
29TestPoint_THTPad_D1.5mm_Drill0.7mmTestPoint:TestPoint_THTPad_D1.5mm_Drill0.7mm3.3V, 3.3V, 5V, 5V, BZZ, CS LORA, CS LORA, CS SD, CS SD, DIO0, DIO0, DIO0, DIO0, GND, GND, GND +13
2Parachute_ServoConnector_JST:JST_EH_B3B-EH-A_1x03_P2.50mm_VerticalM1, M2
11kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1
1BC547Package_TO_SOT_THT:TO-92_InlineQ1
1BMP585electronics:BMP585U2
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1Conn_Coaxial_SmallConnector_Coaxial:BNC_TEConnectivity_1478204_VerticalJ1
1ESP32-S3-DEVKITC-1-N8R2ESP32-S3-DEVKITC-1-N8R8:ESP32-S3-DEVKITC-1-N8R8U5
1GPS M8Nelectronics:GPS N8MU6
1LSM6DS3electronics:LSM6DS3U3
1MINI 560 STEP DOWNelectronics:STEP DOWN MINI 560U7
1RBFButton_Switch_THT:SW_XKB_DM1-16UP-1SW1
1RFM95W-915S2RF_Module:HOPERF_RFM9XW_THTU1
1SD Card mini moduleelectronics:SD Card mini moduleU4

The 43 most common of 44 parts.

Questions

How big is the Flight computer PCB?

It measures 140 × 60 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Flight computer use?

44 parts, built around the ESP32-S3-DEVKITC-1-N8R2, BMP585, LSM6DS3 and RFM95W-915S2. 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 Flight computer KiCad files?

From the Serra-Rocketry/flight-computer repository on GitHub, at the commit this page was made from: the board is hardware/electronics/electronics/electronics.kicad_pcb and its schematic hardware/Telemetria Foguete/Telemetria Foguete.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Flight computer 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).

More from Serra-Rocketry/flight-computer

1

Similar boards

  • 4 layers76.8 × 38.1 mmINSIGHT, the printed circuit board in 3D

    INSIGHT

    K-Eckert15/ARES

    ARES capstone with PHOBOS and DEIMOS subsystems

    76 parts1
  • 4 layers82.8 × 33 mmE ink watch, the printed circuit board in 3D

    E ink watch

    sandgum/Triangulate-ES_01-Watch

    A 5mm thick smartwatch which uses an E-ink display and two OLEDs to display information while consuming very little power

    162 parts22
  • 8 layersSportwatch revA, the printed circuit board in 3D

    Sportwatch revA

    slimmpylk/Skoll_Ultra

    a custom outdoor and endurance-sports smartwatch.

    184 parts
  • 4 layers120 × 76 mmPanel, the printed circuit board in 3D

    Panel

    vbartusevicius/weather-station

    Open-source rooftop weather and air-quality station with no moving parts (Ø 96 × 235 mm, UV-stabilised ASA): ultrasonic wind, acoustic rain and hail, UV / sunlight / night-sky brightness, temperature, humidity…

    235 parts
  • 2 layers13.2 × 11.4 mmWeather head, the printed circuit board in 3D

    Weather head

    GarronAnderson/InsideMyHive-V2

    an open-source bee box monitor, now low-power with (hopefully) better code

    7 parts