Skip to the content
2 layers41 × 31 mmSTM32 hardware design Course, the printed circuit board in 3D

STM32 hardware design Course

Fred98246/STM-32-PCB-Design1

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

1

README

README.md

Custom 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: image

PCB: image

Final 3D view: image

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 BOOT0 pin (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

  1. View the Schematic: Open the .kicad_sch file to view the component-level connections.
  2. Fabrication: Zip the contents of the /Fabrication folder and upload them directly to your preferred PCB manufacturer.
  3. 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
QtyValueFootprintReferences
5100nCapacitor_SMD:C_0402_1005MetricC4, C5, C6, C7, C11
4MountingHoleMountingHole:MountingHole_2.2mm_M2H1, H2, H3, H4
31K5Resistor_SMD:R_0402_1005MetricR3, R4, R5
3Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2, J3, J4
210pCapacitor_SMD:C_0402_1005MetricC12, C13
21uCapacitor_SMD:C_0402_1005MetricC9, C10
110KResistor_SMD:R_0402_1005MetricR2
110nCapacitor_SMD:C_0402_1005MetricC8
110uCapacitor_SMD:C_0603_1608MetricC3
110uCapacitor_SMD:C_0805_2012MetricC1
1120RInductor_SMD:L_0603_1608MetricFB1
116MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
11k5Resistor_SMD:R_0402_1005MetricR1
122uCapacitor_SMD:C_0805_2012MetricC2
1AMS1117 3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U2
1REDLED_SMD:LED_0603_1608MetricON
1STM32F103C8T6Package_QFP:LQFP-48_7x7mm_P0.5mmU1
1SW_SPDTButton_Switch_SMD:SW_SPDT_PCM12BOOT
1USB_B_MicroConnector_USB:USB_Micro-B_Wuerth_629105150521J1

Similar boards

  • 4 layers42 × 42 mmHuvud, the printed circuit board in 3D

    Huvud

    bondus/KlipperToolboard

    A 3D printer tool head controller board

    126 parts373GPL-3.0
  • 2 layers65 × 56 mmMMDVM HS Dual Hat, the printed circuit board in 3D

    MMDVM HS Dual Hat

    phl0/MMDVM_HS_Dual_Hat

    Duplex variant of MMDVM_HS_Hat

    216 parts218
  • 2 layers65.1 × 30.2 mmMmdvm hs hat, the printed circuit board in 3D

    Mmdvm hs hat

    mathisschmieder/MMDVM_HS_Hat

    MMDVM_HS Hat for the Raspberry Pi (Zero)

    144 parts201
  • 2 layers98 × 38 mmBldc control ver3, the printed circuit board in 3D

    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 mmStm32-io extend, the printed circuit board in 3D

    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 mmGruzik2.0, the printed circuit board in 3D

    Gruzik2.0

    NYDEREK/LineFollower_GRUZIK2.0-light

    GRUZIK2.0 is simple light construction made for "line follower light" competition

    50 parts101MIT
  • 2 layers100 × 85 mmVNA, the printed circuit board in 3D

    VNA

    profdc9/VNA

    Vector Network Analyzer based on the STM32F103C8T6 bluepill

    178 parts93
  • 2 layers30 × 49.3 mmUSB PD monitor V1, the printed circuit board in 3D

    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).