I blew up a Promini in parallel with a high current device. But why?

Hello all! Thank you very much for taking the time to check out my post. This may end up being a bit of a noob problem, but after hours of internet searches, I am stumped and am resorting to asking for the collective mind of this forum to help me out.

Basically, I connected a Promini and an audio amp to a battery in parallel. When I turned on the amp, I saw a black cloud of smoke rising from the Promini! I was under the impression that when connected in parallel, current (for the most part) shouldn't be an issue. So I'm stumped as to why it blew it out in the first place. I'll go into some more detail and provide a schematic. Also, please be aware that the speaker and motor were not connected at the time, but I'll include them in my explanation for the sake of thoroughness.

I'm new to drawing schematics, so I hope that this one is drawn properly. Please let me know if I made any major mistakes in the drawing process! Also, I just added a picture of the amp since one wasn't available in the fritzing schematics.

I have a 12V power supply connected to a 5v Arduino Promini (via the RAW pin which accepts up to 12v), a 20W audio amplifier, and a motor (via a TIP120 transistor). This circuit is supposed to play a sound and run the motor after I push a button. Nothing too complicated. At the time of the burnout, I disconnected the motor and speaker, hoping not to pull too much current until I verified everything was in working order. I turned on the Amp just to make sure it was receiving power and I instantly heard a sizzle and saw smoke.

So, my first thought was that I burned out the Arduino by pushing too much current through it. But it was my understanding that as long as the arduino was in parallel to the amp, there shouldn't be a problem. Was I mistaken about this parallel relationship between parts? Or perhaps the high draw of the amp created a "current spike" that the arduino was unable to handle. Or did I just not hook it up right in the first place?

Thanks again for taking the time to read through my problem! I hope that I can learn from this experience!

Andy

I burned out the Arduino by pushing too much current through it.

Circuits draw current, you don't "push" current through them. I suspect you reversed the power supply polarity to the Arduino, or made some other wiring error.

Even if the polarity is correct, it is NOT a good idea to power an Arduino in parallel with motors or other high power circuits, as those will introduce voltage spikes into the power supply, possibly causing the Arduino to malfunction, or even frying the on-board voltage regulator.

It is best to use separate supplies. However, to use one 12V power supply, use a switching voltage regulator to produce 5V that you apply to the Arduino 5V pin. Switching regulators are much more tolerant of voltage spikes than the linear regulator on board the Arduino.

Be sure to connect all the grounds.

I have used the DFRobot SDMP3 player with a Uno.
You are powering yours with the ProMini's 5V (down-reg'd from the 12V).
I think the Uno's 5V reg has more output capability than the ProMini's.
Speculating, but perhaps the current demand of the DFRobot player exceeded the ProMini's 5V.
Is it Dead (everything, all peripherals, disconn'd from the ProMini)?
Got a voltmeter?

EDIT: Upon closer inspection, I think you may be right about the polarity! I can see that the S4 diode (schottky) is damaged which, if I remember correctly, is used as polarity protection. The weird thing is that I just don't know how I managed to do that. And it seemed fine until I turned on the amp. But then again, I suppose the amp may have given it the voltage spike necessary to burn it out.

I think I'll take your advice and add a separate regulator rather than relying on the arduino's and see how that works. I have some 3A buck converters lying around, so I'll give that a shot. Thanks again!

Thank you very much for your replay pancake! I haven't thought of that! I have often used the DFplayer from smaller projects with it's built-in 3W speaker outputs, but I've never actually powered it through the arduino and pushed the signal to an amp before. I wonder if me turning the amp on itself wasn't the issue, but rather the DFPlayer engaging the amp. I'll definitely look into this!

It seems very dead! However, upon closer inspection, I have just noticed that it seems I blew the Schottky Diode (S4), so I think that Jremington is right about me reversing the polarity by mistake!

Another serious problem with your circuit is that it lacks an inductive kick diode across the motor. It is also a good idea to add 1 to 3 caps to suppress radio frequency noise from the brushes, as described here.

I see! I've heard about doing that before, but I can now see how it would be important for such delicate parts like an Arduino. I'll definitely put one on!

Thanks again for the help!

I don't think the burned diode indicates a wrong polarity. What is more likely: too much current burned the voltage regulator. The regulator failed as a short with full 12 V applied to the 5 V parts. Some of the low voltage devices (MP3 player or something on the Arduino board) failed as a short circuit causing too much current to be drawn from the 12 V supply. This current burned the diode.

Of course another option is there was a short circuit somewhere - either some mistake or a damaged part.

The boards have many exposed points, a short circuit is quite easy. I.e. when you put Arduino Uno on a metal surface. (At least my cheap clone of Uno; the official board may have an insulating coating, I don't know.)

I second this - also add some decent decoupling to the 12V line at the motor supply (at least 100µF), and that base resistor should be more like1k or so, not 10k.

Big inductive spikes could have been added to the 12V supply by the motor if switched without a diode.

...When I read the title I was thinking there is probably a motor (or solenoid or some other inductance).

As a suggestion for future projects, if you add a 6A silicon diode in series with the 12V power input
with the CATHODE connected to the LOAD end, if you connect the wires backwards
the diode will block the current. (Max voltage on cathode will be -0.7V). Some people
refer to this as an 'IDIOT DIODE'.

I don't see a Schottky on Arduino Pro Mini schematic Google found for me but I see them on pictures of actual boards. I assume they are truly for reverse voltage protection and they should block up to 40 V - it should survive wrong polarity of 12 V. So I believe there is little gain trying to add an additional protection diode - there was probably some other fault.

That is unlikely. The worst spike will be at the transistor side and the transistor will need to dissipate most of the energy. The supply will see only a fraction of the spike reflected through the inter-winding capacitate of the motor. This power will be small and easily absorbed by the supply decoupling IMHO.