Introduction: Using a Single-Axis TB6560 Stepper Driver With GRBL/RAMPS

Picture of Using a Single-Axis TB6560 Stepper Driver With GRBL/RAMPS

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).

Step 2: Begin Connecting the TB6560 to the GRBL/RAMPS Shield

Picture of Begin Connecting the TB6560 to the GRBL/RAMPS Shield

This first step is quite easy. The picture on this step shows all the necessary connections.

On the RAMPS/GRBL shield, there are 2, eight-pin connectors for where the A4988 motor drivers are meant to connect. Recall that instead of the A4988, we are using the TB6560. Obviously they don't have the same form factor, so we have to improvise. On this step, 6 connections are required.

In the picture, you have to imagine that the A4988 driver fits into the GRBL board such that the Enable pins line up (on the RAMPS/GRBL shield there is always one marked "EN" so you can line up the orientation correctly). Insert the male-male header pins into the pins on the GRBL/RAMPS board, and then into the screw terminals of the TB6560.

The following connections should be made.

  1. Enable on GRBL/RAMPS to EN+
  2. STEP on GRBL/RAMPS to CLK+
  3. DIR on GRBL/RAMPS to CW+
  4. CLK- to GND (has to be a GND from the GRBL/RAMPS board)
  5. CW- to GND (has to be a GND from the GRBL/RAMPS board)
  6. EN- to GND (has to be a GND from the GRBL/RAMPS board)

Instead of taking three individual wires from the GRBL/RAMPS board to the TB6560 for the three ground connections (CLK-, CW-, EN-), consider just joining one ground wire from the board to all three GND's on the board using some spare wire. Each of these goes to an optoisolator to prevent against connection issues. Do not connect these grounds to the power input ground (explained in the next step) or you may cause interference and run in to issues in the future.

Step 3: Begin Connecting Power to TB6560

Picture of Begin Connecting Power to TB6560

In this step, two connections are made to the TB6560 from the PSU.

  1. Connect positive power to the +V on TB6560
  2. Connect negative power (GND) to the GND on TB6560

Additionally, connect positive and negative power to the input power pins on the GRBL/RAMPS shield. This step may not be necessary, but is still advised to prevent uncertainty in troubleshooting later (including ground loop issues, as well as powering hotends, etc. on a RAMPS board).

Step 4: Connect Motors to the TB6560

This step is the easiest. Cut and strip the connectors off of the stepper motors (if they came with them), and screw them into the four stepper connection terminals of the TB6560 (which should be the only four terminals without wires in them already). As many steppers are different (especially the cheap ones from eBay), refer to the datasheet for your stepper, or just experiment until it actually spins instead of making awkward noises during testing.

Step 5: Adjust Power and Other Settings on the TB6560

Picture of Adjust Power and Other Settings on the TB6560

This is the moment where you really start to see the advantage of the TB6560 over the A4988. Instead of trying to spin a tiny potentiometer with a screwdriver, praying you won't break it, you get to use slide switches to set the driver.

Silk screened right onto the driver are the instructions for its configuration, including the motor current (which should be taken from the datasheet of your stepper motor), decay % (which has to do with the amount of breaking vs coasting when the motor isn't powered anymore...play with this as there is no right/wrong answer and depends on your application), stop current (which has to do with the amount of current applied to achieve the decay %), and the excitation mode (which is the microstepping setting, which will also be configured in the firmware in the steps/mm options). Most of these settings can be adjusted at will, and even during operation to determine the optimal choices for your machine (all machines and motors may be different). The picture on this step shows all the final wiring configuration.

Step 6: Test It Out

Flash GRBL or some other firmware to the Arduino (not covered in this tutorial), put the shield on the Arduino, connect to it with the computer, and see how your stepper drivers work. Hopefully I explained everything sufficiently. As with any instructable, if there's anything that needs to be better explained or documented, feel free to comment and I'll do my best to explain. Enjoy!

Comments

primos23 (author)2017-11-06

Muy buen aporte inclusive funciona sin el driver pololu A4988. muchas gracias

m.mohanlalJ (author)2017-11-03

I hv arduino uno - cnc Shield v3-Dev 8825

Can in this combination tb 6600 or tb 6560 works instead of dry 8825

BurkayKirnik (author)2017-07-20

Is it any problem with using drv8825 instead of tb6560 in any project? I am making a cnc machine and I want to use drv8825, not tb6560 because its cheaper. I am not using Arduino btw. I am gonna use this:

http://urun.gittigidiyor.com/bilgisayar-tablet/cnc...

dapiguy (author)BurkayKirnik2017-08-05

The DRV8825 can't output as many amps, doesn't have as easy of mechanism for controlling the amp limit, and doesn't have as good of heat dissipation. For these reasons, it can't really be used to run powerful NEMA23 or similar motors, hence the desire for the TB6560.

JoeH165 (author)2017-04-26

Hello, so on the CNC shield you would leave the jumpers for micro stepping (M0,M1,M2) open and use the switches on the TB6560 to set micro stepping?

Thanks

dapiguy (author)JoeH1652017-04-26

That is correct.

dkwatson (author)2017-04-02

Very useful ...able. I too, have had great success with the Toshiba chip, both the unit you're showing, and its big brother the TB6600. The latter simply beefs up the spec from 3 to 5 A and up to 45 V. In reality this means less heat. I run a 3 axis, chain driven plywood cutter on an open-ended 1.5m bed with PrimoPal 57s, 24 V, 2 A, in the tropics, average daily temp 30C. Some minor issues with the 6560, no problems with the 6600. A nice unit comes from China, the HY-DIV268N-5A. Maybe 12 bucks a pop but have their own Alum housing with a heat sink about 4 times the size. My breakout board with the A4988s sits on the shelf waiting for me to replace the chips which have all burned out, past about 350 mA.

joecutolo (author)2017-02-28

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&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.

lathe_makeatio (author)2017-02-18

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.

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.

yasithi (author)2017-01-14

I want connect this two components. How can i do. Thats very helpfull.. can you explain that....

PedroGRamos (author)2016-07-16

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

dapiguy (author)PedroGRamos2016-07-16

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).

PedroGRamos (author)dapiguy2016-07-16

Nema 23 --> TB6560 --> arduino uno --> GRBL v0.9j
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 ...

scrooge_canavera (author)2016-03-25

I found your instructions very helpful.

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?

Thanks again.

This is how to connect to and from the TB6560. See picture.

dapiguy (author)scrooge_canavera2016-03-25

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!

Vikram SinghR (author)2016-04-12

Hello buddy, can i use 3.25Amp unipolar six wire stepper motor with TB6560 shield. Please replay fast its argent

dapiguy (author)Vikram SinghR2016-04-12

So the answer is most likely yes.

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.

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.

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.

AndriesS (author)dapiguy2016-05-12

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.

https://www.instructables.com/id/Arduino-6-wire-Stepper-Motor-Tutorial/

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.

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.

The TB6560 is a stepper driver and not a breakout board.


AndriesS (author)Vikram SinghR2016-05-12

You can use a 4,5,6 and even 8 pole stepper, just find out the common, these do not connect to anything.

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.

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.

DavidD331 (author)2016-03-28

Is it possible to use NEMA 23 bi polar stepper motors with operate at 8.6 V with this driver?

dapiguy (author)DavidD3312016-03-28

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.

scrooge_canavera (author)2016-03-25

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?

dapiguy (author)scrooge_canavera2016-03-25

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.

BrentR1 (author)2016-02-16

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? https://github.com/grbl/grbl/wiki/Interfacing-with...

Adds a bit more complication in other ways, but I'm going to give it a shot when my "test unit" comes in.

dapiguy (author)BrentR12016-02-16

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.

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.

BrentR1 (author)dapiguy2016-03-02

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.

liquidhandwash (author)2016-02-14

thanks ive got one of those drivers, but never tried it out, now Ive got no excuss.

About This Instructable

30,266views

56favorites

License:

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 »
Add instructable to: