TB6560 Microstepping Bipolar Chopper Stepper Motor Driver





Introduction: TB6560 Microstepping Bipolar Chopper Stepper Motor Driver

About: I was pfred1 but moved, changed my email address, and lost my password. I suppose worse things could happen.
In this article I will describe how I built stepper motor drivers for about $10USD a piece. Included will be a complete schematic, a sample board layout, and links to YouTube videos of the driver running under clock and computer control.

A few specs for the device:
  • 2.5 amps per phase
  • 24V operation
  • no load speed in excess of 2,500 RPM
  • microstepping modes
  • low total parts count per driver
  • reliable optical isolation
If you build these drivers I would appreciate it if you left feedback in the comments section so we all may benefit from your experience.

Step 1: Schematic

This is the schematic for my drive. A full sized file can be found at:


Step 2: Board

This is the board layout I came up with. I wasn't planning on etching it, I only needed parts on a board. I print this out, tape it to a piece of board, drill it, put parts in, then solder them point to point. When I design stuff I keep in mind that I have to make it too so I try to design things I am capable of making. Making this is a little tricky but it can be done. It works too, and I know no one is going to rip my design off for commercial exploitation. Good luck making these in quantity! I made three and that was enough for me for a while.

Link to full sized file:

Pop Quiz: Can anyone see what label is wrong with this? Compare to this:


At least I think that one is right now.

Step 3: Parts

The main component of this circuit is the Toshiba TB6560AHQ Stepper Motor Driver IC. I got mine at Mouser I think it was for $4.79 each. Apparently since I got mine the price has dropped even lower to $4.20 a piece.


These are brilliant little chips. You don't have to mess with surface mount, you can put a heatsink on it easily, they do everything you can possibly ask for with a hobby CNC stepper motor driver. Check out the datasheet:


What hotrods!

The next part of note is the optical isolators. I used Toshiba TLP521-2 because I found them for cheap someplace and they had specs I liked. I'm sure any dual optoisolator will do just fine in its place though. Just make sure your pinout matches it, or adjust your board layout accordingly.

Finally I used a 74LS14 as a buffer to square up my signals because optoisolators can be a little sloppy in that department. My driver board also has its own on board voltage regulator a 7805. I include reverse bias diodes because I have loads of diodes and they never hurt to have. If you want you can skip the diodes by the voltage regulator. Everything else on the board is a passive device, resistors, capacitors, DIP switches, you don't need the LEDs but I would have had to have tied off those unused gates if I didn't include them anyways so I threw them on there.

There are two components I would like to make special mention of on my drivers, the current sense resistors, R5 and R6. You will note there is no value given for those on the schematic because what you use depends on what motor you plan on running off the driver. The formula for determining the proper value for your resistors can be found in the Toshiba datasheet for the TB6560AHQ driver IC on page 10 section 6. Try to use non-inductive resistors for these as well. You will likely pay through the nose getting the right parts for this, more than the IC itself cost! So pay special attention when selecting these for your drivers. I'm using .25 ohm resistors to get me 2 amps per phase current. But you're going to have to figure out what you need for your motor.

Step 4: It's a Runner!

Here are a couple videos of my stepper motor driver going. In the first video I am using a 555 timer to generate clock pulses I feed directly into the step input of the driver. I turn it up until the motor stalls at high speed. Just something stepper motors all do.


I don't know if you could tell or not by just watching the video but it was screaming! Then it jumped up right before the video ended when it rotor locked. That motor weighs a couple of pounds too it is like a brick. All well and good if you want to make say a fan with your stepper motor but lets operate it under computer control now shall we?

In this video the motor will reverse over and over using a fast sloped clock at 800 RPM:


That is about what you can expect to drive your CNC machine at using this driver. maybe a little slower, maybe a little faster, it'd depend on the mechanics of your machine. That folks is what its all about!

The software I'm using to control the motor is called EMC2 and you can get it for free here:


There is none better.

In the future if there is any interest I may put up an article about my port buffer board seen to the right in the attached image. I am also planning on documenting the power supply I run my CNC project with. Though you can use whatever power supply you like. You really can't run these drivers directly from a parallel port because they need more signal current than you can get out of most PC parallel ports.

I'm sure I left out a million little details in my article but that is what the comments section is for. You're starting out with a lot more than I had with just what I've posted already. I went through a lot of trouble experimenting in order to get this circuit to perform as well as it does by looking the second image attached to this page. Also I have not implemented every possible feature of this device as I wanted to keep it simple to make. More can be done!

Really all you should need is the schematic diagram I am providing in order to build this project. I've built three drivers myself and they each run great. If you build this and it really isn't working well for you make sure your signal and power grounds on the TB6560AHQ are not connected directly to one and another but come off of the electrolytic decoupling capacitors C4, C5 and C6. That is what they are there for. They soak up all the noise the stepper motors make when they run so that noise does not propagate and interfere with your control signals.

 I had that problem myself with one of my drivers and it took me quite some time to figure it out. I know on the schematic all the grounds are running together but you cannot physically make this circuit that way or it WILL NOT WORK!

Good luck if you decide to make this driver for yourself. Although if you look closely at the picture of my breadboard you may decide I don't count on luck so much with that copper scatter plate I have attached to the TB6560 there. Ha! These devices do have a reputation for blowing up. I am not sure sure if it is well deserved though, as none have self destructed on me yet.

Do it right, use your head, and it should all work for you too. It works here.



  • Oil Contest

    Oil Contest
  • Clocks Contest

    Clocks Contest
  • Make it Move Contest

    Make it Move Contest

We have a be nice policy.
Please be positive and constructive.




dear friend
thanks a lot you made this IC clear to be understood
my question :

when i run blink code with arduino the IC run perfect with delay 1 ms at full step , when change to 1/8 or any value motor just vibrate and when the delay changed also vibrate

2 replies

I am in the process to make one of those too... (starting with the breakout board parallel port)... Are any of you still on the mood for those old things?...

I know, I know... those are old tech... now an arduino can take care of it... but, anyway...

Do symbol V means high voltage (220 VAC) and where he entered the circle Is the 200 VAC

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

1 reply

Dear friend

i am saurabh you can use 3.25 Amp stepper motor but it may be dangerous for this ic because peak Amp 3.5 of ic you use TB6600 and you can convert 6 wire into 4 wire if you want any help you contact me my mail id - hobbyajmer@gmail.com , mobile 9414355858

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

Hi fred,

I bought it from TB6560ahq and I try oriental step motor (pk246pda) but I can not get high speed for example 1300 Rpm (even under no load conditions). Can you help me please. How did you run at 2500 Rpm. My driver is 1PC x TB6560 3A Driver Board.

Thank you.

Best Regards.

Hi Fred, I see there is a circuit between your Parallel cable and driver board. What is it? Do you have a schematic for that?Could I sub it for an arduino?

1 reply

Any circuit that can flash an LED can run these drives too. I am pretty sure Arduino can do that too. You just have to supply a stream of on and off pulses at 12 milliamps to run these. The schematic for my Break Out Board is here:


Thanks for the interest, and the comment.

Thanks. The drives are running good in my CNC machine. So good they twisted the X axis frame. I am in the process of reinforcing that now.

program run on TB6560 ??? and this circuit configure to pc then running this circuit if i have 3 same type circuit so how to comnnect which pin no on pc side and chch pin i connect moter coz there is 5 pins but we need 4 pins

1 reply

The TB6560 motor driver accepts step and direction inputs. I use Linuxcnc on my PC. The TB6560 is a bipolar motor driver so it works with motors that have 4, or 8 wires. I don't know what a 5 wire motor is. It might be unipolar or perhaps 5 phase? Neither of those would work with a TB6560. Try to look up the motor's model number on the Internet to find out more information about it.

hi,i have a question,can you help me,i don't understand logicgate NOT at PS17 what to do?can you explain role of Logicgate NOT in your design?thanks

1 reply

There are no not gates in my circuit. I needed to tie off those inverter gates so I just daisy chained them together. Floating inputs generate noise. I have a lot of LEDs so I felt like using a couple up when I made these motor drivers. I'm pretty sure I explained that part of the circuit in my article.

This is a very good thread, and thank you for doing the work and sharing it. I have a couple of questions I'm hoping could be answered. I'm using a 24V, 600mA motor along with the TB6560 driver. I'm at a bit of a loss to understand the relationship with drive current into the motor; how the NFa and NFb resistors are set, and what current is observed on the connected power meter.

The motor I'm using is 0.6/600mA. I assume their torque charts are created around the motor "consuming" that current; not more, not less. Is that correct? And is that at idle, and under load?
So, if the stepper IC pins NFa/NFb are set with 0.68 ohm resistors, this should "limit" or "supply" the current to about 700mA. Does this mean in any step mode, full, 1/2, 1/4, etc?
How does the decay rate setting affect motor performance?
Finally, if you have set your IC feedback resistors for some current, let's say 1 amp, and your motor is a 1 amp motor, would you expect to see the power supplies current meter showing 1 amp, or does the nature of the current delivery to the motor shadow what the meter shows?

Sorry for the questions, just want to be clear on the interactions and settings!


1 reply

There is no short sweet way I can think of to say this so I'll give you a long winded version of it. Sorry.

Try to look at stepper motors as inductive coils rather than mechanical devices. Because from a motor driver's point of view that is all stepper motors are. So you are half right when you say, " not more" because the motor driver will limit the top current output it delivers. As far as not less goes, that is another matter entirely.

Not less and inductive coils don't mix. Which is to say that inductive coils beg to differ when currents try to change in them. The faster you try to affect this change the more they object to it too! What is worse is the bigger the coil is the more pronounced this behavior becomes.

Smaller coils perform better in stepper motors than larger ones do. Because those smaller coils are less reluctant to change than the bigger ones are. Change occurs with every step, step rate increases as motor speed does.

Your little motors have the unfortunate characteristic of possessing large coils. How can this be you say? They used thin wire and wound a lot of it up. Coil size is determined by the number of windings rather than mass or any other attribute. That is why the current rating for your motor is so low (the wire is thin) but the voltage rating is so high (the wire is thin but it is long). Your motor also has high resistance as a result of it being a long thin wire. But resistance isn't the biggest issue you face, your motor's inductance rated in Henrys is. That inductive reluctance is what your motor driver is going to have to fight against to get your motor to perform at speed.

It is a fight no motor driver can win. On the bright side your motors will be brutes at low speed. Well compared to how they are at higher speed. Everything is relative.

To sum this section up steppers don't so much "consume" current as they reject current in operation. This is why the big boys run servo motors. Servo motors are "normal" steppers aren't.

Current is controlled irrespective of step mode.

The higher the decay the higher the power. Decay is like pull added to push, 0% no pull 100% as much pull as push effectively doubling power.

Connect an ammeter to a stepper motor and from dead stop to full speed you will see the current drawn decrease. This is why stepper motors ultimately stop. They simply run out of power to keep going. It all goes back to inductive reluctance and a diminishing time window to feed power to the coils.

I hope what I've tried to convey helps you out. I know I didn't get a lot of this stuff until I had some hands on with it all. A lot of it is backwards to the way one might think it works.

Where did you get those beastly heat sinks? I just got my components in yesterday and am starting this project. I don't actually have a CNC machine built yet but I'll get to that later. Do you think if I just doubled up a pair of these http://search.digikey.com/scripts/DkSearch/dksus.dll?WT.z_header=search_go&lang=en&site=us&keywords=345-1021-nd&x=0&y=0 with the TB6560 I'd be alright? Also, how were you able to test on a protoboard? The pin configuration on the TB6560 isn't very prototype friendly. I'm thinking I'll have to solder it just to test. Thanks for all of this, its great!

1 reply

I'm sorry it took me so long to get back to you but this site is no longer sending me any email notifications whenever comments are posted to any articles I have made.

I cut those heatsinks from one heatsink that was on an old power supply. I wanted them all to match so cutting them all from one bigger heatsink was one way I could do that.

There is a picture here of the circuit breadboarded:


In it you can see that I soldered wires to each lead so I could plug each wire into the breadboard. No, it wasn't easy.