I picked up a tube of 10 ATMega328 microcontrollers for an embedded project I’m working on. I’d wired everything up Wednesday on a breadboard according to this guide with the intent of then connecting my original Arduino Duemillanove and burning the Arduino bootloader to the blank ATMegas using the ArduinoISP sketch. Attempt after attempt, rewire after rewire resulted in the following error:
avrdude: Expected signature for ATMEGA328P is 1E 95 0F
I spent a few hours searching around trying to find a solution and the forum posts involving that error really didn’t seem to apply to my situation. I eventually noticed that the uC that shipped on my Duemillanove was the ATMega328P-PU and the chips I had ordered/received were the ATMega328-PU, signifying that is not in the pico-power series. Armed with that little tid-bit I found this post containing the piece of information I needed to move forward.
I now have signatures in /etc/avrdude.conf (excerpt below) for both the 328 and the 328p, and I now uncomment the appropriate signature for the chip I will be interfacing with. With that sorted I was able to finish burning bootloaders on all the ATMegas, breadboard my test bed, and get to learning bi-direcitonal half-duplex RS485 comms between microcontrollers using TI sn75176bp differential bus tranceivers.
id = "m328p";
desc = "ATMEGA328P";
## m328p signature
signature = 0x1e 0x95 0x0F;
## m328 signature
## signature = 0x1e 0x95 0x14;