Low Cost Toshiba TB6600 Driver Board

There are several variations of of the low-cost Toshiba TB6600 Motor Drive board. The one I found “most discussed” in the usual forums is the “HY-DIV268N-5A“. I am aware of 3 versions of this model: “old version”, “current version” and “newer version”. The “current version” is what I recently purchased.

Old HY-DIV268N-5A

This model is no longer available. The main discussion can be found here [link]. The main complaint is the reduction of torque while the pulse is in the low value: “The real error is in the circuitry for idle current reduction, the components winch define the delay are a 2K resistor and 1nF capacitor. Their time constant is 2 µsec, this means that the drive will go into standby mode approx. 2µsec after receiving a step pulse” [link]

A proposed solution is to keep pin 3 always high [link].


Current HY-DIV268N-5A

If you purchase one today, this is very likely what you will get.  This version attempts to fix the lost of torque by adding a 74HC123 to extend the pulse holding torque (logic chip at the left side of the board) and explained here [link].

Unfortunately, the input opto-isolator have been replaced with slower models (4N25) which limits the frequency of the the input clock. This may or may not be a problem depending on the GRBL settings used.

There is a mod to this board as explained here [link]. I plan to do this mod. (Since these are the boards I have and I purchase these before finding out the “newer” version below)


Newer HY-DIV268N-5A

This model seems an update but of lower availability. I found it in AliExpress and only by looking at the comments from customers. Externally, you may identify this model because the case has an updated brand logo [link]. Look at the customer photos.

This model fixes the slow speed of the input opto-isolator (see the 8-pin device at the lower right side of the board. It also adds 4 diodes to the output lines driver the coils of the motor to protect the board (from back EMF?). However, I have not seen reports of boards being damaged because the lacked these diodes, the datasheet does not recommend using them and some posts advise against them



I have decided to mod the board by replacing the input opto-isolators with faster models and while at it, adding the following mods:

  • Input power capacitor with higher rated voltage capacitor. Currently it is rated at 50V which it is too closed to the rated max operating voltage of 42V-48V
  • Current sensing resistors. replace with higher power resistors. Some have reported failure with these resistors. Also for the OX CNC, the recommended setting in GRBL is to have the motor powered all the time, thus having high current through these resistors at all times

Other things to fix:

  • Thermal contact of the TB6600 to the heatsink: use fine sand paper to flatten the surface of the heatsink and reapply thermal compound
  • Mounting screws: add washers to the mounting holes in the TB6600 to avoid chipping the case

Removing original components: C7 (input power capacitor), C2 (optional), R6, R5 (current sensing resistors), SP and DIR (opto-isolators).


Replacing the opto-isolators

According to the published  mod [link], the 4n25 can be replaced with the faster 6N137 on the same footprint, but with pins 1 and 8 “floating”, removing the resistor connecting to pin 6 and applying power to pin 8. I am making an adjustment to this mod by leaving the resistor connecting pin 6 and just removing the pin connection to pin 6 in the header as shown below (you can also cut pin 6 in the 6N137 for the same effect)


The upgraded components installed: higher rating (63V) input power capacitor and higher power rating current-sensing resistors


6N137 faster opto-isolators. Note the power supply capacitors as indicated in the datasheet [link]





Testing the Motor Drivers (with the motors)

Wiring diagram with the RobotDigg NEMA 17 motors


In order to reverse the rotation of the stepper motor one needs to swap the polarity of ONE of the coils as explained here [link] and shown in the following two diagrams.

MotorWiring4 MotorWiring4-001

Just in case something might be wired incorrectly, I first tested one of the four driver boards. I also used a laptop power supply instead of the Delta supply I purchased because it is more compact and more convenient for testing.


It works!



Testing GRBL in Arduino Board (Without the Motors)

Once you make sure your Arduino board is working, the next step is to upload the GRBL software to the Arduino board.

I like to use the “standard” Arduino method to upload code. For that we can use the GRBL library that Protoneer put together: [link]. I copied the following instructions from the Protoneer website:

We have created an Arduino Library of the popular GRBL g-code Interpreter. A great little application that turns your Arduino into a very capable CNC machine.

This library makes it so much easier to install GRBL onto your Arduino. No more issues with making HEX files or trying to find a way to upload the Hex file to your board. Simply install the library and open the right example sketch for your Arduino.

How to install it:

  • Down load the library from GitHub : https://github.com/Protoneer/GRBL-Arduino-Library/archive/master.zip
  • Unzip the library and copy the main folder into the “Libraries” folder in the folder you installed your Arduino software. Eg. C:\arduino-1.0.3\libraries\
  • Rename the folder to “GRBL”. (This will stop the Arduino IDE from complaining about the long folder name)
  • Open up the Arduino IDE.
  • Click on the following menu : File -> Examples – > GRBL (or what ever you renamed the folder to) -> ArduinoUno
  • Upload the sketch to you Arduino UNO board.

If you are interested in the source code, its available at https://github.com/Protoneer/GRBL-Arduino-Library

The GRBL code is 27K in size. The Arduino still has some space (5K) to do “other things”. For now there are no “other things” to do.


Next is to download “GRBL Controller”. This software will allow manual sending GRBL to the Arduino


In order to test the Arduino/GRBL, you need an LED. You can test all the DIRECTION and PULSE pins (pins 2 to 7) by clicking on the arrows in GRBL Controller and observing the LED (it will turn on/off). For the PULSE pins, the LED will be much dimmer than with the DIRECTION because the signal on the PULSE pins is a pulse rather than a continuous level.


Here is LED connected to the X-Axis Direction pin (pin 5). When you click the horizontal arrow in one or the other direction the LED will turn on/off.


Testing the Arduino Buono

The Arduino Buono R3 is an Arduino UNO clone. It is designed to behave exactly as the Arduino UNO R3.


I wanted to make sure it is a fully fully functioning before I test the rest of the system.

1- Plug the device to a USB port with the included micro-USB cable. Immediately you will see that the OS will recognize the device and attempt to load the Arduino UNO driver. If you do not have the Arduino software installed, the computer will not find the device driver


2- The next step is to check the FW version, and ensure it is version 0200 or newer (check on the device manager for “Arduino UNO”). The manufacturer website has the instructions to install the latest firmware [link]



3- Download the Arduino software and install it. It will also install the USB driver.


Confirm that you want to install the Arduino USB Driver.


After installation, the Arduino UNO will be recognized as a periphery device. In this case a serial device in COM3


4- I like to test with the “BLINK” sketch. Open the sketch in the Arduino software and upload it to the Arduino. If everything works as expected, the device should be fully operational.


Protoneer CNC Shield

Just received the CNC shield from Protoneer [link]

I like a modular approach to the electronics (rather than a single board with the motor drivers or even with the microprocessor). I rather replace one component rather than the entire board. In addition, in this approach, all the components are pluggable, allowing very easy replacement. Further, as the technology advances, components can be upgraded or reused.

Especially, I like to use off the shelf Arduino or Arduino clones. These boards are now very inexpensive and are being improved all the time. In this build, the Arduino clone costs only $10. You can see more of it here: [link]



The standard build is to solder all the components on the top side of the shield. I plan on soldering some of the components on the bottom side in order to allow more space under the driver boards for better cooling. In order to do this, one must find a way to increase the space between the shield and the Arduino. This can be simply accomplished by installing some female headers under the board (instead of the male pin headers)




Clearing the components under the driver boards should allow better air circulation for better cooling




Because we are going to be soldering on both sides, one must do some planning in order to allow sufficient space to solder the pins (if you don’t plan, some component may not leave enough space to solder.

First, solder the jumper and the pull up resistor on the bottom side of the board.


The 4th driver (driver A) will be the same as the Y axis since Shapeoko 2 has dual motor on the Y axis. Since I don’t plan on changing it, I hardwired the configuration of driver A to the Y-axis.


Next are the micro-step pins. The best way to solder this is to assemble them into “modules” with the jumpers in place. These are soldered on the bottom side of the board to allow more space under the driver boards.



Next, we solder the socket headers for the driver boards on the top side of the board. Again, the best way to do this is to assemble modules. This will keep the headers straight.


Here is testing out placing the headers for soldering (this photo doesn’t show the micro-step pins that should be soldered already)


I found that assembling the headers as shows below is a better way because the edges of the pin headers are jagged and if you butt them to each other, they may not fit perfectly well resulting in slightly slanting the socket headers.


Perfectly aligned…


Note: if you are installing pin headers for the power out (the 4 pins next to the motor drivers) you can install them before the driver board headers. I am using 4-pin lock sockets so I will install them afterwards.

Now is also a good time to solder the pin headers to the driver boards. Install the pin headers to the socket headers and just place the drivers boards on the pins.





Next, I installed the power output locking sockets. I had these already so why not use them. Unfortunately the space between the driver boards is too small, so I had to cut the locking lip for 2 of the 4 sockets.



Next is soldering the power supply decoupling capacitors. These are to ensure clean power to the driver boards. I also installed a small value film caps as additional decoupling (I just had these around). After the caps, the socket headers to plug the shield to the Arduino are installed.



Just like before, setting the socket headers on the Arduino, makes soldering a breeze…



The rest of the pins you can install later if needed.

Here is the completed Arduino-CNC shield-Driver board module.




UPDATE (JAN-9-2018)

This board is v. 3.00. The current version is v. 3.51 [link]

New with Version 3.51:

  • Added circuitry for End-Stop and Probe signal filtering. This eliminates false triggers and makes it possible use non-shielded cable for end-stops/probes.
  • Bigger Solder pads making it easier to assemble.
  • Probe pin labels have been updated to make it easier to install a probe.

Here is the version history from the protoneer site [link]

  • Version 3.10+
    • Added Support for GRBL 0.9v with PWM Spindle.
  • Version 3.00 (4 Axis)
    • Enlarged board to add a 4th Axis that can clone the X,Y or Z axis. With a 4th option to use pin D12-13 to control it.(Setting up the 4th Axis)
    • Added a breakout header for all the Axis’s.
    • Added a communication header for UART (Serial) and I2C.
    • Added the a connector for an optional fuse.(Fuse not supplies as it needs to be selected for the current that will be used.)
    • Capacitors are mounted horizontally giving more clearance between them and the stepper drivers. Good for ventilation.
    • Added a pull-up resistor on the axis enable pins. This prevents the pin from being in a floating state.
    • Added 2 mounting holes


Shield v3.0 and GRBL 1.1 – Z- (Z minus) is actualy Spindle PWM/EN. It is on Arduino D11 pin. PWM enabled with $32=1. [LINK]

V3.00 only supports GRBL v0.8 – Firmware -> https://raw.githubusercontent.com/grbl/ … z_9600.hex. The Latest V3.51 supports GRBL 1.1 [link]

I have bought CNC shield v3.0 but in GRBL ver 0.9+ are pins D11 and D12 reverse. I need control spindle on/off via Gcode and I’m using limit switches too. Is it possible to run CNC shield v3.0 with GRBL ver 0.9, when I simply connect my spindle control to pin for limit Z axis and limit switch for Z axis to spindle pin on CNC shield? Or there is a catch (some resistors, capacitors and so on… in board logic of CNC shield )?  –> I have tried and I confirm, that works perfectly!Thanks. [LINK]

Limit Switches

Got my limit switches…


It says “made in Japan”… Lets see inside…


The inside is not bad. Sturdy components, the conduction path is spring loaded. Can’t see anything that could go wrong…


Took it totally apart (and was able to put it back :-))


Modding the DW660

Opened the Dewalt DW660

Just remove 4 screws (and the collet first). The rotor does not fall out, unless you pull it out. It appears that the entire shroud is not necessary unless you want to keep the spring-loaded rotor hold-down device built into the shroud.  You just need to replace the 4 screws with shorter screws.



With the switch and cable housing removed. The motor part is pretty compact.