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.

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)


I thought you knew about the reprap drivers... I could have told you right away.

No problem -- I didn't get too far into the L297/L298 board design over the weekend.  It looks like there's a bit of work before I can modify the L297/L298 driver into a one-sided design that uses parts from my workshop.  For example, I'll probably replace some headers with the type I have in my workshop/lab, and remove the functions I don't need.  I'm not sure what the jumpers labeled "Maximum" and "Minimum" do, for example.  They're probably outputs, and I'll need to do a bit of reading to figure out what they're for.

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]


... http://avrstmd.com/ that's waht I would go for. Those drivers are pricy though....
That is pricy... $65/axis would be about $260.  But it is also open source, and a lot of the cost is the over-specced driver IC.  So if I put on my cowboy hat (in the British sense) and started downgrading all the components to build an affordable driver, it might turn out okay and within budget (or it might explode).  hmm... that sounds kind of fun.  I've added it to my project list. :)

I'm glad to hear you are also considering the L297/1 or similar -- I'm planning to design a new driver around L297/L298 but there's a learning curve, in that I have to figure out how to talk to it from an ATTINY2313 (or Arduino).  I can understand those timing diagrams with the clock cycles and stuff, but it'll be my first build where I have to write code to run those logic diagrams.  Since I have these little, torquey current-sucking motors I figure I ought to at least plan a driver upgrade even if it takes two months and a few copper-clad boards to work out the bugs.
I am also very happy with my CNC and plan to keep it intact for quite some time.  After all, how am I supposed to fabricate new motor driver boards without a PCB mill?  (chemicals don't count)

ps - now that you are happy using the CNC and don't want to change it, does that make it a "Robot" instead of a "Work in Progress"?

... I guess those things are always WIP's :D

... some kind of chopper chip together with the l298 to provide the current limiting feature.

One of those is the l297 and another is l6506, they are similar and work well with the l298, I think using them will get the most out of the l298 driver, and also allow microstepping as a side effect. Having the current limiting in place would allow the driver to be used with the more powerful motors, but without real testing is hard to say what the performance would be. Still the l298 can handle 2 amps per channel so it should go pretty well.

I think I will pursue this combo for a future driver, but for now there is still a lot to play with the current working machine :D ... I'm fairly happy with it for now, have to update the page.

... and easy to interface too ... but is only unipolar ... so bipolar motors are out of the question...