

Hardware and Firmware for A Custom Stepper Motor Controller
- Size
- 195 × 95 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 33
- Nets
- 43
- Pads
- 179
- Tracks, vias
- 353, 29
- Routed
- Yes
- KiCad
- KiCad 4
- Created
- 18 Mar 2025
- Updated
- 18 Mar 2025
Overview
Pra 01 is an open-source printed circuit board by hemanthpruthvi, from the hemanthpruthvi/Stepper-Motor-Controller repository on GitHub. It is a 2-layer board of 195 × 95 mm with 33 parts on 43 nets, routed with 353 tracks and 29 vias.
It is built around the DSPIC33FJ128GP802-I/SP, MAX232N and LM1117-3.3, with the LM1117-5.0 and DB15 among its other parts. Its parts include 12 capacitors, 8 connectors, 5 resistors, 4 ICs and 4 diodes. It belongs with the robots and motor control boards and the PIC boards of this library.
Main components
5DSPIC33FJ128GP802-I/SP
SPDIP-28-300mil-40℃~+85℃ 128KB 21 3V~3.6V SPDIP-28-300mil Digital Signal Processors (DSP/DSC) ROHSMicrochip TechnologyDigital Signal Processors (DSP/DSC)MAX232N
PDIP-160℃~+70℃ 120Kbps 2 2 4.5V~5.5V Transceiver PDIP-16 RS232 ICs ROHSTexas InstrumentsRS232 ICsLM1117-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 ROHShongjiachengUncategorisedLM1117-5.0
SOT-2231 1.3V@(1000mA) 15V 1A 2mA 5V Fixed Over Current Protection、Short Circuit Protection、Thermal shutdown Positive SOT-223 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHShongjiachengUncategorisedDB15
-Coaxial Connectors (RF)Belden
README
readme.mdGeneric Stepper Motor Controller for Multi-Axis Motion
The project describes a simple and complete solution to multi-axis motion control using generic stepper-motor based mounts with off-the-shelf motor drives, a system that looks like the following.
Motion controller → Stepper motor drive → Motorized rotation/translation stage
The motion controller has two aspects:
- Hardware: design files for dsPIC micro-controller based custom board
- Firmware: embedded-C program that implements the motion controls
Hardware
The central element is a dsPIC micro-controller with two UART ports and several I/O ports that enable control of upto 3 drives at a time by sending correspinding pulse trains (drive IDs 1-3). Up to three of such motion controllers can be connected in daisy chain thus being able to control upto nine drives (drive IDs 1-9). The number of daisy chains is only a firmware limitation due to how the drives are numbered. A better numbering scheme should allow for more expansion.
The directory Hardware contains the design files. Hardware circuitry is designed using KiCAD program. The final GERBER file should be enough to produce the custom printed circuit boards.
Firmware
The firmware is programmed in Embedded-C using MPLABX IDE with a header that is specific to the micro-controller of choice. The directory Firmware contains the source code as well as the compiled output. The firmware is written into the hardware using PIKIT 3 programmer tool. The HEX file to be written to hardware is located at<firmware directory>/dist/default/Production.
Parts
33| Qty | Value | Footprint | References |
|---|---|---|---|
| 7 | CP | Capacitors_THT:CP_Radial_Tantal_D5.0mm_P2.50mm | C4, C5, C8, C9, C10, C11, C12 |
| 5 | CP | Capacitors_THT:CP_Radial_D5.0mm_P2.50mm | C1, C2, C3, C6, C7 |
| 3 | 1K | Resistors_SMD:R_1206_HandSoldering | R2, R3, R4 |
| 3 | DB15 | Connectors:DB15FC | J2, J3, J4 |
| 3 | LED | LEDs:LED_1206 | D1, D2, D3 |
| 2 | BARREL_JACK | Connectors:BARREL_JACK | CON1, CON2 |
| 1 | 4.7K | Resistors_SMD:R_1206_HandSoldering | R1 |
| 1 | CONN_01X06 | Connectors:PINHEAD1-6 | P1 |
| 1 | DB9 | Connectors:DB9FC | J1 |
| 1 | DB9 | Connectors:DB9MC | J5 |
| 1 | LED | LEDs:LED_D5.0mm | D4 |
| 1 | LM1117-3.3 | Power_Integrations:TO-220 | U1 |
| 1 | LM1117-5.0 | Power_Integrations:TO-220 | U3 |
| 1 | MAX232 | Housings_DIP:DIP-16_W7.62mm_LongPads | U4 |
| 1 | R | Resistors_Universal:Resistor_SMD+THTuniversal_0805to1206_RM10_HandSoldering | R5 |
| 1 | dsPIC33FJ128GP802 | Housings_DIP:DIP-28_W7.62mm | U2 |
Similar boards
- 2 layers137.2 × 116.8 mm

- 2 layers

- 2 layers84.3 × 58.4 mm

EnocderDriver
NikodemBartnik/Small-Projects
All of smaller projects (Arduino, PCBs, electronics, code)
35 parts55 - 2 layers97 × 97 mm

QO100 RX
barisdinc/N3B_SDR_Transceiver_HW
V/U/SHF and QO-100 SDR Transceiver Project
167 parts20GPL-3.0 - 2 layers85 × 60 mm

BaseModule
KarlVaello/VehicleControlSystem
Vehicle Control System. Using C++ Qt and C. Hardware and Software
67 parts14GPL-3.0 - 2 layers40 × 100 mm

MidiMonger components
dchwebb/MidiMonger
Eurorack MIDI interface supporting USB and serial MIDI. Based on ARM STM32F446 MCU.
70 parts12 - 2 layers96 × 100 mm

- 4 layers80.8 × 100 mm

Questions
How big is the Pra 01 PCB?
It measures 195 × 95 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Pra 01 use?
33 parts, built around the DSPIC33FJ128GP802-I/SP, MAX232N, LM1117-3.3 and LM1117-5.0. 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 Pra 01 KiCad files?
From the hemanthpruthvi/Stepper-Motor-Controller repository on GitHub, at the commit this page was made from: the board is Hardware/pra_01.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Pra 01 design in my own project?
Its repository states no licence, so its author keeps all rights: ask hemanthpruthvi before reusing the design.