3 axis stepper sheild for arduino

Hello, I am currently designing a 3 axis stepper controller, and was wondering if it would have any demand in the arduino community, and if i should in fact design it as an arduino shield. The purpose of this project is to design an integrated precision 3 axis controller that is easy to interface with, precise, and can be used in small scale robotics and cnc applications. The project is still in fairly early stage so any feedback would be great!

Here are the specs so far: Drives 3 2-phase stepper motors 1.5 A / coil up to 64 microsteps/step SPI interface with arduino controller does all position processing, PID control built in, acceleration, velocity Built in stall checking for switchless boundary checking in cnc application

The benefit of this controller would be that it would take high level position commands ex go(x,y,z) and execute them with preset and adjustable speeds, accelerations/deceleration, pid control, adjustable current level etc. This way, the arduino would only send high level commands, and only have 4 pins used (SPI), leaving the bulk arduino processing to carry out other tasks. Also, the arduino could act as a usb interface between the controller and a computer to carry out cnc instructions from a program. The boards will also be able to stack, and offer 6 12, etc stepper controllers in one system.

Disadvantages would be that it could only drive 2 phase stepper motors, albeit a wide variety. Also, due to the component sizes can not be offered as a kit, and will be relatively expensive, probably around $200 to buy as a unit due to component costs.

I'd be interested in something like this. My need is more of a 2D nature, moving a sewing machine around on a 2D carriage, though. So, I'd like to see the board be able to drive 2 or 3 motors.

The specs look good.

As to whether it should be a shield, or not, I'd say no. Motor drivers tend to run pretty warm, and sometimes noisy. Keeping that heat and noise away from the Arduino would be a good thing.


It sounds like a good idea, I likely would buy one. Comments

It can be bigger than a standard shield if needed.

Will it have feedback capabilities, i.e. connected to an encoder wheel so that you know that it actually moved when you told it to. This is can be very useful on CNC controllers.


There is one more configuration, which i think is most likely:

  • on-board atmega328, "built in arduino" -cheaper than separate arduino +shield -increased microstepping to 256 uS / step if needed Arduino bootloader loaded and pinouts available, like the "arduino pro" version, but with a 3 axis motor controller

Making it a separate board with an on-board Arduino processor would probably be the best idea.

There is already a user here on the forums who has made an Arduino-based CNC system, and put a small g-code interpreter on it (if you still had room to include such code, that would be a pretty amazing product!).

Also - if you could add the ability to switch on/off one or two other high-current loads, that would be perfect (so you can switch the spindle motor, blower or vaccuum motor, or coolant pump on and off).

Sounds like an awesome project!

You know that u get driver boards for stepepr motors (3-5 axis up to 3A) for just 60USD online. I used one of those and just run the wires on the manual interface to an arduino screw termial shield. I run a modified reprap code for gcode from matlab and I added a nano wii classic controller for manual control of it.

So 200USD sound really expensive when the specs are lower than already existing boards out there..

@skatun Which stepper driver board are you using?

I am using the Trinamic chipset. TMC428 and 3 TMC246. $200 is definitely a high estimate on cost.

The benefits of this controller over others on the internet would be size, very high level of resolution (256 microsteps/step), auto stallguard which can detect and set boundaries without switches, and implementation of complex control and settable trapezoidal velocity profiles with easy, high level communication.