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?
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.
"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?
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...
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 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!