This guide was first published on Jan 12, 2013. It was last
updated on Jan 12, 2013.
This page (3.3V Conversion) was last updated on Jun 16, 2019.
All official Arduinos run on 5 volts, which for a long time was the 'standard' voltage for hobbyist electronics and microcontrollers. But now the coolest new sensors, displays and chips are 3.3V and are not 5V compatible. For example, XBee radios, and SD cards and acellerometers all run on 3.3V logic and power. If you tried to connect to them with 5V you could damage the internals of the accessory.
We use chips like the CD4050 to do level conversion but if you are using a lot of 3.3V devices, maybe you're just better off upgrading the entire Arduino to run from 3.3V!
To do that, we will replace the regulator so that the DC barrel jack goes to a 3.3v type regulator, not a 5V. And then reconfigure the 5V usb power line so it goes through the regulator as well.
Replace the Regulator
The default regulator is a 5.0V type, but we want 3.3V out, so we'll need to replace it. We'll use a 1117-3.3V (there are a few manufacturers of 1117 regulators, just like the 7805 is made by many factories) regulator in a TO-252-3 package. It looks like this:
You can get these from any electronics component shop, for example here is the digikey link
To start, we'll need to remove the old regulator. The easiest way to do that is to first clip the two legs.
Then you'll need to heat the tab up to get it liquid so you can lift off the old part. Although it may seem counter intuitive, its best to add some solder to the tab, melt it on with your iron, this will improve the heat conduction since the tab is so large.
Clean up the tabs and remove any clipped parts still stuck on.
Now line up the new 3.3V regulator, and solder the tab first, use plenty of solder and be patient, the tab acts like a heat sink.
Then do the two legs.
Replacing the Fuse
The next part is a little tricky, the USB jack gives us exactly 5V already, and normally that is tied to the output of the voltage regulator (essentially, its got a little circuitry that connects it when the DC jack is not powered).
The easiest way to make the USB 5V also go through the regulator is to remove the fuse and solder a diode from the USB output to the regulator input.
You can use any power diode, a 1N4001 is perfect and only a few pennies.
The trade off is now there is no 500 mA fuse for the USB jack. The good news is that computers will have their own fuses on the USB connector (inside the computer) so its not likely you will destroy your PC. But be aware that you're losing a little safety.
Heat the fuse with your soldering iron, again adding solder may help thermal conductivity. Since the fuse is very conductive you can probably just heat one side for a while and both ends will melt.
Clip the diode short and bend the leads over. Solder the side without a stripe (anode) to the old fuse pad, nearest the board edge. Solder the striped end (cathode) to the right hand leg of the regulator.
The Arduino will still automatically select whichever power plug is giving you more power.
That's it! You are now 3.3V powered. This is a little lower than the power/frequency specification for the AVR chips since they ought to have about 3.6V to run 16Mhz but its probably not going to be an issue since AVRs can be overclocked a little.