

STM32 hardware design Course
Custom STM32F103C8T6 development board
- Size
- 41 × 31 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 32
- Nets
- 50
- Pads
- 132
- Tracks, vias
- 197, 24
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 12 Jun 2026
- Updated
- 20 Jun 2026
Overview
STM32 hardware design Course is an open-source printed circuit board by Fred98246, from the Fred98246/STM-32-PCB-Design repository on GitHub, published under the MIT licence. It is a 2-layer board of 41 × 31 mm with 32 parts on 50 nets, routed with 197 tracks and 24 vias.
It is built around the STM32F103C8T6. Its parts include 13 capacitors, 5 resistors, 4 connectors, 2 ICs and 1 crystal. It belongs with the STM32 boards of this library.
Main components
1README
README.mdCustom STM32F103 Development Board
Overview
This repository contains the KiCad design files and documentation for a custom STM32 development board. Designed from the ground up, this project serves as a highly optimized, component-level alternative to the standard "Blue Pill" modules. The design focuses on robust power delivery, proper analog filtering, and reliable external clock generation, making it an excellent hardware foundation for embedded projects.
This board was designed and routed in KiCad 6, implementing the mixed-signal hardware design methodologies demonstrated by Phil's Lab.
Schematic:
PCB:
Final 3D view:
Hardware Specifications
- Microcontroller: STMicroelectronics STM32F103C8T6 (ARM Cortex-M3)
- Operating Voltage: 3.3V internal logic
- Power Input: 5V via USB Micro-B
- Clocking: 16 MHz High-Speed External (HSE) crystal oscillator with tuned 10pF load capacitors
- Programming/Debugging: 4-pin Serial Wire Debug (SWD) header (3.3V, SWDIO, SWCLK, GND)
Key Features & Component-Level Architecture
- Discrete Power Regulation: Utilizes an AMS1117-3.3 linear voltage regulator for clean 5V to 3.3V step-down, stabilized with 22µF bypass capacitors on the input and output.
- Analog Supply Filtering (VDDA): Implements a dedicated pi-filter network (a 120Ω @ 100MHz ferrite bead paired with 1µF and 10nF capacitors) to isolate the analog supply from digital noise, ensuring accurate ADC conversions.
- Boot Mode Selection: Features an onboard SPDT slide switch tied to the
BOOT0pin (via a 10kΩ series resistor) to easily toggle between standard flash execution and the internal bootloader mode for serial flashing. - USB 2.0 Full-Speed: Differential USB routing (D+/D-) directly from the micro-B connector, including the required hardware 1.5kΩ pull-up resistor on the D+ line for proper host enumeration.
- Peripheral Breakouts: Dedicated header breakouts for UART and I²C (including onboard pull-up resistors for the SDA and SCL lines).
PCB Design Details
- EDA Tool: KiCad 6
- Layer Stackup: 2-Layer FR4 (1.6mm thickness)
- Top Layer: Signal traces (0.3mm default) and power delivery traces (0.5mm default). Components are grouped logically to keep critical decoupling loops as short as possible.
- Bottom Layer: Solid, uninterrupted ground plane to provide low-impedance return paths and minimize ground loops.
- Vias: Standard 0.7mm pad / 0.3mm drill, utilizing localized "power puddles" (copper pours) to tie decoupled grounds into the bottom plane efficiently.
Repository Contents
/Hardware: KiCad 6 project files (.kicad_pro,.kicad_sch,.kicad_pcb)./Fabrication: Generated Gerber files, NC Drill files, and BOM/CPL (Component Placement List) files formatted for standard PCBA services./3D_Models: STEP files for external connectors to verify mechanical clearances.
How to Use This Repo
- View the Schematic: Open the
.kicad_schfile to view the component-level connections. - Fabrication: Zip the contents of the
/Fabricationfolder and upload them directly to your preferred PCB manufacturer. - Firmware: The board is fully compatible with STM32CubeIDE. Simply select the STM32F103C8T6 target, enable the HSE clock and SWD pins, and begin writing bare-metal C code.
Parts
32| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 100n | Capacitor_SMD:C_0402_1005Metric | C4, C5, C6, C7, C11 |
| 4 | MountingHole | MountingHole:MountingHole_2.2mm_M2 | H1, H2, H3, H4 |
| 3 | 1K5 | Resistor_SMD:R_0402_1005Metric | R3, R4, R5 |
| 3 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical | J2, J3, J4 |
| 2 | 10p | Capacitor_SMD:C_0402_1005Metric | C12, C13 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C9, C10 |
| 1 | 10K | Resistor_SMD:R_0402_1005Metric | R2 |
| 1 | 10n | Capacitor_SMD:C_0402_1005Metric | C8 |
| 1 | 10u | Capacitor_SMD:C_0603_1608Metric | C3 |
| 1 | 10u | Capacitor_SMD:C_0805_2012Metric | C1 |
| 1 | 120R | Inductor_SMD:L_0603_1608Metric | FB1 |
| 1 | 16MHz | Crystal:Crystal_SMD_3225-4Pin_3.2x2.5mm | Y1 |
| 1 | 1k5 | Resistor_SMD:R_0402_1005Metric | R1 |
| 1 | 22u | Capacitor_SMD:C_0805_2012Metric | C2 |
| 1 | AMS1117 3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U2 |
| 1 | RED | LED_SMD:LED_0603_1608Metric | ON |
| 1 | STM32F103C8T6 | Package_QFP:LQFP-48_7x7mm_P0.5mm | U1 |
| 1 | SW_SPDT | Button_Switch_SMD:SW_SPDT_PCM12 | BOOT |
| 1 | USB_B_Micro | Connector_USB:USB_Micro-B_Wuerth_629105150521 | J1 |
Similar boards
- 4 layers42 × 42 mm

- 2 layers65 × 56 mm

- 2 layers65.1 × 30.2 mm

- 2 layers98 × 38 mm

Bldc control ver3
pekkaroi/bldc-drive
Cheap and simple brushless DC motor driver designed for CNC applications using STM32 microcontroller
68 parts199GPL-2.0 - 2 layers68 × 40 mm

Stm32-io extend
hardenedlinux/cheap-pcb
Cheap PCB: Better understanding the current status of hardware supply chain
44 parts170CC0-1.0 - 4 layers126.6 × 37.7 mm

Gruzik2.0
NYDEREK/LineFollower_GRUZIK2.0-light
GRUZIK2.0 is simple light construction made for "line follower light" competition
50 parts101MIT - 2 layers100 × 85 mm

- 2 layers30 × 49.3 mm

USB PD monitor V1
lhm0/pd_logger
This repository contains two DIY gadgets to monitor and log USB-C Power Delivery (PD). Both devices are designed to be easy to build, hackable, and useful for makers who want to explore USB-C PD.
34 parts82
Questions
How big is the STM32 hardware design Course PCB?
It measures 41 × 31 mm and has 2 copper layers, 1.6 mm thick.
What parts does the STM32 hardware design Course use?
32 parts, built around the STM32F103C8T6. 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 STM32 hardware design Course KiCad files?
From the Fred98246/STM-32-PCB-Design repository on GitHub, at the commit this page was made from: the board is STM32 hardware design Course.kicad_pcb and its schematic STM32 hardware design Course.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the STM32 hardware design Course 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).