

Stm32 linux
Design files and test firmwares for a single-core STM32H7 board with extra RAM and a side of Flash.
- Size
- 64.1 × 72.4 mm
- Copper layers
- 4
- Thickness
- 1.6 mm
- Parts
- 78
- Nets
- 160
- Pads
- 520
- Tracks, vias
- 9,734, 267
- Pours
- 4
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 1 Oct 2020
- Updated
- 1 Oct 2020
Overview
Stm32 linux is an open-source printed circuit board by WRansohoff, from the WRansohoff/Magrat_v0 repository on GitHub, published under the MIT licence. It is a 4-layer board of 64.1 × 72.4 mm with 78 parts on 160 nets, routed with 9,734 tracks and 267 vias.
It is built around the NS2009 and AO3400. Its parts include 36 capacitors, 16 resistors, 8 connectors, 5 ICs and 4 diodes. It belongs with the computers and single-board computers boards and the STM32 boards of this library.
Main components
2README
README.md"Magrat" STM32H7 Board
NOTE: This is an early revision of a board which I am in the process of revising. I'm publishing the design files for the sake of sharing now that I've tested many (but not all) of the board's main features, but there are plenty of improvements which should be made, and you should not treat this as a solid reference implementation or a finalized production-ready design.
In particular, the SDRAM traces need better length- and impedance-matching; they seem to work up to 80-100MHz, but the chips are rated for 166MHz. The BOOT0 and JTAG signals should also be broken out, because the STM32H7's myriad clock domains seem to cause minor issues with SWD debugging.
With those disclaimers out of the way, "Magrat" is an STM32H7 board which aims to integrate enough external memory to run a minimal Linux system in a low-cost format. It is designed for single-sided PCA with parts from the LCSC catalog, so you should be able to order it 'as is' from JLCPCB when / if the parts are in stock.
This board should be able to run a mainline Linux kernel, and I've gotten one booting, but I'm still working on bringing up a fully-functional system, and I'm not quite sure that the microSD card socket works yet.
(TODO: add generated gerbers, BoM, pick-and-place files)
Board Renders:

Features
-
STM32H7x3II: Cortex-M7, 480MHz, 2MiB Flash, 1MiB RAM
-
32MiB SDRAM
-
16MiB Quad-SPI Flash
-
50-pin ILI9341 display connector (untested)
-
USB full-speed (untested)
-
microSD card socket (untested)
-
UART, SPI, I2C headers.
(TODO: more explanation)
Test programs and a bit more information can be found in the firmware/ directory.
They're a little rough-around-the-edges right now, because I haven't had these boards for long and it's my first time using an STM32H7 chip.
Parts
78| Qty | Value | Footprint | References |
|---|---|---|---|
| 23 | 100n | Capacitor_SMD:C_0402_1005Metric | C3, C10, C21, C22, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33, C34 +7 |
| 4 | 10K | Resistor_SMD:R_0402_1005Metric | R1, R12, R13, R19 |
| 4 | 10K | Resistor_SMD:R_Array_Concave_4x0402 | RN1, RN2, RN3, RN4 |
| 4 | 1K | Resistor_SMD:R_0402_1005Metric | R4, R5, R6, R14 |
| 3 | 10n | Capacitor_SMD:C_0402_1005Metric | C17, C20, C36 |
| 3 | 47K | Resistor_SMD:R_0402_1005Metric | R2, R20, R21 |
| 2 | 10u | Capacitor_Tantalum_SMD:CP_EIA-3216-10_Kemet-I | C1, C2 |
| 2 | 1u | Capacitor_SMD:C_0402_1005Metric | C18, C19 |
| 2 | 20p | Capacitor_SMD:C_0402_1005Metric | C13, C14 |
| 2 | 2u2 | Capacitor_SMD:C_0603_1608Metric | C11, C12 |
| 2 | 5p | Capacitor_SMD:C_0402_1005Metric | C15, C16 |
| 1 | 0x90 | Resistor_SMD:R_0402_1005Metric | R8 |
| 1 | 0x92 | Resistor_SMD:R_0402_1005Metric | R7 |
| 1 | 4K7 | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | AO3400 | Package_TO_SOT_SMD:SOT-23 | Q1 |
| 1 | Button | stm32_linux:button_jlcpcb | S2 |
| 1 | GPIO | Connector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_Horizontal | J8 |
| 1 | HSE | Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm | Y1 |
| 1 | HSER | Resistor_SMD:R_0402_1005Metric | R22 |
| 1 | I2C | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Horizontal | J6 |
| 1 | LDO | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U4 |
| 1 | LED1 | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | LED2 | LED_SMD:LED_0603_1608Metric | D3 |
| 1 | LED3 | LED_SMD:LED_0603_1608Metric | D4 |
| 1 | LSE | Crystal:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y2 |
| 1 | LSER | Resistor_SMD:R_0402_1005Metric | R23 |
| 1 | MT48LC16M16 | Package_SO:TSOP-II-54_22.2x10.16mm_P0.8mm | U3 |
| 1 | NS2009 | Package_SO:MSOP-10_3x3mm_P0.5mm | U5 |
| 1 | Prog | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Horizontal | J1 |
| 1 | Reset | stm32_linux:button_jlcpcb | S1 |
| 1 | SPI | Connector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_Horizontal | J7 |
| 1 | STM32H753IITx | Package_QFP:LQFP-176_24x24mm_P0.5mm | U1 |
| 1 | TFT | stm32_linux:FPC_50p_0.5mm | J4 |
| 1 | TVS | Package_TO_SOT_SMD:SOT-363_SC-70-6 | D1 |
| 1 | UART | Connector_PinSocket_2.54mm:PinSocket_1x05_P2.54mm_Horizontal | J5 |
| 1 | USB | custom_footprints:MyMicroUSB | J2 |
| 1 | W25Q128 | Package_SO:SOIC-8_5.23x5.23mm_P1.27mm | U2 |
| 1 | uSD | stm32_linux:microSD_1051620001 | J3 |
Similar boards
- 4 layers100 × 100 mm

- 2 layers91.3 × 60.7 mm

- 2 layers55 × 80 mm

Board esp32 v2
sudomesh/disaster-radio
A (paused) work-in-progress long-range, low-bandwidth wireless disaster recovery mesh network powered by the sun.
101 parts1.1k - 2 layers59.2 × 52.9 mm

- 2 layers155.5 × 130 mm

Einkpicframe
Spritetm/picframe_colepd
A WiFi picture frame allowing for remote photo uploads, using an ESP32-C3 and a 5.6" color E-ink display
60 parts97 - 2 layers100 × 93 mm

Speeduino base
Tjeerdie/SPECTRE
Speeduino compatible engine control unit (ECU) based around black STM32F407VET6 board.
213 parts59GPL-3.0 - 2 layers128 × 77 mm

- 2 layers36 × 100 mm

Eleph
FeruzTopalov/eleph
GPS-based local relative navigation system for group of up to 6 members
56 parts24GPL-3.0
Questions
How big is the Stm32 linux PCB?
It measures 64.1 × 72.4 mm and has 4 copper layers, 1.6 mm thick.
What parts does the Stm32 linux use?
78 parts, built around the NS2009 and AO3400. 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 linux KiCad files?
From the WRansohoff/Magrat_v0 repository on GitHub, at the commit this page was made from: the board is stm32_linux.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Stm32 linux 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).