Skip to the content
4 layers187.9 × 60.2 mmMotionModuleSTM32F103R8, the printed circuit board in 3D

MotionModuleSTM32F103R8

griffotron/MotionModuleSTM32R813

PCB design and code for the STM32 powered Motion Module that controls 14 stepper motors

Size
187.9 × 60.2 mm
Copper layers
4
Thickness
1.6 mm
Parts
246
Nets
313
Pads
993
Tracks, vias
2,348, 309
Pours
2
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
17 Sep 2026
Updated
18 Sep 2026

Overview

MotionModuleSTM32F103R8 is an open-source printed circuit board by griffotron, from the griffotron/MotionModuleSTM32R8 repository on GitHub, published under the MIT licence. It is a 4-layer board of 187.9 × 60.2 mm with 246 parts on 313 nets, routed with 2,348 tracks and 309 vias.

It is built around the STM32F103R8T6, TMC2209-LA-T and AMS1117-3.3, with the CC0603KRX7R9BB104, PT1206FR-7W0R2L and RST47UF25V035 among its other parts. Its parts include 141 capacitors, 46 resistors, 31 connectors, 17 ICs and 3 diodes. It belongs with the robots and motor control boards and the STM32 boards of this library.

Main components

12

README

README.md

Introduction

This repository contains the PCB design files and source code for the STM32 based Motion Module used in my Mechanical Display.

The Motion Module uses an STM32F103R8 microcontroller to run 14 Trinamic TMC2209 stepper drivers. It recieves motor movement commands via CAN Bus from the ESP32 based Motion Controller. Please see the related repos for the ESP32 Controller and CAD Designs.

Build Video

Click below to watch the full build video on YouTube Watch the video

Getting Started

PCB

You'll need at least KiCad 8 to view and modify the PCB design files. The PCB/production folder contains files suitable for production with JLC PCB, including a zip containing the Gerbers for fabrication and bom.csv and positions.csv for SMT assembly. The bom.csv uses components from LCSC.com. If any components are no longer be available/out of stock you'll need to select an alternative.

Code

The code uses PlatformIO (I used the VSCode plugin) and the Arduino framework.

CAN Bus library is from https://github.com/pazi88/CANBus

Parts

246
QtyValueFootprintReferences
650.1u 50VCapacitor_SMD:C_0603_1608MetricC1, C10, C11, C12, C101, C103, C106, C107, C109, C111, C114, C115, C117, C119, C122, C123 +49
280R11Resistor_SMD:R_1206_3216MetricR10, R11, R12, R13, R14, R15, R16, R17, R18, R19, R20, R21, R22, R23, R24, R25 +12
2810u 35VCapacitor_SMD:C_0603_1608MetricC16, C17, C24, C25, C32, C33, C40, C41, C48, C49, C104, C105, C112, C113, C120, C121 +12
154.7u 10vCapacitor_SMD:C_0603_1608MetricC6, C22, C30, C38, C46, C54, C62, C70, C78, C86, C94, C102, C110, C118, C126
1547uCapacitor_SMD:CP_Elec_5x5.4C2, C128, C129, C130, C131, C132, C133, C134, C135, C136, C137, C138, C139, C140, C141
1422n 50VCapacitor_SMD:C_0603_1608MetricC20, C28, C36, C44, C52, C60, C68, C76, C84, C92, C100, C108, C116, C124
14Conn_01x04_PinConnector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ3, J5, J7, J9, J11, J13, J15, J17, J19, J21, J26, J28, J30, J32
14Conn_01x04_PinConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ4, J6, J8, J10, J12, J14, J16, J18, J20, J23, J24, J25, J27, J29
14RResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR33, R34, R35, R36, R37, R38, R39, R40, R41, R42, R43, R44, R45, R46
14TMC2209TMC2209:QFN28_5X5_TRIU4, U5, U6, U7, U8, U9, U10, U11, U12, U13, U14, U15, U16, U17
230pfCapacitor_SMD:C_0603_1608MetricC14, C15
2500Resistor_SMD:R_0603_1608MetricR2, R4
2Screw_Terminal_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ1, J22
1100uCapacitor_SMD:CP_Elec_6.3x4.9C3
110kResistor_SMD:R_0603_1608MetricR3
110uCapacitor_SMD:CP_Elec_4x5.7C4
112v PWR LEDLED_SMD:LED_0603_1608MetricD1
12kResistor_SMD:R_0603_1608MetricR1
13.3v PWR LEDLED_SMD:LED_0603_1608MetricD2
1AMS1117-3.3Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1BOOT0 TPTestPoint:TestPoint_Pad_D2.0mmTP1
1Conn_01x05_PinConnector_PinHeader_2.54mm:PinHeader_1x05_P2.54mm_VerticalJ2
1CrystalCrystal:Crystal_SMD_5032-2Pin_5.0x3.2mmY1
1DIAGTestPoint:TestPoint_Pad_D2.0mmTP30
1INDEXTestPoint:TestPoint_Pad_D2.0mmTP58
1MCP2562-E-SNPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1MS1TestPoint:TestPoint_Pad_D2.0mmTP16
1MS2TestPoint:TestPoint_Pad_D2.0mmTP2
1RESETButton_Switch_SMD:SW_Tactile_SPST_NO_Straight_CK_PTS636Sx25SMTRLFSSW1
1STATUS LEDLED_SMD:LED_0603_1608MetricD3
1STM32F103R8TxPackage_QFP:LQFP-64_10x10mm_P0.5mmU3
1UARTTestPoint:TestPoint_Pad_D2.0mmTP44

Similar boards

  • 4 layers100 × 68 mmDevKit, the printed circuit board in 3D

    DevKit

    kaminaris/GigaESC

    209 parts47
  • 4 layers52.9 × 79.6 mmPCB Pere V1, the printed circuit board in 3D

    PCB Pere V1

    CaptainDJMax/2627_Projet3AMSC_Index_Stellaire

    Ceci est notre projet sur l'index stellaire

    93 partsMIT
  • 4 layers51 × 42 mmNano Tek, the printed circuit board in 3D

    Nano Tek

    stefanskotte/Nano-Tek

    A tiny, modern reimagining of the classic Gotek floppy-disk-drive emulator. Nano-Tek keeps the full feature set of a Gotek-style FDD emulator but packs it onto a board that is a fraction of the size, hence the name…

    58 parts7
  • 2 layers45.7 × 46.1 mmSoundboxesp32, the printed circuit board in 3D

    Soundboxesp32

    zarlicho/Qris-soundbox-esp32

    QRIS Soundbox adalah sistem notifikasi pembayaran realtime yang dikembangkan untuk menerima dan memproses notifikasi pembayaran QRIS melalui protokol MQTT.

    43 parts3
  • 6 layers160 × 120 mmPic32main, the printed circuit board in 3D

    Pic32main

    JuanPoueriet/automatic-spork

    Máquina de ruleta física de casino. 6 PCBs: pic32main (cerebro), wheel (rueda de LEDs), displaysa/b/c (paneles de 7 segmentos en cascada) y buttons (botonera).

    256 parts
  • 2 layers100 × 100 mmBoard stm32 rev2, the printed circuit board in 3D

    Board stm32 rev2

    SuzieLinux/kicad_projects

    This repository has misc kicad projects If you feel that it is worth something for you you can go to my website and make a donation using the donate button which brings you to paypal https://suzielinux.com/

    41 partsGPL-3.0
  • 2 layers83 × 56 mmPandahat, the printed circuit board in 3D

    Pandahat

    BRA1L0R/panda-pcb

    116 parts
  • 4 layers102 × 49 mmDrone flight controller, the printed circuit board in 3D

    Drone flight controller

    A1DS19/drone-flight-controller

    A custom drone flight controller, designed in KiCad 10: an STM32F103R8T6 flight core paired with an ATmega328P telemetry co-processor on a four-layer, 102 × 49 mm PCB — taken from schematic capture through placement…

    148 parts

Questions

How big is the MotionModuleSTM32F103R8 PCB?

It measures 187.9 × 60.2 mm and has 4 copper layers, 1.6 mm thick.

What parts does the MotionModuleSTM32F103R8 use?

246 parts, built around the STM32F103R8T6, TMC2209-LA-T, AMS1117-3.3 and CC0603KRX7R9BB104. 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 MotionModuleSTM32F103R8 KiCad files?

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

Can I use the MotionModuleSTM32F103R8 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).