Tuesday, 1 November 2011

Arduino Mega board is toast!

I have managed to blow my Arduino mega board.
It stopped uploading, and there was a 'hot' smell - never a good sign. Unplugging everything, the arduino chip was very hot indeed.

After waiting for it to cool, I found that plugging it into the USB socket - nothing else - started to make the mega chip warm up, and it got too hot to touch. :-(
Another circuit board is sacrificed to the gods of knowledge and experience.

Tracing things back, I wondered how it happened. My setup hadn't changed, I'd just been running heater and extruder tests - the steppers weren't plugged in, so it was unlikely to be them.

Looking at the my heater board again, I realised that the output pin of the arduino was connected straight to ground through the MOSFET gate - no current limiting resistor. A bit of digging uncovered a possible problem - the design I'd used as a base (RepRap Gen 2/3) had the same circuit, but used current limiting Mosfets. I'd upgraded mine to larger ones, but checking the data sheet, the Mosfet gate acts a bit like a capacitor. Charging the gate could be done slow(with a resistor) or fast. A current of 2A was given as an example to charge the gate in 14nS.

Oh. The arduino pins can only handle 100mA or so. Still, it only does that when it's switched on or off, so long as I wasn't switching it on and off thousands of times a second - like using PWM.... Damn.

Looking back, it's surprising that it coped as well as it did - it should have gone up in smoke straightaway! I'm impressed it worked at all  - it coped for several hours of testing. Each time it switched, the arduino pin was directly connected to ground - drawing a big current for a few mS, then when it switched off, the mosfet gate would discharge itself straight through the arduinio pin to ground.

I have now redesigned my heater / Mosfet board to incorporate a 560ohm current limiting resistor (between the arduino pin and the mosfet gate), and also a pull-down 100k resistor between the Mosfet gate and ground. It should limit the current to 90mA, and make sure the gates switch off if the board isn't connected.

I've also ordered a couple of new Ardunios - hopefully I'll be more careful with these...


Triffid Hunter said...

I've been directly driving my mosfet gates from my arduino for a couple of years now.

Most of that time they've been PWMed at 62.5KHz.

My mosfets have a gate charge of 140nC which is pretty large!

I suspect your problem may be elsewhere

Renoir said...

I'm using FD88880 (http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1228327) and if I'm reading the data sheet correctly, they have an input capacitance (Ciss) of 1240pF) - 1.2nF. I intentionally over-specced them because I'd blown my previous gen 1.2 heater board, and these were cheap.

Reading around, it's good practice to have limiting resistors, so I'm happier I put them in. The new board works fine so far.

If it wasn't the Mosfets, then it must have been a tool or nut\bolt causing a temporary short maybe? - the mega's definitely toast, it won't upload and just gets hotter.