Wiring And Running TB6600 Stepper Driver With Arduino - DIY Projects

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.

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.

If you are a beginner and want more in-depth info – check out my other post on how to drive a stepper motor.

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 stepper.setMaxSpeed(1000);//1100 stepper.setAcceleration(1100); stepper.moveTo(2000); } void loop() { // If at the end of travel go to the other end if (stepper.distanceToGo() == 0){ stepper.moveTo( -stepper.currentPosition() ); } stepper.run(); }

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

Find this drive on Amazon
  • Amazon.de
  • Amazon.co.uk
  • Amazon.com

Video

And here is the video of this combo running.

Tag » Arduino Uno Tb6600 Wiring