Dual TB9051FTG Motor Driver Shield with 2 12V Pololu Gearmotors

I have been trying to use the Dual TB9051FTG Motor Driver Shield with 2 12V Pololu Gearmotors with an Arduino. I have everything soldered together (see pictures below) and have it attached to my Arduino. However, when I try to run the demo program, I immediately get an M1 fault.

I saw in the documentation that fault conditions can be triggered by under-voltage, VCC over-voltage, over-temperature, or over-current conditions. I checked my input motor power to the board and confirmed it was at 12V, which is the intended voltage from my power supply. The rest of the conditions are hard to monitor at this point because the fault trips as soon as the program starts. Are there good ways to monitor the faults individually to know where my problem is arising?

Another interesting point is that I saw here that you can run programs without motors to still see motor indicator LEDs, but I still get a fault (and don’t see anything on motor indicator LEDs) even when I don’t have my motors plugged in.

Note about the pictures: I cut the trace between digital pin 2 and M1EN so that I could use pin 2 for an encoder, but in order to use the example, I rewired the M1EN so that I could use the default constructor in the demo.

Thanks in advance!


The soldering on your terminal block pins looks bad, so I would try to touch that up before proceeding. The Adafruit Guide to Excellent Soldering is a great reference.

Since you said that you are not seeing any LED activity even without your motor connected, let’s keep your motors disconnected until we see normal behavior from them. Can you verify that the driver is being enabled by using a multimeter to check that M1EN is high while your program is running? Also, is the M2 output working normally?

Could you link to the Arduino you are using and tell me what your power supply is?

- Patrick

Yes, I have verified that M1EN and M2EN are both reading high (5V) when running the program, but both motors are showing a fault with md.getM1Fault() and md.getM2Fault(). The arduino I am using is this IEIK one. I have used it in the past and have had no problems. The power supply I am using for the motors is this one and I am just powering the arduino through USB at this point.

I will work on the soldering for the terminal block pins, but I don’t believe they should be causing this error especially with the motors unplugged, correct? Just trying to narrow down for debugging.

Thanks for helping out!

Thank you for the extra information. Can you try measuring the resistance across each of the motor outputs without your motor connected and with your system unpowered? It might be useful to measure that both before and after you touch up your soldering if you have not done that yet.

- Patrick

Hi Patrick,

Actually improving those connections did end up fixing my problems and everything is working great now! I did measure the resistance across the outputs, but for some reason I seemed to be getting different readings with different multimeters, and also different readings just after the solder was added vs later that day.

Thanks for the help!