

Steve
STM32F4 based Flight Computer Development PCB
- Size
- 70 × 70 mm
- Copper layers
- 6
- Thickness
- 1.57 mm
- Parts
- 83
- Nets
- 119
- Pads
- 400
- Tracks, vias
- 1,166, 186
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 28 Sep 2024
- Updated
- 6 Jun 2025
Overview
Steve is an open-source printed circuit board by Mart4672, from the Mart4672/PCB-STEVE repository on GitHub, published under the BSD-3-Clause licence. It is a 6-layer board of 70 × 70 mm with 83 parts on 119 nets, routed with 1,166 tracks and 186 vias.
Its parts include 25 resistors, 21 capacitors, 6 transistors, 5 diodes and 3 connectors. It belongs with the STM32 boards of this library.
README
README.mdPCB-STEVE
STM32F4 based Flight Computer Development PCB
STEVE, the name of this flight computer, is an acronym: Starter Testbed for Evolving the Vehicle Electronics
As the name implies, the intention of STEVE is to be a testbed circuitboard for proving out avionics functionality. STEVE is very much a development board as this is the first STM32 PCB that I have designed.
Future versions of STEVE will have a focus on exapnding a flight vehicle's envelope (Starter Testbed for Expanding the Vehicle Envelope)
STEVE is intended to be used on a flight vehicle such as a model rocket but can also be used in static environments such as a ground test stand.
STEVE Version 1.1.0 Hardware Features
- 70 x 70 mm, 6 layer board with all components on one side for ease of manufacturing
- 1 STM32F407 Microcontroller
- (STM32F407VGT6 is the specific SKU being used)
- 1024 KB (1MB) of internal flash memory
- 192 (112+16+64) KB of system RAM
- Reset and Boot buttons
- USB-C input for programming the microcontroller
- the GCT USB4105-GF-A connector is allegedly rated for 5A
- also usable for power when not connected to the PSM board
- Terminal block for 5V regulated input
- Micro SD card
- Winbond W25Q 128 Mbit (16 MB) external flash storage
- 1 BMI270 Inertial Measurement Unit (IMU) connected over SPI
- 1 BMP390 Barometric Pressure Sensor connected over SPI
- A 2x5 1.27mm pitch debug header
- A 32.768 kHz Low Speed External Crystal Oscillator
- A 8 MHz High Speed External Crystal Oscillator
- A TI TLV1117 1A 3.3V Output Linear Regulator
- A dedicated telemetry modem connection
- uses screwless terminal blocks or a JST-GH connector
- (each JST-GH connection is rated for 1A and the RFD900 has a max draw of ~1A at 5V)
- GND, 5V, and UART signals (RX and TX) are present
- placed close to both the USB-C and Regulated 5V power inputs
- uses screwless terminal blocks or a JST-GH connector
- 2 JST-SH 4 pin connectors for I2C
- allows for easy hardware development for I2C devices (load cells, GNSS, etc)
- 1 passive buzzer (passive buzzers allow for different beep noises)
- 4 standard LEDs
- 2 WS2812 (NeoPixel) Addressable LEDs
- Additional GPIO and bus pins broken out
- SPI2 (also used for BMP390) pins
- UART1 pins
- 2 ADC (12-bit) capable pins
- Uses screwless terminal blocks
- Connectors for PSM board signals (3 x 6 pin connectors)
- Uses JST-GH connectors
- Servo PWM signals (4)
- Mosfet gate signals (5)
- Mosfet continuity signals (5)
- Battery #1 Voltage sense line
Future Updates
Future STEVE Updates
- use a 3.3V plane on layer 5 (some signals ok) if doing a 6 layer board with components on 1 side
- move the 5V components to the same area
- make the board smaller (60 x 60 mm)
- consider moving the complicated components (BMI, BMP, WS2812) to a separate board
- probably a bad idea since creating a simple daughter board with Standard PCBA would cost at least (10 PCB + 30 PCBA + 25 shipping) = $65
- using Economic PCBA only saves ~$25
- give serious consideration to creating a STEVE revision with the PSM circuitry on the same board
- keep in mind that any board orders also have tarrifs, taxes, and shipping applied, which can easily double the initial PCB/PCBA cost
- use a PMOS mosfet for reverse polarity protection
- add an RJ45 connector to utilize the ethernet capabilities of the STM32F407 (this might be part of a completely different board design)
Using/opening this project on a different machine
- open the project file in KiCad
On the top bar, the following thing needs to be updated based on the machine you are using:
- Preferences > Configure Paths Add an enironment variable with a name of: CURRENT_PROJ_DIR The value of the enirnment variable should be: your-repo-dir-path/PCB-STEVE/hardware
On the top bar, the following things should not need to be updated but both use the CURRENT_PROJ_DIR variable
- Preferences > Manage Symbol Libraries > Project Specific Libraries (tab)
- Preferences > Manage Footprint Libraries > Project Specific Libraries (tab)
PCB Ordering Notes
STEVE V1.1.0
STEVE V1.1.0 is a 6 layer PCB that uses vias as small as 0.3mm (hole size) / 0.45mm (overall via diameter)
On JLC's website, 6 layer boards use the "Advanced PCB/PCBA service". This has different default options from the standard service
Nonstandard options chosen for the advanced PCB service:
- (optional) Specify Stackup > No requirement
- Mark on PCB = 2D barcode (Serial Number)
- 2D barcode Only | QR Code | STEVE_V1-1-0_SN | Remove Unique Number | 0001
- 8*8mm (5x5 also ok) | Specify Position (No Requirement is ok too)
- 2D barcode Only | QR Code | STEVE_V1-1-0_SN | Remove Unique Number | 0001
Advanced Options
- $0.71 Blank Box
PCB Assembly Options A board with 6 or fewer layers and single sided assembly qualifies for JLC's Economic PCBA https://jlcpcb.com/capabilities/pcb-assembly-capabilities See the above link for Economic PCBA constraints such as
- only supporting green silkscreens
- only supporting the ENIG finish
STEVE 1.1.0 is a 70 x 70mm board; using Standard PCBA auotmatically sets the board size to at least 70x70mm for adding edge rails/fiducials. "The board size would be modified to be 80*70mm for Standard PCBA due to adding two 5mm edge rails on the shorter sides"
Nonstandard PCBA options chosen:
- PCBA Qty = 2 (can choose 2+ based on component availibility)
- Edge Rails/Fiducials = Added by JLCPCB (default)
- Confirm Parts Placement = Yes
Advanced Options
- Photo Confirmation = Yes (Not available for Economic)
- Conformal Coating (+cleaning) = No (can choose yes for future boards)
- Not available for Economic PCBA
- Packaging = ESD+Cardboard (Cardboard is ok too)
- Solder Paste = Sn96.5/Ag3.0/Cu0.5 (Do NOT use Bismuth/Bi solder)
- The "Bake Components" option is not available for Economic PCBA
- Will need to use the Standard PCBA service or omit the WS2812 LEDs (C2761795) from being assembled since they are moisture sensitive
- The BMI270 and BMP390 also require Standard PCBA
"Note: The setup fee is $25 per assembly side for Standard PCBA."
Stencil Order Options
- No stencil being ordered
- If boards with many small pitch components (ex: STM32) are going to be assembled, a reflow oven is strongly recommended
- if a stencil is ordered, make sure to get it cut to size to save on shipping costs
Other Notes
- Don't use special characters such as "µ" for part designators, footprints, or values as this can cause issues with processing the bom and positions (CPL) files.
Parts
83| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 0.1uF | Capacitor_SMD:C_0603_1608Metric | C7, C8, C9, C10, C11, C27, C28, C29, C30, C31, C32, C33 |
| 6 | NMOS GSD 350mA 60V C282405 | Package_TO_SOT_SMD:SOT-23 | Q1, Q2, Q3, Q4, Q5, Q6 |
| 5 | 10k | Resistor_SMD:R_0603_1608Metric | R3, R4, R5, R6, R7 |
| 4 | 1k | Resistor_SMD:R_0603_1608Metric | R20, R21, R22, R26 |
| 4 | 2k | Resistor_SMD:R_0603_1608Metric | R16, R17, R18, R19 |
| 4 | 5A Spring Conn 4pos C3818616 | Imported_Footprints:CONN_1814582_TerminalBlock_1770979_4pos_Vertical | ADC1, SPI2, UART1, UART2 |
| 3 | 220 | Resistor_SMD:R_0603_1608Metric | R23, R24, R25 |
| 3 | JST GH 6P Vertical 1A C189892 | Connector_JST:JST_GH_BM06B-GHS-TBT_1x06-1MP_P1.25mm_Vertical | J1, J2, J3 |
| 2 | 1.0uF | Capacitor_SMD:C_0603_1608Metric | C13, C14 |
| 2 | 1.0uF | Capacitor_SMD:C_1206_3216Metric | C25, C26 |
| 2 | 100k | Resistor_SMD:R_0603_1608Metric | R1, R15 |
| 2 | 2.2uF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 22 | Resistor_SMD:R_0603_1608Metric | R11, R12 |
| 2 | 5.1k | Resistor_SMD:R_0603_1608Metric | R13, R14 |
| 2 | 5pF | Capacitor_SMD:C_0603_1608Metric | C5, C6 |
| 2 | Button KMR221G C72443 | Imported_Footprints:SW_Push_3D_1P1T-SH_NO_CK_KMR2xxG | BT0, RST1 |
| 2 | JST-SH-4P Vertical C160390 | Imported_Footprints:JST-SH_BM04B-SRSS-TB_1x04_Vertical_P1.00mm | I2C_1, I2C_2 |
| 2 | WS2812B RGB LED C2761795 | LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm | NEO1, NEO2 |
| 1 | 100k 0.5% | Resistor_SMD:R_0603_1608Metric | R9 |
| 1 | 10A/5A Schottky Diode Arr C780876 | Imported_Footprints:PDS1040CTL-13_PowerDI-5 | D1 |
| 1 | 3.3V 1A Lin Reg C15578 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | LDO-1 |
| 1 | 32.768kHz Crystal 12.5pf C90944 | Imported_Footprints:Crystal_SMD_3215-2Pin_3.2x1.5mm_Fixed | 32K-Y2 |
| 1 | 4.7k | Resistor_SMD:R_0603_1608Metric | R2 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C12 |
| 1 | 422k 1% | Resistor_SMD:R_0603_1608Metric | R8 |
| 1 | 5A Spring Conn 2pos C3818639 | Imported_Footprints:CONN_1814498_TerminalBlock-1770885-2pos | 5V-1 |
| 1 | 8MHz Crystal 10pf C400090 | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | 8M-Y1 |
| 1 | BLUE | LED_SMD:LED_0603_1608Metric | LED4 |
| 1 | BMI270 Inertial Measurement Unit C2836813 | Package_LGA:Bosch_LGA-14_3x2.5mm_P0.5mm | BMI270-1 |
| 1 | BMP390 Barometric Pressure Sensor C2684802 | Imported_Footprints:QFN_BMP388_BOS | BMP390-1 |
| 1 | Externally Driven Buzzer 1.5-12.5V 4kHz 65dB C910763 | Buzzer_Beeper:Buzzer_Murata_PKMCS0909E | Buzzer1 |
| 1 | GREEN | LED_SMD:LED_0603_1608Metric | LED3 |
| 1 | LOGO | Imported_Footprints:STEVE-3D-Image | G*** |
| 1 | MicroSD Hirose DM3AT C114218 | Imported_Footprints:microSD_3D_HC_Hirose_DM3AT-SF-PEJM5 | uSD1 |
| 1 | RED | LED_SMD:LED_0603_1608Metric | LED1 |
| 1 | STM32F407VGTx Microcontroller C12345 | Package_QFP:LQFP-100_14x14mm_P0.5mm | STM32F407-uC1 |
| 1 | TagConnect_TC2030-NL | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | TagConnect-1 |
| 1 | USB-C Receptacle 16P C3025063 | Imported_Footprints:USB_C_Receptacle_3D_HCTL_HC-TYPE-C-16P-01A | USBC-1 |
| 1 | W25Q128JVSIQ 128Mb SPI Flash C97521 | Imported_Footprints:SOIC-8_5.23x5.23mm_P1.27mm_3D | Flash1 |
| 1 | YELLOW | LED_SMD:LED_0603_1608Metric | LED2 |
Questions
How big is the Steve PCB?
It measures 70 × 70 mm and has 6 copper layers, 1.57 mm thick.
What parts does the Steve use?
83 parts. 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 Steve KiCad files?
From the Mart4672/PCB-STEVE repository on GitHub, at the commit this page was made from: the board is hardware/steve.kicad_pcb and its schematic hardware/steve.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Steve design in my own project?
Its repository publishes it under the BSD-3-Clause 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
- 6 layers48.5 × 50 mm

- 6 layers50 × 50 mm

- 6 layers44 × 68 mm

- 6 layers110 × 78 mm

Filled
AxelMcKenna/AFX-1000
RMX-1000-inspired effects processor for macOS, AU and VST3, built on a shared C++20 engine. Standalone Daisy Seed 3 hardware with two main PCBs and a custom housing is in development.
83 parts1 - 6 layers100 × 45 mm

Esphome rgbcct led controller
mikelawrence/esphome-rgbcct-led-controller
ESPHome RGBCCT LED Controller is a PCB design that support a 5-Channel LED arrangement with Red, Green, Blue, Warm White and Cool White LEDs.
83 parts1CERN-OHL-P-2.0 - 6 layers90 × 66.8 mm

Nescart fc
Keitark/fc-rom-vomitter
Wi-Fi NROM development cartridge for Famicom: ESP32-S3, SRAM, KiCad, firmware, fabrication evidence, and an experimental NES variant.
83 partsMIT - 6 layers37 × 37 mm

- 6 layers14.5 × 90 mm
