Skip to the content
2 layers85 × 60 mmPlytkamh, the printed circuit board in 3D

STM32F446 dev board designed in KiCad - 2-layer PCB with USB-C, BME280 and light sensor

Size
85 × 60 mm
Copper layers
2
Thickness
1.6 mm
Parts
57
Nets
69
Pads
251
Tracks, vias
1,120, 161
Pours
8
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
19 Oct 2026
Updated
28 Oct 2026

Overview

Plytkamh is an open-source printed circuit board by mhaftarc, from the mhaftarc/pcb_project_mh repository on GitHub. It is a 2-layer board of 85 × 60 mm with 57 parts on 69 nets, routed with 1,120 tracks and 161 vias.

It is built around the BME280, TEMT6000X01 and LDL1117S33R, with the USBLC6-2SC6 and SS14 among its other parts. Its parts include 18 capacitors, 14 resistors, 6 diodes, 5 connectors and 4 ICs. It belongs with the sensors and measurement boards and the STM32 boards of this library.

Main components

5

README

README.md

STM32F446 Dev Board

PCB project for my PCB design course at university. The goal was to design a full board with a microcontroller, sensors, power supply and headers from scratch in KiCad, and to learn how to actually route a 2-layer board.

The board is based on the STM32F446RET6 (same MCU as on the Nucleo-F446RE I use) and is powered from USB-C.

Pictures

3D view

Top layer:

Top layer

Bottom layer:

Bottom layer

Schematic: plytkamh.pdf

What's on the board

  • STM32F446RET6 (LQFP64) with a 12 MHz crystal
  • USB-C power input with ESD protection (USBLC6), PTC fuse and a reverse polarity diode
  • 3.3 V LDO (LDL1117)
  • BME280 - temperature, humidity and pressure sensor on I2C1
  • TEMT6000 - ambient light sensor on the ADC (PA0)
  • Power LED, status LED and 3 user LEDs
  • RESET and USER buttons
  • SWD header for programming (same pinout as CN4 on the Nucleo)
  • BOOT0 jumper
  • Two 2x10 headers for external stuff: COMM and ANALOG/GPIO

The board is 85 x 60 mm, 2 layers, with GND pours on both sides.

What I used

  • KiCad 10
  • Freerouting
  • STM32CubeMX (for checking the pin assignment)
  • JLCPCB design rules
  • Git

Pinout

SWD (J3):

text
1  3V3
2  SWCLK (PA14)
3  GND
4  SWDIO (PA13)
5  NRST
6  SWO   (PB3)

COMM (J4):

text
 1  +3.3V              2  +5V
 3  GND                4  GND
 5  PC9                6  PA8
 7  PA9                8  PA10
 9  PA15              10  PC10
11  PC11              12  PC12
13  PD2               14  USART1_TX (PB6)
15  USART1_RX (PB7)   16  I2C1_SCL  (PB8)
17  I2C1_SDA  (PB9)   18  PC0
19  PC1               20  GND

ANALOG/GPIO (J5):

text
 1  +3.3V              2  GND
 3  SPI2_MOSI (PB15)   4  SPI2_MISO (PB14)
 5  SPI2_SCK  (PB13)   6  SPI2_NSS  (PB12)
 7  PB10               8  PB1
 9  PB0               10  PC5
11  PC4               12  PA7
13  PA6               14  PA4
15  USART2_RX (PA3)   16  USART2_TX (PA2)
17  PA1               18  PC3
19  PC2               20  GND

On-board stuff: BME280 on PB8/PB9, light sensor on PA0, status LED on PA5, user LEDs on PC6/PC7/PC8, user button on PC13.

USART1 is on PB6/PB7, not on the default PA9/PA10, so it has to be set that way in CubeMX.

Project structure

text
plytkamh/
├── plytkamh.kicad_pro
├── plytkamh.kicad_sch
├── plytkamh.kicad_pcb
├── lib/        custom symbols/footprints (LDL1117, TEMT6000)
└── gerber/     files for the PCB manufacturer

Notes

The first version of the board was 70 x 50 mm, but I couldn't fit all the header signals, so I made it bigger (85 x 60 mm).

At first the header pinout was done only in the schematic, without thinking about where the pins are on the MCU. During routing it turned out that half of the signals had to go around or under the whole chip. I changed the pinout so J4 gets the pins from the bottom side of the MCU and J5 from the top side, in the same order as on the package. After that the routing was much easier.

Power, USB, the crystal and all the decoupling capacitors were routed by hand. The rest of the GPIO lines going to the headers were routed with Freerouting and then cleaned up manually.

I also had a mistake in the schematic where the crystal wire was shorting PH1 with a few other pins. ERC didn't catch it because it was just one valid net, I found it when checking the netlist.

The BME280 is placed at the edge of the board, far from the LDO and the MCU, so it doesn't measure the heat from the board instead of the air.

Status

Schematic and PCB are done, DRC is clean and the Gerber files are generated. The board hasn't been ordered or tested yet.

Parts

57
QtyValueFootprintReferences
10100nCapacitor_SMD:C_0603_1608MetricC3, C5, C6, C7, C8, C11, C12, C15, C16, C18
410kResistor_SMD:R_0603_1608MetricR3, R4, R8, R13
44.7uCapacitor_SMD:C_0603_1608MetricC1, C2, C4, C9
4680Resistor_SMD:R_0603_1608MetricR9, R10, R11, R12
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3RedLED_SMD:LED_0603_1608MetricD4, D5, D6
210pCapacitor_SMD:C_0603_1608MetricC13, C14
21uCapacitor_SMD:C_0603_1608MetricC10, C17
24.7kResistor_SMD:R_0603_1608MetricR5, R6
25.1kResistor_SMD:R_0603_1608MetricR1, R2
10.5AFuse:Fuse_1812_4532MetricF1
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
13.3kResistor_SMD:R_0603_1608MetricR7
1470Resistor_SMD:R_0603_1608MetricR14
1600R@100MHzInductor_SMD:L_0603_1608MetricFB1
1ANALOG_GPIOConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ5
1BME280Package_LGA:Bosch_LGA-8_2.5x2.5mm_P0.65mm_ClockwisePinNumberingU4
1BOOT0Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ2
1COMMConnector_PinHeader_2.54mm:PinHeader_2x10_P2.54mm_VerticalJ4
1Conn_01x06Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1GreenLED_SMD:LED_0603_1608MetricD2
1LDL1117S33RPackage_TO_SOT_SMD:SOT-223U2
1RESETButton_Switch_THT:SW_PUSH_6mmSW1
1SS14Diode_SMD:D_SMAD1
1STM32F446RETxPackage_QFP:LQFP-64_10x10mm_P0.5mmU3
1TEMT6000X01TEMT6000X01:TRANS_TEMT6000X01Q1
1USBLC6-2SC6Package_TO_SOT_SMD:SOT-23-6U1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1USERButton_Switch_THT:SW_PUSH_6mmSW2
1YellowLED_SMD:LED_0603_1608MetricD3

Similar boards

  • 4 layers60.6 × 72.3 mmESP32, the printed circuit board in 3D

    ESP32

    KirtiChickamath/ESP32-IoT-sensor-board

    ESP32- IoT sensor board. 4-layer PCB, designed in KiCad . Features LiPo charging, USB-C, SPI flash, SD card, BME280, and more.

    90 parts2
  • 4 layers89 × 54.5 mmESP32 sensor board, the printed circuit board in 3D

    ESP32 sensor board

    andreschaparro/udemy-advanced-pcb-design-with-kicad-9

    93 parts1
  • 4 layers101.3 × 50.5 mmESP32 sensor board, the printed circuit board in 3D

    ESP32 sensor board

    Ankithkumarsingh/ESP32-custom-sensor-board

    This PCB contains the power supply unit, ESP32 module as compute, microphone sensor, light sensing sensor, SDCard module for data logging.

    94 parts1
  • 4 layers77.5 × 59.5 mmIOT, the printed circuit board in 3D

    IOT

    aryan-asit/Telemetry-iot-project

    In this project , a 4 layer custom pcb is made for Telematics

    85 parts1
  • 4 layers96.5 × 54.4 mmESP32-IoT, the printed circuit board in 3D

    ESP32-IoT

    ddennis18/ESP32-IoT-DevBoard

    An ESP32-C3 based IoT controller board designed in KiCad. The board combines wireless control, sensor interfaces, local storage, audio/light sensing, USB connectivity, and single-cell Li-ion battery support on a compact…

    88 parts1MIT
  • 4 layers82.9 × 53.8 mmESP32 IoT Project, the printed circuit board in 3D

    ESP32 IoT Project

    EngMeesh/ESP32_IoT_Dev_Board

    A custom 4-layer IoT development board based on the ESP32-C3, featuring integrated LiPo battery management, a CP2102N USB-UART bridge, MicroSD support, and onboard environmental/audio sensors for embedded engineering…

    92 parts1MIT
  • 4 layers79.3 × 53.6 mmESP-32, the printed circuit board in 3D

    ESP-32

    kaushal1020/esp32-c3-02-KiCAD-Design

    A custom ESP32-C3-02 Development Board designed from scratch using KiCad. This repository contains the complete hardware design, including schematic, PCB layout, and supporting files for manufacturing and development.

    88 parts1
  • 4 layers78.7 × 53.4 mmESP32-project, the printed circuit board in 3D

    ESP32-project

    pravinsharma15k-ops/ESP32-C3-Sensor-Board

    Battery-powered ESP32-C3 sensor board with USB-C charging, KiCad 10 design files

    88 parts1

Questions

How big is the Plytkamh PCB?

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

What parts does the Plytkamh use?

57 parts, built around the BME280, TEMT6000X01, LDL1117S33R and USBLC6-2SC6. 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 Plytkamh KiCad files?

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

Can I use the Plytkamh design in my own project?

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