TB6612FNG Dual Motor Driver Carrier problem

I used a 300 ma wall wart to provide the 5.5v.

As I mentioned in my initial post, the motor I was testing I ran from VCC as a a test and it ran fine; reversed the leads and it ran the other way. It is a tiny motor I was only using to test the motor control before I tried running something with more juice and a bigger motor.

The test Ben had me run was pure electrical connectivity based and I confirmed voltage and ground on all leads. According to the data sheet, it should have produced voltage on output pins. It did not. I am done testing.

So what’s the next step? I did a hardware check following instructions from one of your techs (Ben) and the board failed the test. Do I pack it and send it back? Please send me the info on printing a label.

Hello,

If your board is actually damaged, it is worthwhile to try to figure out what caused it so that it does not happen to your next one. I was puzzled for a while about how you could have possibly damaged the board with such a weak power supply, but now I have a thought about that - take a look at this quote from the TB6612FNG datasheet:

Your program is designed to slow down the motor and then reverse its direction. While decelerating or reversing, the motor & driver can together act as a generator, sending current back in to your power supply. This current can be as high as the stall current of your motor, even if the motor was never stalled. On other boards, we have seen this cause voltage spikes of more than ten volts on the motor power supply, and that could easily have happened to you, especially since the “current sink capability” of your power supply is definitely quite small. Normally, if your motor supply spiked up to 13V, it would not be a problem, but since you were also using that as your logic supply, it could have overloaded the logic inputs of the chip, causing all kinds of damage.

This is yet another reason that small linear regulators are almost never suitable for driving motors. I highly recommend using a motor supply rated for the stall current of your motor and a separately regulated logic supply.

-Paul

There will be no next one. If I return it, it would be for credit and I would get something else. I have abandoned the idea of using the low end RC truck chassis I was planning to use it with and instead bought a higher end RC truck chassis with an ESC and servo that I will control with PWM. I have had good experience doing that on another project, but thought I might get by with a cheaper prototype for this one, but the hassle and frustration factor is just too high.

Should I put it in the trash or the mail?

BTW, my other recent purchase from you, a 5W 5V regulator, rocks! It is in use on a different project where I had too many components sucking up system power on an Arduino MEGA. My frustration is more with technology than Pololu, but you are a far easier target to aim at. That bit from the data sheet does make sense and when I consider that forward was working and then quit after I kept trying that sketch, I guess it is likely that caused it. That wasn’t my first reaction. The first thing I did was shake my head in disbelief and hook the little motor up to my meter and spin the shaft between my finger and thumb. I got voltage and it rises with speed.

I don’t like the answer, but thanks for getting me there…

Hello.

Thanks for the extra comments in your latest post; I am happy to hear that your experience with our products has not been entirely negative. Regarding your return question, our return policy (for some kind of credit or money back) is limited to unopened items. We might want some products back if it we thought they were likely to work fine or if they were a new design whose failure we wanted to study more, but in this case, we trust that your unit is damaged, and we don’t expect that there’s much to learn since this is a simple product that has been out for some time.

- Jan

This has been puzzling me for a while too. L298 and SN75440 designs are required to have external diodes to deal with back-EMF, and people seem to use physically large ones ( dfrobot.com/image/data/DFR0004/Layout.pdf ). The TB6612FNG like the L293D has internal diodes but the size disparity makes me wonder about on-die diodes. The sparkfun discussion on the SN75440 has the dry remark:

I’m abusing/wasting motor controllers a different way right now (uh, PC fans; doing a single high-side drive per channel through an RC filter, so I have my own problems and suspect I need to clamp at least once externally.) But for people using the H-bridge the right way, yet under somewhat abusive testing conditions, would external diodes be worthwhile, or as useful as racing stripes, or somehow harmful?

Hm. Should I stop using the 9v transistor battery as a test supply for small loads? (EDIT: yeah, in the FAQ that they probably won’t work for real motors, but it doesn’t say “don’t”.)

BTW, don’t feel compelled to say anything about my app; “I bet you’ll be ordering another controller shortly” is as fine response as any. If I expected a design service I’d pay for it. :slight_smile:

Hello,

I do not know why people continue to make new boards based on the L298 and SN754410, but if you are working with those chips, you should definitely be careful about all kinds of things.

The right way to do an H-bridge in most situations these days is with MOSFETs, and MOSFETs have built-in diodes that do exactly what you need when they are connected in an H-bridge configuration. They are probably good enough for most applications, but you do not have to guess - just look up the datasheets for the MOSFETs you are using and make sure that the body diode can handle the kinds of currents that you will be putting through it, and that the chip can dissipate the resulting power.

By the way, the problem I was referring to is not really related to the diodes at all. When you are trying to slow down a motor with deceleration, a large current builds up (as much as the stall current of the motor) in the motor coils and braking circuit during the brake phase of the PWM cycle, and that current is switched into your power supply during the on phase. The best defense against that is probably huge capacitors all over the place and having a regulator between your motor supply and your logic supply. A high PWM frequency should also make it better (the example in this thread used a very low frequency.)

Anyway, I do not know exactly what you are doing, but if you are PWMing an H-bridge, and if you will be decelerating a motor with a stall current of more than 1A or so, it would be informative to put a meter on your 9V battery and watch what the voltage does under different deceleration conditions.

-Paul

Just a followup…

While I do believe you may have figured out what killed the module, the more I think about it and discuss it with others, the more I think it is unacceptable for you to sell a product that is that frail. The spike had voltage that possibly went as high as 10 or 12, but the current was milliamps and probably well under 100 (likely under 20; this was a tiny motor; my meter can’t even detect it spinning on anything but volts). If there were some notes/warnings included with it suggesting any sort of protection instead of just specifying the pins as VOUT I might feel differently.

The code I ran that seems to be responsible is from the Arduino forum and lots of users have run it to test then adapted it for their use. But their TB6612FNG boards were red instead of green and they worked instead of dying.

Also…

and a high frequency and everything in between. The loop that goes up to 100 is using percent.

It sounds like you want things to magically be arbitrarily good. Electronic components can be very fragile, and it’s just pointless to get upset about a pin with an absolute maximum of 6V not taking 12V. What do you think is different about the Sparkfun version? Do you think it’s unacceptable for grocery stores to sell eggs?

I realize it’s frustrating when parts break, but please understand that we have sold literally thousands of each of these products (the motor driver carrier and RS-232 adapter), and you are in the extremely small minority of people having problems with it, and at least some of those problems could be due to easily identifiable abuses you inflicted on the parts.

- Jan

I expect to be able to exactly follow directions from examples of others using the same chips and have them work. I don’t think that is arbitrary. I was explaining the issue with the motor controller to an friend with an engineering background and he told me he doesn’t buy it for a minute. Even the Fio’s pitiful VCC would sink the voltage from this tiny motor. The Fio did not crash nor suffer any damage. The explanation about the motor driver has some basis even though it seems a stretch. Your explanation of the serial problem is laughably absurd.

You seem to be confusing “duty cycle” with “frequency”. For duty cycles under 100%, your program is using a fixed, low PWM frequency (approximately 490 Hz).

I assume the people whose boards worked also used proper power supplies (in my experience, very few people try using such a woefully underpowered regulator to drive motors). Did the instructions you followed say to use the 3.3V output of an FTDI chip as your power source? If not, it certainly isn’t fair to say you were following the instructions of others “exactly”.

The red-vs-green distinction isn’t really relevant since both the Sparkfun and Pololu boards are just simple carriers for the same TB6612FNG motor driver IC (you can compare the schematics for the two boards yourself); for all intents and purposes, you are basically just directly using Toshiba’s motor driver, and we really do think it’s a great IC. We use it in a number of our products, and problems with it are very rare (I don’t actually recall anyone else who’s ever contacted us about a TB6612 driver failure).

- Ben

There was someone else even in this thread. Out on the Arduino board, there are some stories of failure with no answers and the wiring seems right. Others post sucess. Some are using VCC to drive motors and usually are told that’s bad form even though it is working, but it doesn’t seem to be a consistent indicator of failure.

here is an example:
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1268513899

I don’t know why the person didn’t contact you.

Hello,

Nobody else in this thread said that their TB6612FNG broke, and the thread on the Arduino forum that you linked to specifically says there is nothing wrong with the motor driver.

How do you expect us to be able to control the directions that other people write up? If they make some mistake or are unclear in their write-up, you could damage your board.

-Paul

It seems disingenuous of you to link to a thread where the person outright states “thus, there is nothing wrong with the drivers or motos. It must be something with my circuit.” and use it as an example of our drivers failing.

Using VCC from the Arduino to drive a motor is bad form, but note that the Arduino’s VCC can deliver close to 800 mA. You were using VCC from the FTDI adapter, which can only deliver a few tens of mA and is absolutely not meant for this kind of application. Can you link to anyone else who has tried to do this and had success?

And you still haven’t addressed what you think is different between our carrier board and the Sparkfun version. You seem to be using your one negative experience as proof that our version must be inferior, and that is not logically valid.

- Ben

You quote his conclusion but not his logic. He only tested the motors and assumed the drivers were good because it is mind boggling to think that he could try that many different ones and have them all fail.

Are you saying that the logical conclusion is that all four boards are defective? As I’ve said, of the thousands of these carrier boards we’ve sold, you’re the first person I know of who’s contacted us about breaking one, so the odds of this customer getting four defective boards would exceptionally low.

I know you want to be able to blame your troubles on a bad product and you’re looking for support for this position, but the justification just isn’t out there. This is a good motor driver made by a very respectable company (Toshiba). Our board is just a breakout board that makes the TB6612 easier for hobbyists to use. Aside from our board being more compact and having reverse voltage protection on VMOT, our board is the same as Sparkfun’s. If you look at the schematic, you can see there isn’t much to it:

All we’ve added is a reverse voltage pretection MOSFET and some VCC and VMOT power capacitors.

Can you even venture a wildly speculative guess as to what in the above schematic would make our board more succeptible to failure than Sparkfun’s? For that matter, can you find any way to criticize this product without having it be a direct criticism of Toshiba and their motor driver IC?

- Ben

Just for kicks, I went back and looked in detail at the thread you linked. The reasons for his problems are obvious if you look at the pictures he posted: he didn’t solder the header pins to the motor driver! This is absolutely not an example of having a motor driver “fail”; there is no reason to expect the driver to work while just resting on the header pins.

I’m sure there are other posts like this from people new to electronics having trouble using motor drivers (both ours and Sparkfun’s), but I’m willing to bet they can all be explained by things like bad code (it’s not doing what you think it’s doing), bad connections (wrong voltages on pins, bad solder joints, lack of common ground, lack of appropriate external pull-ups/downs, etc), or bad power supplies.

- Ben

1 Like

This doesn’t have much to do with the original topic, but what a great picture. Yeah, I know I’m thinking out loud about a market I know nothing about in front of people who do.

“There is little more dangerous than a programmer with a soldering iron or a hardware engineer with a C++ compiler.”

The Arduino ecosystem seems to be drawing in masses of people who wouldn’t have thought themselves able to make software interact with the real world, or that it was beyond their available level of effort. Back on USENET, veterans used to dread September because the start of university would bring a fresh crop of clueless new people each year who took ages to housebreak. When AOL added USENET access, it brought in a huge, constant flood of clueless people. The term that stuck was “Eternal September”. (Later we called this “the democratization of the Web”, but I’m getting off on another tangent.) (Edit: apparently so long ago I forgot whether it was perpetual or eternal September.)

Looking around the Arduino message boards, I see a lot of people lacking skills, theory, or other background knowledge that could previously be assumed if people were interfacing ICs to microprocessors. I’m one of them; I have a folk theory of voltage in my head, and sometimes I think about watts, but current is not something I have an intuition for (which means BJTs are magic.) It’s surprising how much you can do and get away with in Arduino-land with just a voltage mental model plus “put a current-limiting resistor here” which is stressed in detail as part of the ubiquitous initial LED control project. Probably “can’t hurt to add decoupling caps” is in the heuristics too.

You can also do a lot in Arduino-land without soldering, or just with the minimal ability to solder two leads twisted together. When I see a PCB lying on header pins on a solderless breadboard (great catch), I think “this person has probably never done PCB soldering.” Or maybe they have and it was a disaster and are trying to avoid it. Or they don’t know everything doesn’t connect as easily as a solderless breadboard/female header. (But Fritzing, bless its heart, makes it look that way.) They’ll get practice soldering on perfboard eventually. Using a purchased breakout board seems to be the only part of their getting off the ground that (should have) required PCB soldering.

Everybody and their brother seem to have their own “just plug and play” 5v/signal/ground module interfacing system for microcontrollers, but solderless breadboard is the only real common interface. A quick scan of the tutorials by the usual suspects shows plenty of “how to assemble a kit which incidentally includes headers” but all of the “how to use a PCB-based module on a breadboard” have a step ~7 consisting solely of “solder headers on”. This is the only time you’d need to solder in basic Arduino-land (and not totally trivial, given the pictures in sparkfun.com/tutorials/114 ). Maybe I’m overthinking and this is just solvable with a simple end-to-end project doc that says in large friendly letters “DON’T PANIC”.

In any case the market for prototyping parts now includes people who lack confidence in PCB soldering. They never did the LED christmas tree. It’s not clear this is a great submarket to sell into, but it’s out there. Some vendor of building-block breakout boards might try selling a few with optional soldered-on headers. (Maybe it already was tried and failed.) There are some people (maaaaybe me) who would be willing to pay for the increased fabrication cost plus the increase in shipping for packing a non-flat component, if the components came solderless breadboard ready. It’s like the next step above kit to assembled. What the cost would be (and the SKU overhead) versus demand price is beyond me. Probably most hobbyists will pick up through-hole PCB soldering pretty quickly, but it’s a leap especially with $10 irons. (Never mind that you could pay for a real soldering station with the savings from doing such easy assembly locally. But you could learn crimping too.)

Off in the PC modding world, people seem to be happy to pay for somebody else to do heatshrink on cables even though header-flavored Molex pin extraction is hardly rocket surgery. frozencpu.com/products/7639/ … able_.html is some kind of extreme. Not sure that level of…whatever it is…exists anywhere else.

I lack theoretical understanding of circuits, but solder skills I have. I can cookbook with the best of them. The trouble (IMO) is that with things like motor controllers, voltage regulators and shifters (probably no coincidence that those are the parts I have trouble with) you are dealing with inputs that are not TTL level and on’t come from a specific source. It is easy to suspect that they were out of range. OTOH, those types of boards are far less likely to have been fully tested because of the wide range of inputs they can take. The hard part is that I have to rely on info from others to get me through those parts and when engineering colleagues/acquaintances tell me that what I am being told by the vendor doesn’t make sense, I get really frustrated.

It sounds like you are still trying to deny your responsibility for the problems you’re having. To bring up the egg analogy again, what you are doing is the equivalent of dropping the egg, complaining that it broke, and then saying it was probably broken before you dropped it.

By the way, parts like these are tested quite a bit more than you probably realize. When a part has some rating, such as a 6V max, combinations of tests and design ensure that the part does indeed meet that specification, and in many cases, will substantially exceed it. That margin might in turn allow you to get away with poor practices sometimes, but other times, you’ll be less lucky.

- Jan