Arduino GPRS shield caught fire

Hi,

In short - I had my Arduino GPRS shield blow up on me. Catching fire and everything.

As this was obviously a serious malfunction, I'm trying to figure out what went wrong, get a better understanding of it all and see how I can avoid this in the future.

  • The capacitor on the GPRS shield (the red/orange block) exploded and got ripped off the board.

  • The Arduino board itself, although it still powers up fails to connect to a PC using USB anymore, so most likely something got killed there as well, although I don't see any physical damage.

  • The OBD2 Shield is also clean, but I cannot verify it at the moment.

The setup is an Arduino Mega board with the Arduino GPRS shield and an OBD2 Shield.

The setup is powered through the OBD2 Shield (12V input). That shield has a 5V regulator that can handle up to 150mA, some of it is used by the shield while the rest can power the Arduino board + other shields.

The docs of the OBD2 shield state : Use it with caution if you are sure your total power will stay under 150mA. (I guess I should interpret this as making sure the setup should not surpass 150mA ?)

At the time when the setup caught fire the following jumper wires were present that could have potentially short-circuited if they touched. I was in a hurry to test so I didn't check them properly as I usually do.

  • 2 wires (TX and RX) on the OBD2 Shield
  • 1 GSM TX wire on the GPRS shield
  • 2 wires (SCL and SDA) on the GPRS shield

Could a short-circuit on these wires have caused the GPRS shield to catch fire ? Or should I look in the direction of the power supply ?

I'd say power supply. You had a clean 12V?

These things can be tough to track down, since the event could have been a wiring or power supply error on your part, a transient event, a flawed component, or who knows what.

Can you get a picture? It might help trace the parts in the line of fire, but other than following the directions and double-checking your work, it may not be 100% possible to prevent similar failures. Somethings things just break.

The docs of the OBD2 shield state : Use it with caution if you are sure your total power will stay under 150mA. (I guess I should interpret this as making sure the setup should not surpass 150mA ?)

Which GPRS shield is it ? The GPRS shields I know sink far more than that at start-up and during short transmission bursts .

If you're talking about the Arduino GSM shield....I believe that's a 2200uF polarized capacitor you blew. Only two sure ways I know to blow polarized capacitors. What power supply did you use? What is the [u]polarity[/u] of the barrel connector?

Assuming you are talking about the Official Arduino Shield...

Looks like they used a Vishay 6.3V rated MnO2 Conformal Tantalum on the 5V rail. Unfortunately, MnO2-Tantalums need 50% voltage derating (or special handling after reflow) or they will fail short and ignite. So there isn't enough derating.

If they had used a 10V part or a Polymer-Tantalum (which only need 10% voltage derating after reflow), then it wouldn't have happened.

ddewaele: I'm trying to figure out what went wrong

Assuming you didn't cause a reverse polarity or an over-voltage event, you probably didn't do anything wrong.

In addition to my above post, I put this together to help explain why you (and likely others) will see the same thing happen: http://www.baldengineer.com/blog/2013/09/13/ouch-the-arduino-gsm-shield-has-a-pretty-serious-design-flaw-with-its-capacitors/

Thanks for all the responses. I really value the feedback.

Regarding power-supply :

It was hooked up to a car using an OBD-II cable. Pins were properly connected (ground and vbat) on the OBD-II shield. The OBD shield is designed so that it can be powered through that cable. It has been running like that before in the past for several hours straight without any issues.

Before it blew, The car was turned on (but the engine was not running). I did receive a warning on the dash that the car battery was low, resulting in the car turning off bluetooth , something I never had happen before. So something was draining power. I had the car turned on like that for about 20 minutes. I'll try to verify today if the OBD shield is still working.

Regarding the wiring :

The only wiring that might have been flawed are the pins I mentioned in the original post. I would assume that shorting those could cause damage to the pins, but I don't know if it could result the shield catching fire. I don't know enough about electronics in general to make such assumptions. In the flickr stream you can see a picture where the 2 shields are stacked. Notice the 3 wires that are not connected (but were replaced with jumper wires). These wires could have shorted in theory as I didn't clean them up properly. Again, if this could be the root cause I don't know.

I've added some other pictures here :

http://www.flickr.com/photos/48063721@N02/sets/72157635506958587/

Hello there folks,

I have this Arduino GSM module. Had some tests on it but did not used it extensively (e.g. for long periods of time). I didnt knew this aspect of tantalum caps as James pointed out. For what he stated and other reliable sources I checked it really seems there's a problem in the shield design in regard to that capacitor, so for me it's clear thats really the most probably cause of such incident. A friend told me other guy reported the same issue in the freenode's Arduino channel.

More info about tantalum detail:

http://www.kemet.com/kemet/web/homepage/kfbk3.nsf/vaFeedbackFAQ/C24799F84F99A11885256D91005E7F41/$file/Derating_differences_Ta_KO_AO.pdf

http://www.avx.com/docs/techinfo/newtant.pdf

http://dkc1.digikey.com/es/en/tod/Kemet/tantalumcapacitors_NoAudio/tantalumcapacitor_NoAudio.html

Salute !!

Wait... if a cap needs 50% voltage derating to be safe, ... uh ... why isn't it just rated at 50% of its "rated" voltage? I know you're not supposed to engineer up to the red line, but a 100% margin? That doesn't make much sense.

EDIT: Never mind. Read the well-written and very informative blog post linked above. XD

Hi SirNickity,

Yeah, it's all explained. Despite of that anyway I do concur with you that's not ideal (the ratings), because it's a know fact among experts and manufacturers. Being a general advise for MnO2 tantalum caps it sounds more reasonable to change these caps ratings. I mean, no deal if something is rated based on the theoretical specifications but these same specifications doesn't apply to real world (as you pointed, a 100% difference from the recommended). It would help preventing mistakes like what happened in the shield. Well I'm not sure if it was a mistake or what because I'm just new to this information and maybe there are more details to consider to really tag it as a error in the design.

Anyway it was the second report I heard about this one cap catching fire (and it blew for ddewaele). People are commonly much near the boards while prototyping, despite not the recommended way of doing it, such event can hurt someone's eyes or bring fire on unattended experiments, what can be dangerous. I hope Arduino team fix this on future boards and issue a warning at the official shield page about the issue (if its really the case and it can be confirmed).

Great piece of CSI sleuthing there, James. And thanks for those links, DanDare. Very useful info.

A quick back-of-the-envelope suggests that operating at increase the voltage rating from 6.3 to 10v would decrease the expected FIT (failures in time) by over 100-fold (134/1.05 = ~127).

Which (to me) actually suggests how safe tants are (when used appropriately, of course!)

Anyway, great thread. And condolences to the OP for your situation! But, on the upside, it obviously could have been much worse -- car fires are never much fun. (I'm clearly in "glass half full" mode today... :-)

BTW, 2200uF is a big value cap. What role does ot play in the circuit, just out of interest?

The other thing that occurs looking at those blackened traces near the voltage regulators is that some over-current protection in the circuit would not go astray.

pico: A quick back-of-the-envelope suggests that operating at increase the voltage rating from 6.3 to 10v would decrease the expected FIT (failures in time) by over 100-fold (134/1.05 = ~127).

This is a big misconception about tantalumed-related failures. FIT doesn't apply to this type of failure.

FIT applies to wear-out of a component. MnO2's dielectric breaking down due to de-rating is an infant mortality failure. Infant mortality is a result of incorrect design (usage), manufacturing defects, or material defects. It is not time related, as the name might suggest.

pico: Which (to me) actually suggests how safe tants are (when used appropriately, of course!)

The ironic thing about Tantalum is that if the dielectric layer is proofed (or healed) properly, it is actually an exceptionally reliable component. We have done HALTs that suggest the wear-out time to be on the order of thousands of years. In fact, we believe that the capacitive element itself will last that long, but the epoxy case won't.

pico: BTW, 2200uF is a big value cap. What role does ot play in the circuit, just out of interest?

Cellular radios need significant power to run. Its likely there to decouple the shield from the arduino's power supply.

Standard GSM uses 8 timeslots, and typically a handset/module will only use one timeslot. This means it transmits in bursts for 12.5% of the time, perhaps using several amps peak, but only a few hundred mA on average. The capacitor helps provide the peaks if the power supply cannot (low battery), and could experience high ripple currents.

Does this grade of tantalum have a ripple current rating? It might have been getting quite hot if inadequately rated perhaps?

I've heard anecdotal stories about a company banning tantalum capacitors because of the consequences of failure: http://en.wikipedia.org/wiki/Tantalum_capacitor#Thermal_runaway_and_self-destruction

Are you sure that cap is a tantalum one?
It should be an aluminum organic polymer capacitor, I searched on web the part code found in the schematic of the shield and got this kind of capacitor.
I don’t know if this cap has the same derate issues like the tantalum. Do you know?

leo72: Are you sure that cap is a tantalum one?

Yes. I recognize the part from the product photos. It is a Vishay Conformal Coat Tantalum. There's nothing else in that form factor with that color. Plus, the part number given in the reference schematic is a Vishay conformal coat part number.

leo72: It should be an aluminum organic polymer capacitor

There is no organic polymer with 2200uF in that package. It would have to be a V-Chip and at least 15mm tall. I'm not sure what you are searching for...

[quote author=James C4S link=topic=187912.msg1405881#msg1405881 date=1380178925] I'm not sure what you are searching for... [/quote] I got the part code from the schematic of the shield. But I just checked only one of the part codes of C13, PCG0J222MCL1GS. This is an aluminum organic polymer capacitor. The other code, 592D228X96R3X2T20H, effectively seems to bring the search to a tantalum capacitor. You're right. Sorry. :sweat_smile:

Hello,

this is mostly for ddewaele, but also for everybody interested in this thread.

From the moment we got reports about this problem, we went into checking:

a) whether we could replicate the situation

b) whether we could fix alternative designs based on the feedback we are getting from all of you guys

This is what happened.

Gianluca, Arduino’s HW mastermind, went into checking with 30 GSM shields in parallel for hours to see if any of them caught fire. The result was negative.

Then he started trying out different scenarios of possible misconnections and the one in the attached picture is the only one that made the capacitor blow.

Gianluca did as well try to rise the voltage on the shield up to 12V and that didn’t get the capacitors to catch fire.

That said …

  1. the fact that we didn’t manage to replicate the event it doesn’t mean it didn’t happen. Therefore, we are really sorry for the incident and we invite ddewaele to send me an email to try to compensate him/her for the incident: d DOT cuartielles at arduino.cc

  2. we take your feedback really seriously, however, there is no capacitors of the size we need and a higher voltage in the right format. Since we might have to change the design of the shield all together, this is what we are thinking as possibilities:

2.1) putting two smaller caps in parallel, but with a higher voltage rate

2.2) putting the capacitor after the regulator, it is 4,85 Volts we need to take care of, so the restrictions are different, it is also good because the input will then take up to 20 Volts

2.3) adding a current protection (polyfuse or similar), Gianluca is looking into this

Summarizing, we will look at this and make sure we make it good.

Thanks for the feedback and sorry it took us a couple of days to answer. It is crazy with all the Maker Faires and conferences at this time of the year (besides it is school time and some of us teach/study).

/d

Update: after posting this, Gianluca sent me an email with these two extra comments:

  1. another option to let it explode is short circuiting Vin with 5V but it explodes only if Vin is>12V

  2. For the next release […] will add an extra zener for protection and also a polyfuse

http://www.mouser.com/ds/2/427/592d-222973.pdf It seems that James centered the problem. At page 8, you can see that the reccomended voltage derating guidelines set the operating voltage at 3V6 (output filter). So this component seems to be inadequate. At least a 10V component should be used for an operating voltage of 5V (if we follow the datasheet reccomendetions).

Thanks for the response David, and great to see you're looking into the problem.

To make it clear, the shield wasn't hooked up as displayed in your picture :)

As stated in my earlier post, the following wires could have touched (although not with the VIN)

2 wires (TX and RX) on the OBD2 Shield 1 GSM TX wire on the GPRS shield 2 wires (SCL and SDA) on the GPRS shield

I also don't see how something else could have short circuited the VIN.

Power was supplied by the cars battery through an OBD-II cable (12V using pin 16). It won't have been a clean 12V, as it depends on the state of the car (driving / stationary) and the battery (fully charged or not). When it blew the car was stationary. AFAIK it will have fallen in the supported input range. The OBD-II shield that was connected with the OBD-II cable delivered that12V input directly to the VIN of the Arduino board (thus also powering the grps shield).

Again thanks for taking the time to have read my post and following up on it. Really appreciate it !