How to modify nano to work with 3.3v power supply and without a bootloader

I need to modify the nano to 3.3v version, I mean following the datasheet to modify its frequency to 8MHz, just to be on the safe side. I found that in some thread, in order to do that, one needs to change some lines of the boards.txt file and burn the bootloader and let the new bootloader enable the internal 8MHz resonator.

But the problem is that, I have removed the bootloader of my nano on purpose and just use the icsp from that time on to upload new sketches just to avoid the few second wait time of the bootup, and that is important for me.

The question is can I have both, have the 328p chip work at the safe 3.3v mode with 8MHz frequency enabled and without the bootloader?

joedodo:
one needs to change some lines of the boards.txt file

No need to do that. It’s much easier to do this:

joedodo:
burn the bootloader and let the new bootloader enable the internal 8MHz resonator.

That’s not how it works. The Arduino IDE’s Tools > Burn Bootloader process does the following:

  • Set the configuration fuses according to the definition of the currently selected board.
  • Flash the bootloader to the microcontroller’s memory.

It’s step 1 that configures the board to run on the internal oscillator at 8 MHz.

The only purpose of the bootloader is to enable you to upload over serial. That’s it.

Even though you have no need of a bootloader, it’s still very convenient to use the Arduino IDE’s Tools > Burn Bootloader feature to set the fuses. The name might not be so appropriate for this, but it works fine.

In fact, MiniCore even has a Tools > Bootloader > No bootloader just for people like you who don’t want a bootloader. With this setting, The Arduino IDE’s Tools > Burn Bootloader feature only sets the fuses.

joedodo:
The question is can I have both, have the 328p chip work at the safe 3.3v mode with 8MHz frequency enabled and without the bootloader?

As you are now aware, yes!

how do you wan't to power it?
buy an Arduino Mini

For your Nano to 8MHz conversion project will you (a) use the existing 16MHz crystal and use the prescaler to reduce the clock rate to 8MHz (b) use the internal oscillator at 8MHz or (c) replace the crystal (resonator) with an 8MHz part or (d) maybe something else ?

oh, I see. I tough one has to use bootloader to have the 8Mhz frequency.

joedodo:
oh, I see. I tough one has to use bootloader to have the 8Mhz frequency.

No. That is clear from post #1 in this thread. A bootloader is not a prerequisite for 8MHz operation. However, the "burn bootloader" operation can, as a useful side effect, update fuses (as already explained above) then you do not have to use Mcudude to do this.

I did this 3.3 volt Nano project over 4 years ago: https://forum.arduino.cc/index.php?topic=409415.0
There I used a boot loader. But that is irrelevant to the clock speed.

I kept the 16MHz crystal/oscillator:
(a) because it was convenient for uploading code with the standard Uno Optiboot bootloader
(b) it is more accurate than using the internal oscillator.
(c) It needed no fuse changes.

I used the standard Arduino core, but made my own entry in boards.txt for my special 8MHz version. (now, it looks like MiniCore, mentioned above by @pert could be used without needing this modification).

The disadvantages are:

  1. You have to add a short block of code in the setup() of any sketch to configure the prescaler to reduce the effective clock rate to 8MHz.
  2. Until that code executes, the MCU is in an "over-clocked" state.

Incidentally, I do the same with raw ATMEGA328P chip + 16MHz crystal down to 2.0 volts. The prescaler there is configured for an effective 4MHz clock rate.

I found the resonator on the nano is a 16MHz 15pF one. If I replace it with a 8MHz one I should choose a 8MHz 15pF one and just soder the leads of it should work, right?