Will the Atmega328P bootloader work on a 328 (not P)?

Hello all,

I have a circuit board with a handful of SMD chips soldered onto it. We mistakenly sent an Atmega328 to be soldered on instead of a Atmega328P. What kind of problems can I anticipate running into? We are planning on using the 8 MHz internal oscillator.

Currently I have the bootloader “ATmegaBOOT_168_atmega328_pro_8MHz” gathered from a link in the “Minimal Circuit (eliminating external clock)” section of https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard. I see inside the “boards.txt” file that the mcu is set to atmega328p, which may end up being a problem:

atmega328bb.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex
atmega328bb.build.mcu=atmega328p

In the past I was able to upload new sketches to a 328P I have by selecting the 8MHz board downloaded from the link above in the Arduino IDE, and then compiling the sketch into a hex file. I would then use avrdude to upload the hex file. I see that avrdude may be able to expect the 328 by changing the -p option so the command looks something like below:

.\avrdude.exe -C"C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf" -v -patmega328 -cavrispmkII -PCOM6 -b57600 -D -Uflash:w:“path to my compiled sketch”:i

My main concern is that I will have trouble compiling a sketch to a hex file due to the Arduino IDE expecting a 328P rather than the 328 I need to use.

Thank you for any insight!

Will the Atmega328P bootloader work on a 328 (not P)?

Yes, absolutely.

The P means pico power. Power consumption, it is the difference. Other functionality is same.

Thank you for the quick reply, that is a huge relief!

You want to look at “minicore”, though. Better bootloader, and explicit support for the non-p version.