Wiring and running TB6600 stepper driver with Arduino

A quick post about wiring TB6600 stepper driver which is based on TB6600HG chip. Here I use one without black plastic casing. It has model marking on the back that says “BL-TB6600-v1.2″. Stepper motor used in this demo is 23HS22-2804S (2.8A, NEMA23). Drive looks like this and it’s rated for 4.5A.

TB6600 v1.2 green PCB

TB6600 v1.2 green PCB

Looking for more info and photos? Check out my previous post about TB6600 drive where I removed heatsink covering the whole PCB. Feel free to check these drives prices on Amazon.

Wiring TB6600 and Arduino

Terminals on the drive are clearly marked and there is nothing much you can go wrong with. Power supply should be between 8V to 42V (by chip’s datasheet). Low voltage cut-off was actually around 6.5V when I tested it. You have to find paired wires of your stepper motor and connect them to drive’s  A+ A- and B+ B- terminals. From Arduino, I had to connect only 3 wires.

  • Arduino +5V to +5V on the drive
  • Arduino Digital pin 9 to CW (direction) on the drive
  • Arduino Digital pin 8 to CLK (pulse, step) on the drive

I left enable pin disconnected for testing.

Wiring TB6600 (4.5A drive), input / output diagram

Wiring TB6600 (4.5A drive), input / output diagram


Programming Arduino

I used AccelStepper library to make the motor run smoothly for testing. The program I used was Bounce which is one of the example code snippets from that library. Here is the final Arduino sketch I used to make the demonstration video at the end.

#include <AccelStepper.h>

// Define a stepper motor 1 for arduino 
// direction Digital 9 (CW), pulses Digital 8 (CLK)
AccelStepper stepper(1, 8, 9);
void setup()
  // Change these to suit your stepper if you want

void loop()
    // If at the end of travel go to the other end
    if (stepper.distanceToGo() == 0){
      stepper.moveTo( -stepper.currentPosition() );

TB6600 microstepping settings

Note about dip switches on board. When I hooked everything up for the first time- I didn’t get it working. I was bit confused. That happened because I had all dip switches in off state. I thought that if everything is off- there is no microstepping applied. But with TB6600 it means the drive is disabled. Here is a screenshot from the datasheet for quick reference. Grab the whole datasheet from here.

Screenshot from TB6600HG datasheet about microstepping and standby settings

Screenshot from TB6600HG datasheet about microstepping and standby settings


And here is the video of this combo running.

Content not available.
Please allow cookies by clicking Accept on the banner


  1. By Jay Yemul


  2. By Amirul


    • By Janar


  3. By Silent96


Leave a Reply

Your email address will not be published. Required fields are marked *

− 1 = 1

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.