What capacitor will keep arduino live for 500ms?

Hello, I am creating a little automotive project based on Arduino Pro Mini. The board will be powered initially by a short-time (5 seconds) pulse, which will give it enough time to boot and trigger a relay. The relay will switch the board power to another power source. There will be a brief period, while the relay is switching (no more than 100ms, I suppose), during which the board will be without power. I am thinking of putting a capacitor to provide power during this brief interruption. It will only need to power the Arduino board. The question I have is, what capacity should I use?

Thanks, -Stan

Find a super cap with low ESR. May need to use a boost regulator chip with it to create a switching regulator that will hold the output up as long as the cap is charged.

This bit of discussion was from an older design I did: "We can use a boost regulator! A boost regulator will take the voltage of the cap, whatever it is, and output the voltage we want. When the cap drops too low, which is really low, then the boost regulator cuts the power off cleanly. So the uC just shuts off instead of doing funny things when the voltage gets iffy (like erasing its flash, which I saw it do several times). He suggested we use a LTC3525.

So now that we can use the entire cap, we can use a much smaller one. We calculated that a 1F cap would hold 250mA up for 16 seconds through the boost regulator."


dV/dt = I/C

A normal relay has switching times of around 10 ms. That's one half period of mains voltage.

You do not need an low ESR capacitor, use a normal electrolytic capacitor.

MarkT have the formula to calculate the value


Here's how I calculate hold up. Start with an equation that determines energy in terms of voltage and capacitance. Then solve for C.

E = (1/2 C * Vstart^2 - 1/2 C * Vdropout^2)

For the algebra challenged, here's the steps broken down to solve for C. 1. Take your circuit's current times the circuit's voltage, to get Power (then double it) P = 2x (Voltage * Current)

  1. Calculate energy required by multiplying power by time. E = Power x HoldUpTime

  2. Calculate the V^2 Vrange = Vstart^2 - Vdropout^2

  3. Solve for C. C = E / Vrange

An Arduino board by itself draws 30-40mA depending on which regulator, so assume 50mA for margin. The ATmega328 chip is only rated to 4V (or so) at 16MHz.

  1. P = 5V * 50mA = 250mW * 2 = 500mW This is an extreme estimate.

  2. E = 500mW * 500mS = 250mJ Time is 500mS (or recalculate for 100mS)

  3. Vrange = 5^2 - 4^2 = 9V The 4v dropout is probably higher than it really is, so you get some additional margin.

  4. C = 250mJ / 9V = 0.02777 F So thats 27mF or 27,778uF.

I'd probably round up to a 33,000 or 47,000uF. However, the whole calculation has lots of margins built into it, so its your call.

No need for a Supercapacitor/EDLC. You can get away with a regular aluminum electrolytic. Not critical, but try to get the lowest ESR you can.

I'd probably round up to a 33,000 or 47,000uF.

47000 as in 47mf the biggest i've seen for a reasonable price (unless dealing in 150/300f/2000+ super caps) is around 1 - 10mf, you have a link for any caps in the 33-45mf (47,000uf) on sale?

Is part of the power going to the relay winding though? You'll have to allow for that.

Thank you, guys. Very informative.

I ended up changing the design and using a pair of diodes to direct the main power to the relay coil and keep it closed all the time while there is any power.