Running Arduino Pro Mini 5V,16MHz board @ 3.3V

Hello,
I have an Arduino Pro Mini 5V,16MHz board based on ATmega328. Can I run it safely and properly if I supply only 3.3V at the same 16MHz? Because, I want to use a battery to run my project and I have to use 3.3V supply. So, is it possible?

zwarrior:
Hello,
I have an Arduino Pro Mini 5V,16MHz board based on ATmega328. Can I run it safely and properly if I supply only 3.3V at the same 16MHz? Because, I want to use a battery to run my project and I have to use 3.3V supply. So, is it possible?

No, the safe operating voltage for 16 MHz is 4.5V ... 5.5V only.

Have a look into the datasheet of the Atmega328!

Safe operating voltage depends on the clock frequency you are using: The higher the clock frequency, the smaller is the range of the safe operating voltage. There is a diagram in the data sheet.

If you need to run at a lower voltage, this is only safe at a lower speed. You would have to replace the crystal oscillator against one with 8 MHz and the voltage regulator against one which regulates to 3.3V. Then you can go down to (I think) 2.7 V as a safe operating voltage. Look up the details in the datasheet!

In fact, also 16 MHz operation is possible at a lower voltage than 4.5V in some cases. Such like perhaps 3.8V, 3.7V or even 3.5V. But it is out of the specifications in the datasheet and it may only work at certain temperature ranges (perhaps room temperature) instead of the full temperature range of the controller. So it is not guaranteed by Atmel that the controller is working within its specifications if you don't operate within the voltage and clock frequency speed specifications.

Thank you. It is clear to me now.

No need to exchange the crystal :slight_smile:

When you select "Pro Mini" board in the IDE, you get an additonal Processor option entry, where you can select the right processor type and operating Vcc. When you select "3.3V 8MHz", the clock prescaler will be programmed for an internal 8MHz controller clock from a 16MHz crystal.

No, the safe operating voltage for 16 MHz is 4.5V ... 5.5V only.

That is not correct. Per the Speed grade chart in the datasheet, 16 MHz may be used and meet full specs all the way down to ~3.78V.

The ATMega2560 chip needs 4.5V for 16 MHz.

DrDiettrich:
No need to exchange the crystal :slight_smile:

When you select "Pro Mini" board in the IDE, you get an additonal Processor option entry, where you can select the right processor type and operating Vcc. When you select "3.3V 8MHz", the clock prescaler will be programmed for an internal 8MHz controller clock from a 16MHz crystal.

Thanks.
So, only 2 changes?
1- I should change the voltage regulator.
2- In the IDE, I should just select 3.3V 8MHz instead of 5V,16MHz.

Right. Take care to chose an voltage regulator that withstands 5V on its output. Or be careful to never apply 5V, not even while programming the board.

zwarrior:
1- I should change the voltage regulator.

Not needed.
If the battery is <5volt, it can be connected to the 5volt pin (not Vin).

The 5volt pin is post-regulator.
The regulator is not used. It can be removed if you want a tiny bit more battery life.

If... you want to use the analogue inputs, you might need a stable supply.
Then... you have to replace the 5volt regulator for a 3.3volt very low drop regulator.
Leo..

To make it run at 8mhz, after selecting the proper board, you need to connect it to an ISP programmer (Arduino running ArduinoAsISP or a standalone programmer like USBAsp) and burn bootloader. Make sure the board def you have selected is set to use 8mhz internal, not 8mhz external, as an 8mhz external will use the crystal, and try to run at 16, since it's a 16mhz crystal (or likely, 16mhz resonator)

It's worth noting that a number of people on these forums have reported that the 328p typically does work (at least at room temperature) on 3.3v at 16mhz

I was running a 16MHz Uno at 2.7V the other day. The brown out is set for that level so I couldn't try a lower voltage without changing the fuse. It wasn't doing a whole lot, mostly just writing to an SD card.

Thank you everyone. I will keep them in mind :slight_smile: Thanks for the help. I appreciate it.

I built this project recently and the 5v, 16MHz promini is running from a 3.7 volt battery in series with a diode (so 4.2-0.7 when fully charged), down to around 3.2volt with no noticeable problem (I set up a low battery alarm using the "arduino secret voltmeter" code found online).

I also use a 3.3V FTDI to upload the sketch/hex.

The fact it works doesn't take away you run it out of spec...

I'm sorry septillion, could you rephrase that? My english is not very good and I dont think I understood you correctly.

Undervolting is like overclocking.

There are many sub-circuits inside a processor.
Some might work, other parts might produce errors.
Leo..

DrAzzy:
To make it run at 8mhz, after selecting the proper board, you need to connect it to an ISP programmer (Arduino running ArduinoAsISP or a standalone programmer like USBAsp) and burn bootloader. Make sure the board def you have selected is set to use 8mhz internal, not 8mhz external, as an 8mhz external will use the crystal, and try to run at 16, since it's a 16mhz crystal (or likely, 16mhz resonator)

It's worth noting that a number of people on these forums have reported that the 328p typically does work (at least at room temperature) on 3.3v at 16mhz

DrAzzy, if your run on the internal oscillator does the Atmega completely bypass (not use) the external crystal?

Thks
Erik

DrDiettrich:
No need to exchange the crystal :slight_smile:

When you select "Pro Mini" board in the IDE, you get an additonal Processor option entry, where you can select the right processor type and operating Vcc. When you select "3.3V 8MHz", the clock prescaler will be programmed for an internal 8MHz controller clock from a 16MHz crystal.

No, I highly doubt that's how it works.

Jiggy-Ninja:
No, I highly doubt that's how it works.

I would qualify your answer. In the Arduino IDE presets you can indeed check the 3.3V 8 MHz setting. But the fuses there are set to run the mcu at 8 MHz on the internal oscillator. Afaik this is separate from the crystal. Now there are fuse settings that allow for a internal clock that uses the external clock divided by 8.

And here it becomes much more interesting to use avrdude directly, and program fuses as you wish, instead of using the pre-cooked Arduino settings.

Actually I think there's only 1 board that uses the internal oscillator, the LilyPad w/ ATmega168. All of the other 8 MHz boards use an external crystal or resonator, including all of the Pro Minis.

Is the use/availability not purely mcu-dependent? The spec "sheet" (240+ pages) for atmel 168/328/... shows internal oscillator available. I am not at my desk right now so unable to provide links or pages.

Edit: the use of an internal oscillator afaik is edited through fuse settings, regardless of the board on which the mcu is used. So you would be able to edit fuse settings of an atmel mcu (168/328/... series) as you wish. Whether or not an external oscillator is present.