I developed an obsession with laser engravers and CNC routers and 3d printers. I first bought a Printrbot that worked perfectly out of the box. For two years I played with it, adding minor upgrades like a heatbed. I decided to print myself a laser engraver that used NEMA17 stepper motors. After a few tries, it came out nearly perfectly. I used an Arduino Uno with the super cheap GRBL shield and A4988 drivers available on eBay (<$10 worth of electronics to control this project). I never had an issue.

Following this success, I decided to get a CNC though. With 3A 24v NEMA23 steppers, the intention was to use the exact same electronics and just turn up the little power controls on the stepper drivers. This caused nothing but problems, and after hours of frustration at these little, underpowered devices, I decided there must be a better way. But I still wanted to use the Uno and the GRBL shield from eBay because they had worked flawlessly on the laser engraver.

After hours of research, I discovered cheap $5 single-axis stepper drivers on eBay called the TB6560 Stepper Driver. I ordered up 5 of them and fell in love a couple hours after setting them up as they fixed all my problems. After setting them up, I decided to try one out on my second 3D printer (a cheap delta on which the extruder stepper motor skipped during fast printing). Of course, it worked great. As there was almost no documentation anywhere online, I set out to make this instructable.

The Important Part (TL;DR): The A4988 stepper driver sucks for many reason. The TB6560 single-motor driver board (not one with a parallel port that is designed as an all-inclusive controller board) is cheap and great! The RAMPS/GRBL driver/breakout boards, when connected with an Arduino and have the GRBL/RAMPS firmware, work great and have widespread support. This instructable goes through the wiring procedure for using all of the same electronics as if you used an Arduino/RAMPS/GRBL/A4988 (obviously not both RAMPS and GRBL), but replaces the tiny A4988 with a large, useful driver called the TB6560. It is rather simply, and makes everything less self-contained, but overall it will significantly increase torque and ease of configuration of larger motors.

Step 1: Required Parts

1. All of the parts required to build a CNC or 3D Printer (way beyond the scope of this tutorial). The important part for this tutorial is the stepper motors.

2. Either a RAMPS Shield for an Arduino Mega (designed for 3D printer control) or a GRBL shield for an Arduino Uno (designed for CNC control)

3. Either an Arduino Mega or an Arduino Uno (depending on the decision made in step 2)

4. As many TB6560 controllers as you have stepper motors (plus maybe an extra in case you accidentally break one)

5. Male to Male header pin cables (pack of 40 is sufficient)

6. ~18 to 24 Gauge wire

7. A board to mount everything on, as well as screws to mount everything (I'd suggest getting this from a hardware store after you have the rest of the parts to view spacing, etc.)

Where to buy: Everything listed above (with the possible exception of the mounting board) can be purchased on eBay (it's where I got all my parts).

<p>I have one of these drivers and a Nema 17 Bipolar 40mm 64oz.in(45Ncm) 2A 4 Lead stepper. (https://www.amazon.com/gp/product/B00PNEQI7W/ref=od_aui_detailpages00?ie=UTF8&amp;psc=1) Does anyone have any advice on how to connect to a Raspberry Pi to control it? I'm not doing anything complicated, just turning a specific number of steps at predetermined times. Right now, I have a 28BYJ-48 5VDC stepper motor, and it doesn't have enough torque for my application. Any Thoughts would be appreciated.</p>
<p>Very well description. I also converted a china 4030 router to arduino and these drivers. I read that it wont kill the driver due a mistaking wiring of the motor. All that happens seems to be strange behavior or noises. It also seems the driver is proofe against short circuits. </p><p>Never the less i can add one warning due my own experience. I killed some drivers by loosing the contact or one wire to the motors. So it's very important to have the motors secure and well connected. This point is not protected by the driver. </p>
I want connect this two components. How can i do. Thats very helpfull.. can you explain that....
<p>When i connect the power supply to the drive, the motor just starts spinning by its own. Do you have any ideia why this happens ? Ty</p>
What controller board are you connecting it to? Are you sure it's a stepper motor? If you can provide more details I may be able to explain it. Perhaps it's some sort of auto-homing feature that is automatically run (based on the firmware you've chosen).
<p>Nema 23 --&gt; TB6560 --&gt; arduino uno --&gt; GRBL v0.9j<br> i did it just like you explain in your tutorial, but when i connect the power supply the motor just starts spinning with no control with a lot of vibration and making a lot of noise. Then when i somehow manage to get control of it, it only spins in one direction. I really don't know why ...</p>
<p>I found your instructions very helpful.</p><p>I just want to make sure I understand Step 3 correctly. The EN- should be connected to the GND power of the power supply, not the GND of the arduino? right?</p><p>Thanks again.</p>
<p>This is how to connect to and from the TB6560. See picture.</p>
This actually doesn't matter. The problem was that I had run out of GND wires from the Arduino had to resort to taking one from the power supply. They work the exact same way! Best of luck to you!
<p>Hello buddy, can i use 3.25Amp unipolar six wire stepper motor with TB6560 shield. Please replay fast its argent</p>
So the answer is most likely yes.<br><br>The TB6560 can only deliver up to 3A, but that won't make much of a difference. You could look at the TB6600. It's more expensive and doesn't have quite the same board layout, but it functions the same with amerage up to 3.5A I believe.<br><br>Just note that this is not in any way a shield. A shield attaches to the top of an Arduino. This is a controller board, but you could possibly call it a breakout board.<br><br>In terms of 6 wires, it's nothing I've experimented with. However, I believe that you can drive them with a 4-wire driver like this one. This should drive both uni- and bi-polar steppers. You'll have to do a little more research. What is the application for it? Could you look at using 4-wire NEMA23 steppers available for $25ish on eBay? That's what I use with my machine and it works great.
<p>As answered in my post, yes you can use a 4,5,6 and 8 wire stepper, see the pictures i posted, the way to find out witch ones you need is quit simple as in this post. </p><p><a href="https://www.instructables.com/id/Arduino-6-wire-Stepper-Motor-Tutorial/" rel="nofollow">https://www.instructables.com/id/Arduino-6-wire-Stepper-Motor-Tutorial/</a></p><p>Works the same with 5,6 and 8 wired steppers so you can salvage motors from old devices that use steppers and it will save you a big amount of money. The NEMA thing is some fashion thing i think, really all the engines i use are old ones and working great.</p><p>About the breakout board, i use a five axis breakout board, easy, cheap and you can if you like set up some hardware end stops.</p><p>The TB6560 is a stepper driver and not a breakout board.</p><p><br></p>
<p>You can use a 4,5,6 and even 8 pole stepper, just find out the common, these do not connect to anything.</p><p>On the first photo you can see i used a 8 or 6 i don't know exact, but there are only 4 wires used. The second picture shows the TB6560's powered by a computer power supply and controlled by a 5 axis breakout board. On the TB's you also see 4 wires out to the steppers, the other side with more wires is from the breakout board and power supply.</p><p>For the Amps, when it is not heavy used and everything moves smooth it probably wont use 3.25Amps, when it has to do a lot of effort to move then it will burn your board.</p>
<p>Is it possible to use NEMA 23 bi polar stepper motors with operate at 8.6 V with this driver? </p>
I believe the minimum operating voltage for this is 12v (and the max is 35ish). You could try and see if it works with that low of voltage, or you could try running the motors at 12v and see if they survive. I doubt anything bad would happen as motors typically work under a large range of voltages as long as their amperages are set appropriately using the switches on the controller board.
<p>One more thing, is it safe to change the configuration on the TB6560 board while everything is running? or should I power everything down to do so?</p>
You should be able to change the configuration just fine. I wouldn't do it while the motors are running, though (except for maybe the amperage settings as you'd be able to watch the motors physically gain more torque). Just make sure that if you use a screwdriver to change the little switches, you don't accidentally slip with the screw driver and short something else out. If it doesn't seem like a new configuration option was applied, restarting everything isn't a bad idea.
<p>Looks like we've had similar journeys with stepper drivers. I'm really, really tired of worrying about them. Now, I'm not great at this stuff, so maybe I missed a couple of steps. BUT, at the point where you're piggybacking on the CNC shield, why don't you just toss the shield and interface with the arduino directly? <a href="https://github.com/grbl/grbl/wiki/Interfacing-with-Grbl" rel="nofollow">https://github.com/grbl/grbl/wiki/Interfacing-with...</a></p><p>Adds a bit more complication in other ways, but I'm going to give it a shot when my &quot;test unit&quot; comes in.</p>
So there are two reasons I'm piggybacking on the shield: one is because with my RAMPS setup with the 3D printer, there is no other option. All the bells and whistles that are on the board (extruder heaters, normal motors, etc.) make it so that wiring everything up without the board is nearly impossible. Seeing how I only needed to swap out a single A4988 for a TB6560, it made the most sense to do it with the method described here. It is therefore compatible with anything that uses an A4988.<br><br>The other part that comes into play here is that all the endstops are easily connectable through the shield. All the spindle enables and the coolant controls are easily accessible. The reset switches and feed holds, etc. are easy to hook up to. Even each axis is broken out quite nicely (so when I want to do a minor tweak 5 months from now, I won't have to pull up all the documentation to figure out which pin is X/Y/Z STEP/DIR. In reality, I lied a little bit about plugging the STEP/DIR wires right into the A4988 breakout pieces...on the left side of the GRBL shield, there is a breakout of all the STEP/DIR pins...that's where I plugged everything into. The enables are broken out nicely within the motor driver breakouts too though, which is another reason it's easier than going right off of the Arduino's output directly. In the end, after all is said and done, you'd get the exact same result (with maybe a little more confusion, maybe a little less depending on how things go) either way you decide.
<p>Thanks for taking the time to respond! You're right--I went that way. Finally able to use Protoneer's pi hat! Theoretically! Real curious how well it will work.</p>
<p>thanks ive got one of those drivers, but never tried it out, now Ive got no excuss.</p>

About This Instructable




Bio: I like woodworking, as well as just about anything that has to do with computers or electronic software/hardware. I also like bitcoins, a respected ... More »
More by dapiguy:Using a Single-Axis TB6560 Stepper Driver with GRBL/RAMPS Make a Cardboard and Duct Tape Table Bitcoins: The Complete Guide 
Add instructable to: