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]

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

MODDING THE BOARD

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

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)

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.

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.

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.

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.

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.

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

BUILDING THE BOARD

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…

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]

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.