Using internal 8MHz oscillator at 3.3V?

I have several ATmega328 nano boards that all have an external 16 MHz oscillator, however I want to run it 3.3V so I can send data over serial to a raspberry pi without having to worry about getting a level shifter.

I know that many people have/do run the arduino at 3.3v using the external 16MHz oscillator, but that's technically out of spec for the board so I was curious, can I set the arduino to use its internal 8 MHz oscillator and then run it off 3.3v? If I did that, would I also need to remove the external oscillator from the board?

You can change the fuses to run with internal 8 MHz oscillator, and leave the crystal alone.

Get yourself a Programmer, make life easy on yourself. $7.77, free shipping.

Then add MiniCore to your IDE and burn the fuses to use the internal oscillator.

1 Like

You may have to tune the internal oscillator. It should be ±10% from the factory, which is borderline for serial communications, but you can improve that by an order of magnitude with some work.

Thanks! I have minicore and a programmer :smile: my main concern was I wasn't certain if I could change from using it at 16MHz down to 8MHz as I hadn't worried about that in the past.

How does one go about tuning the internal oscillator?

There is a minor bug in that method but the symptom is slightly lower accuracy. It's good enough.

Poor Man's Tiny Tuner

Tuning the internal osccillator on AVR chips

It's possible to do it manually using two pushbuttons, an LED, and an accurate wall clock.

I suspect Google Search will surface more.

The internal oscillator varies by voltage so tuning should be done at the target voltage (3.3).

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.