Skip to the content
PCBKitNew board
4 layers99.5 × 76.7 mmROCKET, the printed circuit board in 3D

Designing and building a TVC rocket controlled by a custom PCB wired to a ESP32-WROOM board

Size
99.5 × 76.7 mm
Copper layers
4
Thickness
1.6 mm
Parts
113
Nets
88
Pads
354
Tracks, vias
756, 127
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
20 Jul 2026
Updated
31 Oct 2026

Overview

ROCKET is an open-source printed circuit board by Pingu207, from the Pingu207/ROCKET repository on GitHub. It is a 4-layer board of 99.5 × 76.7 mm with 113 parts on 88 nets, routed with 756 tracks and 127 vias.

It is built around the ESP-WROOM-32D, AP63203WU and BMP280, with the CH340K, ICM-42688-P and USBLC6-2SC6 among its other parts. Its parts include 41 resistors, 34 capacitors, 10 ICs, 8 diodes and 8 connectors.

Main components

9

README

PCB/README.md

Rocket Flight Computer

A custom flight computer for a TVC model rocket that steers the rocket during boost and deploys its parachutes on the way down.

What it does

  • Steers the rocket with thrust vector control: two servos gimbal the motor to keep the rocket flying straight.
  • Deploys recovery with two pyro channels: a drogue chute at apogee and the main chute at a set altitude.
  • Logs the flight (acceleration, rotation, altitude, servo positions, battery voltages) to a microSD card.

How it works

An ESP32 reads an ICM-42688 IMU and a BMP280 barometer. It detects launch, tracks the rocket's orientation and drives the servos to correct any tilt. When the barometer shows the rocket has stopped climbing, it fires the drogue; the main fires lower on the way down. Each pyro channel is optoisolated by an optocoupler to protect the ESP32 and has continuity sensing, so the board confirms the e-matches are connected before launch.

The logic, servos and pyros each run from their own battery, so a servo stall or a pyro firing can't brown out the computer. The board is programmed over USB-C

Computer Module Subsystem

image

Contains the ESP32 as the 'brain' of the board, contains decoupling/bulk capacitors for the ESP power pins, RC decoupling for sensing pins, 2 SPI and an I2C communication circuit, 2 switches for RESET/BOOT on the ESP, various other resistors for signal lines and pull up on I2C/SPI lines, and a buzzer for detection of the apparatus after landing.

USB Input and Conversion(USB-UART) Subsystem

image

Uses a 14 pin USB-C Receptacle for programming of the ESP32 over USB(Note: On the PCB, only one side of the receptacle footprint is routed correctly due to space constraints, so it will only work when the cable is plugged in one specific way, not both). Contains a USBLC6-2SC6 transient voltage suppression diode array for ESD/Surge protection. The USB-UART conversion is handled by the CH340K, an auto reset transistor circuit is also in place to make the ESP32 enter boot mode when data is transferred. The VBUS from the USB can also power logic on the chip by feeding into the logic power buck converter(ORing with the battery), the line also contains a Schottky diode for protection.

Barometer(BMP280) Subsystem

image

Uses the BMP280 as the barometer, contains 2 decoupling caps for the power pins and a pull up resistor for the SCL line. Wired for I2C communication with the ESP32. Since SDO is tied to GND and CSB is pulled high to +3V3, the BMP280 will be set to the I2C adress 0x76.

Logic Power and GND subsystem

image

Uses a generic connector symbol(JST PH 2.0 connector is used on the PCB). Contains reverse protection and voltage testing(facilitated by ESP ADC pin(Sensor_VN or pin 5)) before the buck converter. The buck converter input is OR'd between the battery and the USBC VBUS input, so either can power the chip. The buck converter used is the AP63203WU, a 2A synchronous step-down (buck) DC-DC switching voltage regulator, which is used here to step down the voltage of the battery(2S LiPO, 7.4V nominal) to a usable 3.3V for the ESP32. It is fitted with its correct passives(Input and Output capacitors, inductors, and bootstrap capacitor) as specified by its datasheet(Note: No feedback resistors are required here because the chip outputs a fixed 3.3V due to its internal feedback loop). The output of the chip supplies power for all logic functions on the chip.

SD Card Logging Subsystem

image

Uses an SD card slot for flight data logging. Wired SPI from the ESP32. Contains pullup resistors and proper decoupling/bulk caps.

Servo Power Subsystem

image

Uses generic pin connectors here on the schematic and JST PH 2.0 on the PCB again. Uses an IRF7404 transistor for reverse protection. Power feeds into 2 TPS563200s, 3A step down voltage regulators. They have proper passives(Input and Output capacitors, inductors, bootstrap capacitor, and feedback resistor). They also have LEDs alongside each for indication. Power feeds into 2x3 pin headers where the servos will feed from, each power line contains a 470uF bulk cap. Each servo is also controlled via PWM from the ESP32.

Pyro Firing Subsystem

image

Uses a generic connector symbol (JST PH 2.0 on the PCB). An SS34 Schottky diode provides reverse protection, and an LED shows when the pyro battery is connected. The battery voltage is measured by the ESP32. There are two firing channel(Drogue/Main). Each is driven by an ESP32 GPIO through a PC817 optocoupler. The optocoupler switches the gate of an IRLZ44N, with a 10k pulldown. The MOSFET switches the low side of the e-match, which connects to the board through 2-pin screw terminals. Each e-match has a flyback diode across it for protection. Each channel also has continuity sensing via an ESP32 ADC pin. The pyro ground is connected to the main GND through a 0Ω resistor. (Note: The continuity and voltage sensing need the grounds tied together. Also, the main channel uses an ESP strapping pin(IO5) so the pyro battery should only be connected once the board is powered on and on the pad.)

Why I made it

I decided to design a PCB for this project in order to get experience with designing a more complex PCB with multiple subsystems, learn about embedded control, and fly a rocket without having to buy a COTS flight computer, because thats really cool you know?!!

Parts

113
QtyValueFootprintReferences
1810kLCSCParts:R0603R1, R2, R3, R11, R15, R17, R19, R20, R21, R27, R28, R34, R35, R39, R40, R41 +2
170.1uFLCSCParts:C0603C1, C3, C4, C5, C6, C8, C12, C18, C23, C24, C26, C28, C30, C33, C34, C35 +1
822uFLCSCParts:C0805C13, C14, C15, C19, C20, C21, C31, C32
710uFLCSCParts:C0805C2, C10, C11, C16, C17, C27, C29
64.7kLCSCParts:R0603R12, R13, R26, R30, R32, R33
4150LCSCParts:R0603R22, R23, R24, R25
3Conn_01x02_SocketLCSCParts:CONN-TH_2P-P2.00_HC-PH-2A-MJ2, J3, J4
3LED_SmallLCSCParts:LED0603-FDD3, D4, D5
2100LCSCParts:R0603R10, R14
23.3uHLCSCParts:IND-SMD_L4.4-W4.2-AL1, L2
2470LCSCParts:R0603R5, R31
2470uFLCSCParts:CAP-SMD_BD10.0-L10.3-W10.3-FDC7, C22
25.1kLCSCParts:R0603R6, R7
268.1kLCSCParts:R0603R16, R18
2D_Schottky_SmallLCSCParts:SMC_L6.9-W5.9-LS7.9-RDD6, D7
2IRLZ44NLCSCParts:TO-220-3_L10.0-W4.5-P2.54-TQ3, Q5
2M7LCSCParts:SMA_L4.3-W2.6-LS5.2-RDD1, D2
2PC817LCSCParts:DIP-4_L6.4-W4.6-P2.54-LS7.6-BLU7, U8
2Q_NPNLCSCParts:SOT-23-3_L3.0-W1.7-P0.95-LS2.9-BRQ1, Q2
2Screw_Term_1x2LCSCParts:CONN-TH_XY126V-5.0-2PJ5, J6
2TPS563200LCSCParts:TSOT-26_L2.9-W1.6-P0.95-LS2.8-BLU9, U10
2TactileLCSCParts:SW-SMD_L3.9-W3.0-P4.45SW1, SW2
10LCSCParts:R0603R38
1100kLCSCParts:R0603R37
11kLCSCParts:R0603R4
13.9uHLCSCParts:IND-SMD_L5.0-W5.0L3
1330LCSCParts:R0603R42
133kLCSCParts:R0603R36
1AP63203WULCSCParts:TSOT-26_L2.9-W1.6-P0.95-LS2.8-BLU6
1BMP280LCSCParts:LGA-8_L2.5-W2.0-P0.65_AMP6127U5
1BuzzerLCSCParts:BUZ-TH_BD9.0-P4.00-D0.6-FDBZ1
1CH340KLCSCParts:ESOP-10_L4.9-W3.9-P1.00-LS6.2-BL-EPU3
1Conn_02x03_Odd_EvenLCSCParts:HDR-TH_6P-P2.54-V-R2-C3-S2.54_A2541WV-2X3PJ8
1ESPWROOM32LCSCParts:WIFIM-SMD_ESP32-WROOM-32-N4U1
1ICM-42688-PLCSCParts:LGA-14_L3.0-W2.5-P0.50-TLU2
1IRF7404LCSCParts:SOIC-8_L4.9-W3.9-P1.27-LS6.0-BLQ4
1Micro_SD_CardLCSCParts:TF-SMD_TF-115J7
1PN2222ALCSCParts:TO-92-3_L4.9-W3.7-P1.27-LQ6
1SS34LCSCParts:SMC_L6.9-W5.9-LS7.9-RDD8
1USBLC6-2SC6LCSCParts:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLU4
1USB_C_Receptacle_USB2.0_14PLCSCParts:USB-C-TH_KH-TYPE-C-CY-14PJ1

Questions

How big is the ROCKET PCB?

It measures 99.5 × 76.7 mm and has 4 copper layers, 1.6 mm thick.

What parts does the ROCKET use?

113 parts, built around the ESP-WROOM-32D, AP63203WU, BMP280 and CH340K. 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 ROCKET KiCad files?

From the Pingu207/ROCKET repository on GitHub, at the commit this page was made from: the board is PCB/Rocket.kicad_pcb and its schematic PCB/Rocket.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the ROCKET design in my own project?

Its repository states no licence, so its author keeps all rights: ask Pingu207 before reusing the design.

Similar boards

  • 2 layers34 × 34 mmOpenDrone FC F405 HW, the printed circuit board in 3D

    OpenDrone FC F405 HW

    phonght32/OpenDrone_HW_FC_F405

    OpenDrone Project - Fly Controller hardware using STM32F405RG.

    79 parts9MIT
  • 2 layers46.9 × 46.6 mmFourth, the printed circuit board in 3D

    Fourth

    Bhakti-A/Maya_V_FlightController

    This is a custom flight controller PCB designed for drones.

    84 parts1
  • 2 layers48.1 × 48 mmFlight controller, the printed circuit board in 3D

    Flight controller

    0xmanidev/hackydrone

    this is a drone project made for outpost event

    68 partsMIT
  • 4 layers60 × 60 mmRocket payload, the printed circuit board in 3D

    Rocket payload

    Gupatron/Gupsfirstpcb

    This is the first pcb that I will manufacture and intend to use for teleop usecases in my personal projects.

    138 parts
  • 6 layers48 × 58 mmFlightControllerV2, the printed circuit board in 3D

    FlightControllerV2

    HazzerTheGreat/SPAR

    A flight controller for fixed wing UAVs based on the STM32H7 and designed to run betaflight or INAV

    105 parts
  • 6 layers47.6 × 41.5 mmOLL.E fpv pcb, the printed circuit board in 3D

    OLL.E fpv pcb

    Tamim101/ardupilot-drone-pcb

    141 parts
  • 2 layers47.6 × 41.5 mmOLL.E fpv pcb, the printed circuit board in 3D

    OLL.E fpv pcb

    Tamim101/flight-controller-PCB

    130 parts
  • 2 layers40.9 × 84.4 mmBicycle board, the printed circuit board in 3D

    Bicycle board

    XuHg-zjcn/bicycle_board

    a PCB board for bicycle

    158 partsCERN-OHL-S-2.0