Re-burning bootloader on an Atmega328 - Arduino IDE refuses to do the job

Hi,

I need your help with the following problem: I usually use Atmega328P - the same as used on Arduino Nano - but have a few boards I assembled with Atmega328 (i.e. non-P), which came with pre-programmed with the bootloader of Arduino Mini. Latter has ~2kB less code space, so I would like to re-burn the bootloader with that of the Nano. Doing so I get the following error message from the IDE:

avrdude: Expected signature for ATmega328P is 1E 95 0F
         Double check chip, or use -F to override this check.
Error while burning bootloader.

Can I somehow use the -F in the IDE? If not, how can I solve this dilemma?

Thanks for your help!

Use this: GitHub - MCUdude/MiniCore: Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB. It has support for ATmega328 so the signature will match your chips without need to do -F. It uses the Optiboot 0.5kB bootloader.

Other options would be: Use Nick Gammon's board programmer sketch modified with the signature of the chip you're programming. Or use WestfW's Optiloader, which already has a table built into the sketch to load the Optiboot bootloader. Once Optiboot is loaded, when you program the chips via serial they will report with the signature of a 328P.

Google to find either of the above easily.

"Non-P" devices can be programmed by modifying the avrdude.conf file.
In the ATmega328 section, find and change signature = 0x1e 0x95 0x0f (the P signature) to signature = 0x1e 0x95 0x14 (non-P)

A huge thanks to all of you guys, you are great! I will try out these options this evening when I get home! I'm really grateful, I desperately need that larger code space and replacing the modules would have been a huge overkill.

I tried this one out yestarday since this looked like the easiest way. I found 2 files in the Arduino IDE 1.6.10 installation, I changed the respective values in both files, but still I get the same error message.

Could it be, that this file avrdude.conf is not read in at every start of the Arduino IDE but I have to install a board package to make the changes visible to the IDE?

pert:
Use this: GitHub - MCUdude/MiniCore: Arduino hardware package for ATmega8, ATmega48, ATmega88, ATmega168, ATmega328 and ATmega328PB. It has support for ATmega328 so the signature will match your chips without need to do -F. It uses the Optiboot 0.5kB bootloader.

Sorry to say, but it does not work either. I followed the steps described below the link, I installed the board package, the Arduino IDE sees the package, I can select the 328 as bootloader to be burned, but I still get the sane message... I tried to disconnect the device, then a different message occurs, so it's not a general problem.

Because I wanted to make sure it's not a mistake on my side, I tried the MiniCore on an Atmega328P , it worked like a charm, afterwards I was able to download code defining the board as Uno. So principally it works but I do not have luck with the 328...

Did you select "328 / 328A" from the Tools > Variant menu?

pert:
Did you select "328 / 328A" from the Tools > Variant menu?

Of course not...(shame), instead I went the brute force way and modified the avrdude.conf file like suggested by Runaway Pancake. And then it worked :slight_smile: Afterwards I saw your comment and also the comment to the issue I filed against the GitHub code of MPUdude. He also replied the same.

So at the end of the day both of your solutions worked, thanks a lot guys! You saved me a lot of effort!