Custom STM32H562 Development Board
A custom development board for the STM32H562RGT6 microcontroller. The board has the complete 20-pin SWD programming interface for the ST-LINK V2 programmer, breaks out all the GPIO, has user LED, user Button, as well as a string of WS2812 RGB LEDs.


This project is primarily meant as a practical demonstration of the blog post on programming custom STM32 board in Arduino. It copies the basic schematic used there, and adds a breakout header for all the GPIO, as well as a few on-board WS2812 addressable RGB LEDs. It is also intended as a basis for other projects - both for me and for anyone reading this who wants a starting point for their own projects.
The schematic from the blog post, with the addition of four mounting holes, a 44 pin breakout male header, and four WS2812B RGB LEDs:
It is reuse of the schematic in the blog post, with component selections tailored to JLCPCB’s assembly service with as many components from JLCPCB assembly service library’s “basic” section as possible so that it doesn’t incur extra manufacturing costs for re-stocking the pick and place machine.
The board is about the size of a credit card, 55mm x 85 mm, with M3 mounting holes in each corner. As a precaution I've used a 4-layer stackup to ensure good grounding and power distribution for the microcontroller. The more advanced STM32 chips can be a bit more demanding layout-wise than more basic chips like Atmega328P, and a small 4 layer board from JLCPCB isn't that much more expensive these days than a 2-layer board. The only drawback is that my favored black soldermask isn't freely available for 4-layer board, instead being surprisingly costly, which is why I went for the standard green soldermask instead for this board. The stack up is mainly
Top: Signal / GND
Inner 1: GND
Inner 2: GND
Bottom: 3V3 / Signal
With some additional 5V routing on Top and Bottom. The amount of traces on the Bottom layer is also kept to an absolute minimum.
The finished manufactured board got delivered and didn't have any issues.
The first test was to provide power over the USB-C connector and plug in the ST-LINK V2 programmer and see if the Arduino IDE was able to upload and run a basic blink sketch on the user LED at PA10.




After succesfully running blink, I tried a sketch that looped over the WS2812B RGB LEDs on User Button input. That worked just as intended:
And finally I tested a RC522 module to verify that the default SPI pins was accessible over the external pin header connection:
Code for Blink:
Code for Button and RGB LEDs:
Code for RC522:
Circuithings
It's all about circuit things.
contact@circuithings.com
© 2025. All rights reserved.
Contact
