Skip to the content
2 layers195 × 95 mmPra 01, the printed circuit board in 3D

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

5

README

readme.md

Generic 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:

  1. Hardware: design files for dsPIC micro-controller based custom board
  2. 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
QtyValueFootprintReferences
7CPCapacitors_THT:CP_Radial_Tantal_D5.0mm_P2.50mmC4, C5, C8, C9, C10, C11, C12
5CPCapacitors_THT:CP_Radial_D5.0mm_P2.50mmC1, C2, C3, C6, C7
31KResistors_SMD:R_1206_HandSolderingR2, R3, R4
3DB15Connectors:DB15FCJ2, J3, J4
3LEDLEDs:LED_1206D1, D2, D3
2BARREL_JACKConnectors:BARREL_JACKCON1, CON2
14.7KResistors_SMD:R_1206_HandSolderingR1
1CONN_01X06Connectors:PINHEAD1-6P1
1DB9Connectors:DB9FCJ1
1DB9Connectors:DB9MCJ5
1LEDLEDs:LED_D5.0mmD4
1LM1117-3.3Power_Integrations:TO-220U1
1LM1117-5.0Power_Integrations:TO-220U3
1MAX232Housings_DIP:DIP-16_W7.62mm_LongPadsU4
1RResistors_Universal:Resistor_SMD+THTuniversal_0805to1206_RM10_HandSolderingR5
1dsPIC33FJ128GP802Housings_DIP:DIP-28_W7.62mmU2

Similar boards

  • 2 layers137.2 × 116.8 mmAudioBoard, the printed circuit board in 3D

    AudioBoard

    andreaslagler/giove8k

    Giove 8k audio synthesizer project

    98 partsGPL-3.0
  • 2 layers84.3 × 58.4 mmEnocderDriver, the printed circuit board in 3D

    EnocderDriver

    NikodemBartnik/Small-Projects

    All of smaller projects (Arduino, PCBs, electronics, code)

    35 parts55
  • 2 layers97 × 97 mmQO100 RX, the printed circuit board in 3D

    QO100 RX

    barisdinc/N3B_SDR_Transceiver_HW

    V/U/SHF and QO-100 SDR Transceiver Project

    167 parts20GPL-3.0
  • 2 layers85 × 60 mmBaseModule, the printed circuit board in 3D

    BaseModule

    KarlVaello/VehicleControlSystem

    Vehicle Control System. Using C++ Qt and C. Hardware and Software

    67 parts14GPL-3.0
  • 2 layers40 × 100 mmMidiMonger components, the printed circuit board in 3D

    MidiMonger components

    dchwebb/MidiMonger

    Eurorack MIDI interface supporting USB and serial MIDI. Based on ARM STM32F446 MCU.

    70 parts12
  • 2 layers96 × 100 mmADS1299EMG8xR2, the printed circuit board in 3D

    ADS1299EMG8xR2

    RF-Lab/emg_platform

    EMG platform

    152 parts9
  • 4 layers80.8 × 100 mmQuango Components, the printed circuit board in 3D

    Quango Components

    dchwebb/Quango

    Eurorack polyphonic controller

    197 parts5

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.