Home > Uncategorized > Stepper Motor Controller – USB interface

Stepper Motor Controller – USB interface

September 1st, 2009


I just finished designing a Stepper Motor Controller (SMC) for a PCB Mill that I ordered. One requirement most SMCs have is the need for a real-time operating system running only the milling software. This is because each motor movement must be timed precisely to ensure an accurate rate of movement from the milling head. If other software is running, then the timing of the interrupts can be off resulting in errors on the mill.

Not wanting to use a dedicated computer, I decided to design a bipolar chopper controller for myself. The big difference with this device and other controllers is that you will be able to feed it g-code directly, and not worry about controlling the timing. The processor onboard will be able to deal with the timing requirements and it should work. Some features include :

  • Send g-code directly via USB interface (linux/mac/winblowz drivers), does not require dedicated PC
  • Software controllable current (chopper mode) (1.5A/motor max)
  • 3-Axis on small PCB (2.9″x2.2″)
  • USB interface, powered off USB except for motor.
  • Over-temperature monitoring

If there is any interest, I’m happy to release the designs to the public domain.


  1. Sebastiano
    | #1

    Hey, its a great work!!!!
    I’m curios to hear more news abuout your work.
    Best regards

  2. | #2

    Hello! Great work I would be interested anything you have on building a controller and drivers as I have been playing with the Arduino with a view to using it on my cnc milling machine. I need to extent the gcode and mcode for my machine.

    Do you have any drawings of your keyboard for the gcode interperter

  3. | #3

    Hello can you send me the files for the Stepper Motor /Driver Controller please to dyoung(at)ppsc(dot)net.

    Cheers DeWayne

  4. admin
    | #4

    I’m not sure what the keyboard you are referring to is; and I’m trying to get a friend of mine to make a commercial shield using my code to simplify implementations for others.

  5. admin
    | #5

    They are posted on google code; you should find a link for it.

  6. keerapat
    | #6


    I can not find the link on google code; please send link to me by e-mail.


  7. admin
    | #7


    your best bet is to download the latest version using svn.


  8. David Armstrong
    | #8

    certianly interested in the usb smc project , if you need help shout if an extra pair of hands always helps ( and brain )!


  9. admin
    | #9

    Thanks for the offer. I’ve not had a chance to play around with the code much as of late. What I want to implement next is a way to ramp the rate up and back down so that the motions are not so abrupt. Been toying with a way to tweak the clock rate — but have not tried anything yet. Let me know what you are interested in working on.

  1. | #1