Let's Make Robots!

RepRap Conversion for a set of Probotix SideStep Stepper Motor Drivers


An Arduino or similar microcontroller shall be used to create a RepRap-style front-end for the HobbyCNC EZ Driver board or similar DB-25 controlled stepper driver.  This front-end microcontroller application would allow RepRap applications to control a number of powerful CNC machines.


The hobbyist CNC market is growing, and one of the favored components is the HobbyCNC EZ Driver board.  The EZ and PRO drivers offer control of powerful stepper motors for a price less than $100.  These would be a great addition to my CNC project if I could control them with a microcontroller instead of a parallel port.

For Bipolar motors the nearest match is the Probotix SideStep Drivers and Parallel Port Breakout Board.  A 4-axis set with similar function to the HobbyCNC 4-axis $99 PRO Driver Board would cost quite a bit more, at $165.

Using a microcontroller to control the parallel port pins of the PRO driver board would offer me 4-axis control for as little as $100, while avoiding the problem of using Windows to control a Real-Time Application.

The Problem

Building a driver from scratch, while educational, is expensive and inefficient compared to the commercial options already available at low cost.  The drivers used on my current CNC cannot handle the powerful motors I would like to use, cost more to build than the HobbyCNC driver, and alternate options also cost more than the HobbyCNC drivers.

 The Driver Board

The HobbyCNC page says:

Parallel Port Pinouts are as follows: 2=X dir 3=X step 4=Y dir 5=Y step 6=Z dir 7=Z step 8=A dir 9=A step 10=Limit 11=A home 12=X home 13=Y home 15=Z home 18-25= Ground All others are not connected

So the 4-axis driver can be controlled via 8 pins minimum, and 12 if I want to connect limit/home sensors (I do not right now).

The Controller

An ATTINY2313 or an Arduino would be candidates for the driver controller IC.  RepRap for GCODE is a satisfactory program for controlling my current CNC, and I would not mind using this program more.  The microcontroller would behave like a RepRap, while managing control of the driver board

RepRap for GCODE is a program by Chris Meighan that sends text commands via serial interface to an Arduino controller (or any serial controller that behaves like a RepRap).  RepRap for GCODE can handle many lines of GCODE, and has been successfully used to route and drill PCBs for prototyping via a RepRap-like CNC mill.

Creating a RepRap-style front-end for the HobbyCNC driver would allow RepRap applications to control a number of powerful CNC machines.  A seperate controller does not modify the HobbyCNC driver, so the driver can be detatched and connected to a parallel port for control by Mach3 or EMC2.


A nice cheap solution for my CNC would be maybe an ST L297/1 controller to go with the L298N IC driver.  The ST L297/1 driver I/C costs $3.50 USD/pc from Thailand, which is better than $11.50/pc from Mouser.  I like cheap solutions, so this research is on indefinite hold.  This blog post will be properly recycled (and the bits will be reused on other blogs).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

It looks like I won't have to design my next motor controller from data sheet examples and Repetitive Stress Injuries from EagleCAD part placement. I found a Contraptor link (http://www.contraptor.org/electronics-motors-subset) to the RepRap stepper driver written on their PCB (http://make.rrrf.org/smd-1.2).  The stepper driver 1.2 has L297/L298 combination, and since I just ordered L297/L298 ICs (for about $40), there's no way I'd order the kit.  Fortunately for me, they share their EagleCAD files (bless their open source hearts).  Now all I have to do is go over the EagleCAD PCB to make the traces large enough to fabricate on my CNC, and I'll have a driver to play with.  If this works, I really ought to donate to the RepRap Project. [Update: donation made]


Yep, that's why Open source is so cool.

 The Max/Min headers are for limit switches at either end of the cnc/reprap range :-) (inputs)