# Running an Arduino off an AC Circuit with a Bridge Rectifier

I am having an issue running an Arduino (requiring a 3.3V power input) from a 21V AC circuit. The input of the circuit is from a doorbell transformer and provides 21V AC. Then the AC input passes through a bridge rectifier to produce a DC output (of about 26V). The output from the bridge rectifier is smoothed with a capacitor, and then a voltage rectifier converts the ~26V input into 3.3V output for the Arduino.

However, this circuit has an issue I am having trouble figuring out. Measuring the output of the 3.3V voltage regulator reveals that it is, in fact, outputting 3.3V as expected. However, the Arduino seems to reset itself over and over.

My working theory at this point is that the issue has something to do with the connection to ground. If I disconnect the AC input and replace the 3.3V regulator with an external, regulated 3.3V supply, the system works fine.

I would greatly appreciate any help you could provide with diagnosing the issue with this circuit design.

• Are you really dropping 26V to 3.3V with a linear regulator? Doesn't it get hot? What have you done for a heatsink? Consider the power being wasted that has to be dissipated as heat. 23V at 100mA is over two watts you have to get rid of. Without a heatsink, the regulator will get hot, shut off, cool down, repeat until it gives up the ghost. – JRE Oct 7 '17 at 14:39
• If you want to stay simple, you could just add a 7:1 transformer – BeB00 Oct 7 '17 at 14:50
• What is the total current drawn from the 3.3V supply? – Spehro Pefhany Oct 7 '17 at 19:56

Your diagram shows an LM340MP-05, which is a 5.0V regulator. I'm going to assume this is a mistake in your diagram rather than that you picked the wrong regulator, as you mentioned you'd measured the 3.3V output and it was ok.

A few thoughts I have on what might be wrong:

• You're connecting the 3.3V output from your regulator into the VIN pin on the Arduino, rather than directly to the 3.3V pin. The VIN pin on Arduino boards usually goes through a 3.3V regulator to drop your input voltage (usually 5-9V) down. The regulator will not operate properly without a bit of voltage overhead (called the 'dropout voltage') above the target voltage - giving a 3.3V linear regulator a 3.3V input will probably result in about 2.9V at the output for an LDO, which would mean you're undervolting your Arduino.
• You're cooking your regulator with too much current at the given voltage drop. The LM340 offers 1.5A maximum, but linear regulators burn power proportionate to both the circuit current and the voltage drop. You're dropping 22.7V and an Arduino's idle current draw is about 50mA - this means you're burning 22.7 × 0.05 = 1.135W of power in the regulator just by running the Arduino at idle. This will produce a temperature rise of about 27C if you're using a TO-220 package regulator, but on the SOT-223 it'll be more like 70C above ambient, which is enough to start causing problems. Keep in mind that these numbers assume you're pulling only 50mA; any more and the heat problems will be even worse.
• You've placed a 100uF capacitor for smoothing the input, but you haven't placed either of the input or output filter capacitors for the regulator as recommended in the datasheet. This is unlikely to be the sole cause of your problems, but a 0.22uF capacitor across the regulator input is good practice.
• After double checking the circuit with respect to the power input to the Arduino, it does seem like the issue has to do with the voltage regulator getting too hot, as this answer plus several other comments suggested. The system seems to start up normally but the voltage regulator does indeed get very hot and then seems to shut down. I ordered a drop in replacement switching regulator (adafruit.com/product/1065) and when it arrives I will see if the system works as expected. I plan to use the switching regulator to convert to 5V and a linear regulator to go from 5V to 3.3V. – user165102 Oct 8 '17 at 21:49
• That seems sensible. The buck regulator will drop that input voltage much more efficiently and produce almost no heat (maybe 10-15% of load power will be lost as heat). Linear regulation from 5V to 3.3V should be fine, just ensure your regulator is an Low Drop-Out (LDO) type with a minimum dropout voltage of less than 1.7V. – Polynomial Oct 9 '17 at 10:33

It depends on the Arduino variant you are using.
For example, the Arduino UNO runs at 5 V NOT 3.3 V. It does have a 3.3 V regulator, but that is for peripherals, and not the MCU.

To power the Arduino UNO you need a minimum of 7 V , and the maximum recommended for the board is 12 V.

My recommendation is you either:

1. Use a 7812 12 V regulator with a small heatsink
2. Use an adjustable DC-DC convertor and set the input voltage to about 10 V

Of course one would question you use of a bell supply ...what prevents you from using a 10-12 V wallwart.

Some doorbell transformers have one side of the secondary grounded. It will not necessarily be marked as such.

If your Arduino circuit is plugged into a grounded USB jack or has some earth connection on the 3.3V ground, and the transformer is grounded on one side of the secondary you will have a sneak current path through the ground connection which would definitely cause problems.

You can easily check for this by disconnecting the transformer and measuring resistance from the secondary to the green wire and housing.

Your 100uF cap is a bit small, but should be acceptable for reasonable currents, and above 50mA or so you would want a heat sink on the regulator anyway.

This would be much better with a 5V feed into your 3.3V regulator using a switching power supply or a lower voltage transformer and a much bigger filter capacitor working into an LDO regulator. Doorbell transformers also have very bad output regulation (the output voltage varies a lot with load) because they are designed to sacrifice themselves in case of a short (aka Class 2 impedance protected).