4

Id like to make my 5v pro mini use 3.3 v instead of 5 because i want to use it in an existing piece of electronics that uses 3v throughout.

Looking at the specs for the pro mini it says the 3.3v version can accept higher voltages.

So is there a regulator i can bypass/bridge that will convert my 5v version to a 3.3v version? or am i wasting my time?

migrated from electronics.stackexchange.com Dec 9 '14 at 18:02

This question came from our site for electronics and electrical engineering professionals, students, and enthusiasts.

  • Replace U2 with the 3.3V version. – Majenko Dec 9 '14 at 18:06
  • And Q1 with 12mHz (or less) crystal. – Gerben Dec 9 '14 at 20:05
  • Just use 3 diodes in series one diode reduces in 0.7 volts. 5v----->|----->|------->|------- = 2,9volts – Fabio Jun 24 '15 at 18:42
9

I have good news, and I have bad news.

The good news is that only two changes to the board are required to change it from a 5V board to a 3.3V (or any voltage within spec) board.

The bad news is that there's no way in hell you'll be able to do them.

So, we work around them and get the board up and running.

The first is obvious: a 3.3V board should be running off of 3.3V. Since we can't replace the SOT23-5 regulator on the board (the little 5-pin device towards the end) we need a voltage regulator to supply this, directly to the VCC pin. Find yourself a linear or switching regulator that provides this voltage.

The second is that the microcontroller, an Atmel ATmega168/P, is not specced to run at 16MHz when the supply voltage is only 3.3V; the maximum speed is 12MHz. Since we can't replace the crystal on the board (the little silver package next to the MCU itself) we need to perform some trickery to tell the MCU divide the frequency down to something way below safe, and then boost it up after. Use a programmer (see some of my other answers for more info about this) to set the CKDIV8 fuse and then use the routines in avr/power.h in your code to "reduce" the divisor to 2, bringing the clock speed back up to 8MHz. While you're at it, check the BOD fuses to make sure they're not set to something useless like 0b100.

As always, see the datasheet.

  • wow great. thanks. i may attempt this, but it sounds like it would be easier for me to just get another (3.3v) pro board. theyre cheap and i can use the 5v version some other time. – S Rosam Dec 10 '14 at 8:59
  • I'm curious: Why is there no way in hell the OP will be able to do this? It sounds like the 3V3 supply won't be an issue (“because i want to use it in an existing piece of electronics that uses 3v throughout”). Is setting the fuses properly much more difficult than setting up an ArduinoISP and telling your Arduino IDE to write a bootloader for that configuration? – Christopher Creutzig Dec 14 '14 at 15:24
  • @ChristopherCreutzig: The changes described can be performed by replacing two components on the board. However, even if one had the equipment and skill to replace them it would be a difficult task due to the density of the board. Replacement by someone that doesn't know what's required in the first place? Not happening. – Ignacio Vazquez-Abrams Dec 14 '14 at 16:57
4

See this nice article by Adafruit, which explains how to run an Arduino Uno at 16Mhz with 3.3v. Both the Arduino Pro Mini and the Uno use the same ATmega328p chip, and they claim that even though running at 16Mhz is out of specs, it should work.

As Ignacio mentioned in his answer, there will be no alternative to downclocking the Mini Pro if you want to play it safe and stay within the specs. If you are willing to take the chance, remove the 5v regulator as suggested, and connect a regulated 3.3v to Vin. Consider the hazards; they might include device resets, misbehaving code or malfunctioning I/O pins. If you are using an unregulated 3v voltage source, you will need to step up the voltage - using DC DC step up converter such as this one. (By the way - you could also find a step up converter to 5v - hence problem solved...)

In addition, see this SO answer for more details. The safe clock speed for the ATmega328p operating at 3.3v would be 13.33Mhz. For reference, here is the Safe Operating Area graph from the datasheet supplied in the answer:

enter image description here

  • Again thanks for sharing your knowledge. I may try the step up idea. – S Rosam Dec 10 '14 at 9:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.