

Multistepper
Code samples and ready projects based on bare-metal STM32
- Size
- 113.5 × 105.5 mm
- Copper layers
- 4
- Thickness
- 4.69 mm
- Parts
- 243
- Nets
- 317
- Pads
- 1,051
- Tracks, vias
- 3,072, 309
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 21 Mar 2015
- Updated
- 10 Oct 2026
Overview
Multistepper is an open-source printed circuit board by eddyem, from the eddyem/stm32samples repository on GitHub. It is a 4-layer board of 113.5 × 105.5 mm with 243 parts on 317 nets, routed with 3,072 tracks and 309 vias.
It is built around the ISO1050DUB, B0505S-1W and LM2576-5.0WU, with the LM1117-3.3, 74HC4051 and USBLC6-2SC6 among its other parts. Its parts include 38 resistors, 29 capacitors, 27 diodes, 27 connectors and 8 ICs. It belongs with the sensors and measurement and computers and single-board computers boards and the STM32 boards of this library.
Main components
12ISO1050DUB
SOP-8-2.54mm-55℃~+105℃ 1 1Mbps 2500 3V~5.5V 4.75V~5.25V 50kV/us Bus fault detection and protection、Fail-safe SOP-8-2.54mm Isolated CAN Transceivers ROHSTexas InstrumentsIsolated CAN TransceiversB0505S-1W
SIP-4-45℃~+85℃ 1 1.5kV 100uF 1W 200mA 23mA 4.5V~5.5V 5V 60mVp-p 77kHz 79% SIP-4 Isolated Power Modules ROHSEVISUNIsolated Power ModulesLM2576-5.0WU
TO-263-5-40℃~+125℃@(TJ) 1 3A 4V~40V 52kHz 5V Buck Buck Built-in Fixed No TO-263-5 DC-DC Converters ROHSMicrochip TechnologyDC-DC ConvertersLM1117-3.3
SOT-2231 1.3V@(1000mA) 15V 1A 2mA 3.3V Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHShongjiachengUncategorised74HC4051
SOP-16-40℃~+85℃ 1 170MHz 28ns 29ns 3V~9V 5ns 5pF 80Ω 8:1 SOP-16 Analog Switches, Multiplexers ROHSWuxi I-core ElecAnalog Switches, MultiplexersUSBLC6-2SC6
SOT-23-60.35pF、0.8pF 100nA 150W@8/20us 15V 2 5V 6A@8/20us 6V ESD SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSUMWESD And Surge Protection (TVS/ESD)SS14
SMA(DO-214AC)-55℃~+150℃ 1A 25A 300uA@40V 40V 550mV@1A Independent SMA(DO-214AC) Schottky Diodes ROHSMDDSchottky DiodesSP0505BAHTG
SOT-23-610A@8/20us 15V 1uA 35pF 5.5V 6V ESD IEC 61000-4-2、IEC 61000-4-4 SOT-23-6 ESD and Surge Protection (TVS/ESD) ROHSTECH PUBLICESD And Surge Protection (TVS/ESD)MBRS130L
SMB(DO-214AA)-65℃~+125℃ 1 Independent 1mA@30V 2A 30V 40A 445mV@2A SMB(DO-214AA) Schottky Diodes ROHSonsemiSchottky Barrier Diodes (SBD)AO3401
SOT-231 P-Channel 1.3V 115pF 30V 350mW 4.2A 75mΩ@4.5V 77pF 954pF P-Channel SOT-23 MOSFETs ROHSGuangdong HottechMOSFETsIRF9310
SOIC8-30V -20A P-Channel HEXFET® Power MOSFETInfineon TechnologiesUncategorisedMM3Z7V5
SOD-3231 Independent 300mW 30Ω 500nA@4V 7.5V 7V~7.9V SOD-323 Zener Diodes ROHSSTMicroelectronicsZener Diodes
README
Readme.mdRepository Overview
The stm32samples repository is a collection of low-level, bare-metal code examples and complete
projects for various STM32 microcontroller series (F0, F1, F3, F4, G0). It uses CMSIS header files
from modm-io/cmsis-header-stm32 for register definitions.
Project Structure by MCU Series
STM32F0 (F030, F042, F072)
- 3steppersLB – Controls 3 stepper motors with encoders via USB/CAN bus
- blink – Simple LED toggling
- CANbus4BTA – CAN replacement for PEP-CAN
- CANBUS_SSI – Works with BTA SSI azimuth encoder
- Chiller – Basic chiller temperature controller
- F0_testbrd – Tests STM32F0x2 on custom board
- htu21d_nucleo – Reads HTU-21D sensor on Nucleo-F042K
- morze – Echoes USART1 data as Morse code on TIM3CH1 (PA6)
- NUCLEO_SPI – SSI over SPI on Nucleo-F042K
- PL2303_ringbuffer – USB CDC ACM with ring buffers
- QuadEncoder – Quadrature encoder via timer
- Servo – Controls SG-90 style servos
- Socket_fans – Manages multiple fans
- TM1637 – Drives 7‑segment displays
- tsys01_nucleo – Reads two TSYS01 sensors
- uart_blink & uart_blink_dma – USART echo with DMA
- usbcan_relay – Relay board over CAN bus
- usbcan_ringbuffer – USB‑CAN adapter with ring buffers
- USBHID – USB HID keyboard + mouse
STM32F1 (F103)
- BMP180, BMP280 – I²C temperature/pressure sensors
- Canon_managing_device – Controls Canon lenses
- canUART – UART‑CAN bridge
- DHT22_DHT11 – Humidity sensors using timer+DMA
- DS18 – DS18x20 temperature sensors
- F1_testbrd – Test board for LQFP48 packages
- I2Cscan – I²C scanner with register R/W
- LED_Screen – Drives 32×16 LED matrices (P10)
- MAX7219_screen – Controls 8×8 LED matrices
- RGB_LED_Screen – HUB75E RGB panel with 8.8.4 color
- SevenCDCs – Seven USB‑CDC ACM instances on one MCU (joke project)
- shutter – Bistable shutter via USB/external signal
- Tetris – Tetris on HUB75E panel
- USB_HID – USB HID mouse+keyboard
- ws2815 – Rainbow effect on WS2815 strips
STM32F3 (F303)
- ADC – Works with ADC peripheral
- blink – Toggles LEDs on PB0/PB1
- CANusb – USB‑CAN adapter
- floatPrintf – Converts floats to strings
- Multistepper – Controls up to 64 multiplexed steppers
- NitrogenFlooding – Automatic nitrogen flooding
- PL2303 – PL2303 emulator (old)
- Seven_CDCs – Seven USB CDC ACM interfaces
- usart1fullDMA – USART1 Rx/Tx DMA with match detection
- USB_template_CDC – USB‑CDC template
STM32F4 (F401)
- blink – Simple LED toggling
STM32G0 (G070, G0B1)
- blink – Basic LED blink
- RTC – Real‑time clock
- flash – Flash memory operations
- g0b1 – USB‑CDC working on G0B1
- i2c – I²C operations
- usart – USART communication
Other Directories
- deprecated – Archive of older, no‑longer‑maintained code
- snippets – Small reusable code fragments
- testboard – KiCad 8 design files
Development Environment
- Toolchain: arm-none-eabi‑gcc with
-fltooptimisations - Build: Structured Makefiles per series
- Debug: OpenOCD configuration files provided
- Libraries: No third‑party libraries; only CMSIS‑SVD headers
Project Maturity
- Alpha: USB template for F303, MLX90640 all‑sky camera
- Stable: LED blink, UART echo, sensor interfaces, USB‑CDC
- Draft: CANbus4BTA, MLX90640multi
- Deprecated: Older code in
deprecated/
Summary
This repository is a valuable resource for learning low‑level STM32 programming without vendor libraries. It covers practical applications:
- Industrial control: Stepper motors, CAN bus, relay boards
- Sensor interfacing: Temperature, pressure, humidity, encoders
- Human‑machine interfaces: LED matrices, 7‑segment displays, USB HID
- Communication: UART, SPI, I²C, USB‑CDC, USB‑HID, CAN
- Prototyping: Test boards for F0, F1, F3, G0
For the latest updates, check the repository on GitHub.
License
This repository is provided under the GNU General Public License v3 or later. Full text of the GPLv3 is available at https://www.gnu.org/licenses/gpl-3.0.html.
Parts
243| Qty | Value | Footprint | References |
|---|---|---|---|
| 40 | SolderJumper_3_Open | Jumper:SolderJumper-3_P2.0mm_Open_TrianglePad1.0x1.5mm | JP10, JP11, JP12, JP16, JP17, JP18, JP19, JP20, JP24, JP25, JP26, JP27, JP28, JP32, JP33, JP34 +24 |
| 24 | SolderJumper_2_Bridged | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP13, JP14, JP15, JP21, JP22, JP23, JP29, JP30, JP31, JP37, JP38, JP39, JP45, JP46, JP47, JP53 +8 |
| 15 | 330 | Resistor_SMD:R_Array_Convex_4x0603 | RN1, RN2, RN3, RN4, RN5, RN6, RN7, RN8, RN9, RN10, RN11, RN12, RN13, RN14, RN15 |
| 14 | SS14 | Diode_SMD:D_SOD-323_HandSoldering | D9, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D23 |
| 12 | 0.1 | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C2, C3, C5, C6, C7, C8, C9, C13, C15, C18, C27, C29 |
| 10 | 100 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R21, R22, R23, R26, R27, R28, R29, R30, R31, R32 |
| 8 | 100u 35V | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C19, C20, C21, C22, C23, C24, C25, C26 |
| 8 | LimS | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J11, J14, J16, J18, J20, J22, J24, J26 |
| 8 | SP0505BAHT | Package_TO_SOT_SMD:SOT-23-6 | D1, D2, D3, D4, D5, D6, D7, D8 |
| 8 | Stepper | Connector_JST:JST_EH_B4B-EH-A_1x04_P2.50mm_Vertical | J12, J15, J17, J19, J21, J23, J25, J27 |
| 8 | stepper_module | stepper:stepper_module | XX1, XX2, XX3, XX4, XX5, XX6, XX7, XX8 |
| 6 | 22 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R2, R9, R16, R17, R24, R25 |
| 6 | 330 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R6, R7, R8, R14, R15, R36 |
| 4 | MountingHole | MountingHole:MountingHole_3.2mm_M3_DIN965_Pad | H1, H2, H3, H4 |
| 3 | 10k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R1, R11, R35 |
| 3 | 1u | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C10, C11, C12 |
| 3 | 7.5 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R3, R4, R34 |
| 2 | 1k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R37, R38 |
| 2 | 47k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R12, R13 |
| 2 | 47u 6V | Capacitor_Tantalum_SMD:CP_EIA-3216-18_Kemet-A_Pad1.58x1.35mm_HandSolder | C16, C28 |
| 2 | 4k7 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R19, R20 |
| 2 | 6 | Capacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolder | C1, C4 |
| 2 | LM1117-3.3 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U6, U8 |
| 2 | MBRS130L | Diode_SMD:D_SMB_Handsoldering | D22, D27 |
| 1 | 100u | Inductor_THT:L_Toroid_Horizontal_D6.5mm_P10.00mm_Diameter7-5mm_Amidon-T25 | L1 |
| 1 | 120 | Resistor_SMD:R_1210_3225Metric_Pad1.30x2.65mm_HandSolder | R18 |
| 1 | 1N5822 | Diode_THT:D_DO-201_P3.81mm_Vertical_AnodeUp | D26 |
| 1 | 1k5 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R33 |
| 1 | 3.3V | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP5 |
| 1 | 3V3 | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP5 |
| 1 | 3V3ADC | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP6 |
| 1 | 3V3ADC | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP4 |
| 1 | 47u 10V | Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder | C17 |
| 1 | 47u 35V | Capacitor_Tantalum_SMD:CP_EIA-6032-28_Kemet-C_Pad2.25x2.35mm_HandSolder | C14 |
| 1 | 5.1 | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R5 |
| 1 | 5V | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP7 |
| 1 | 5Vext | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP4 |
| 1 | 5Vusb | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP1 |
| 1 | 74HC4051 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U7 |
| 1 | 91k | Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolder | R10 |
| 1 | ADC1 | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J5 |
| 1 | ADC2 | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J4 |
| 1 | AO3401 | Package_TO_SOT_SMD:SOT-23_Handsoldering | Q3 |
| 1 | B0505S | stepper:B0x0xS | Q1 |
| 1 | Boot | Button_Switch_SMD:SW_SPST_FSMSM | SW2 |
| 1 | Buttons/I2C | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | J2 |
| 1 | CAN | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP1 |
| 1 | GPIO | Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_Vertical | J7 |
| 1 | Gnd | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP3 |
| 1 | IRF9310 | Package_SO:SO-8_3.9x4.9mm_P1.27mm | Q2 |
| 1 | ISO1050DUB | Package_SO:SOP-8_6.62x9.15mm_P2.54mm | U2 |
| 1 | LM2576-5.0 | Package_TO_SOT_THT:TO-220-5_P3.4x3.7mm_StaggerEven_Lead3.8mm_Vertical | U5 |
| 1 | LM4050A(b)EX3-3.3 | Package_TO_SOT_SMD:SOT-323_SC-70_Handsoldering | U4 |
| 1 | MCU | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP3 |
| 1 | MM3Z7V5 | Diode_SMD:D_0805_2012Metric_Pad1.15x1.40mm_HandSolder | D25 |
| 1 | MOT_MUL | Connector_JST:JST_PH_B5B-PH-K_1x05_P2.00mm_Vertical | J6 |
| 1 | NX5032GA-8MHz | Crystal:Crystal_SMD_5032-2Pin_5.0x3.2mm | Y1 |
| 1 | PESD1CAN | Package_TO_SOT_SMD:SOT-23 | D24 |
| 1 | Prog | Connector_PinSocket_1.27mm:PinSocket_1x06_P1.27mm_Vertical | J1 |
| 1 | Reset | Button_Switch_SMD:SW_SPST_FSMSM | SW1 |
| 1 | STM32F303VDTx | Package_QFP:LQFP-100_14x14mm_P0.5mm | U1 |
| 1 | SW_DIP_x01 | Button_Switch_THT:SW_DIP_SPSTx01_Slide_6.7x4.1mm_W7.62mm_P2.54mm_LowProfile | SW3 |
| 1 | Screen | Connector_IDC:IDC-Header_2x05_P2.54mm_Vertical | J3 |
| 1 | Screw_Terminal_01x02 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-2_1x02_P5.00mm_Horizontal | J10 |
| 1 | Screw_Terminal_01x03 | TerminalBlock_Phoenix:TerminalBlock_Phoenix_MKDS-1,5-3_1x03_P5.00mm_Horizontal | J9 |
| 1 | UART | Connector_JST:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J13 |
| 1 | USB5V | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP2 |
| 1 | USBLC6-2SC6 | Package_TO_SOT_SMD:SOT-23-6 | U3 |
| 1 | USB_B | Connector_USB:USB_B_OST_USB-B1HSxx_Horizontal | J8 |
| 1 | Vdrive | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP6 |
| 1 | Vin | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP2 |
| 1 | Vio | Jumper:SolderJumper-2_P1.3mm_Open_TrianglePad1.0x1.5mm | JP7 |
| 1 | Vio | TestPoint:TestPoint_THTPad_1.5x1.5mm_Drill0.7mm | TP8 |
Questions
How big is the Multistepper PCB?
It measures 113.5 × 105.5 mm and has 4 copper layers, 4.69 mm thick.
What parts does the Multistepper use?
243 parts, built around the ISO1050DUB, B0505S-1W, LM2576-5.0WU and LM1117-3.3. 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 Multistepper KiCad files?
From the eddyem/stm32samples repository on GitHub, at the commit this page was made from: the board is F3:F303/Multistepper/kicad/multistepper.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Multistepper design in my own project?
Its repository states no licence, so its author keeps all rights: ask eddyem before reusing the design.
More from eddyem/stm32samples
12- 2 layers121.5 × 136.5 mm

- 2 layers121.5 × 136.5 mm

- 4 layers80 × 80 mm

- 2 layers80 × 84 mm

- 2 layers97 × 69.5 mm

- 2 layers98 × 63.5 mm

- 2 layers58 × 71 mm

MLX90640-allsky
eddyem/stm32samples
Code samples and ready projects based on bare-metal STM32
94 parts208 - 2 layers97.5 × 59.5 mm

- 2 layers75.5 × 52.5 mm

- 2 layers66 × 54 mm

- 2 layers65.5 × 41 mm

- 2 layers62 × 60.5 mm

Chiller control
eddyem/stm32samples
Code samples and ready projects based on bare-metal STM32
73 parts208
Similar boards
- 2 layers109 × 74 mm

- 2 layers86.4 × 22.9 mm

- 4 layers103 × 57 mm

- 4 layers156.8 × 127 mm

Payload PCB v3.1
team-mountaineers-urc-2023/electronics
Block diagrams, schematics, and PCB files related to the electronics subteam
197 parts2BSD-3-Clause - 2 layers94.9 × 69 mm

ECU
rivotmotors-rnd/ECU_Firmware_V3
RIVOT ECU V3.0 Repo containing STM32F446RE firmware and KiCad PCB hardware designs.
115 parts - 2 layers76.6 × 21.5 mm

Power Breakout
EmbeddedDesign/GotT-Translation-Circuit
A Bluetooth voice modulator for Dalek speech
18 parts2MIT - 4 layers53.6 × 65.4 mm

Pneumatics Control Unit V1
msoe-vex/pcb-design
This repository is dedicated to storing files required for designing and creating PCB Boards
80 parts2 - 4 layers128 × 79 mm
