I am in a Linux environment, using the Audrino IDE v22, blank 328p'safter uploading the ArduinoISP sketch, I proceeded to select the "ATmega328 on a breadboard (8 MHz internal clock)" and the burned the bootloader using "Adruno as ISP".

No errors were reported, so I burned the second one that I'd gotten. The problem arose when I went to upload my sketch.

avrdude reported an invalid signature for the 328p sig = 0x1e9406, after googling for answers I found out this is the id for a 168. I've tried alternate suggestions including downloading a hex file for the 328 bootloader(from several years ago) and re-burning, to no avail, the Id is now 0x000000. and looks like I need to try an HV programmer to recover the chips.

My question is how am I supposed to burn the bootloader for the 328p? In the bootloader folder all the hex file names start with 'atmega168'.

Firstly the bootloader files are called 168 for both 168 and 328 as the bootloader is basically identical - only the flags and fuses and memory map differ. Sounds like it burnt the wrong bootloader somehow.

I have the 0021 software and "ATmega328 on a breadboard (8 MHz internal clock)" isn't on the list of boards - this sounds like a custom entry in boards.txt? It probably has the wrong bootloader file listed (you want ATmegaBOOT_168_atmega328.hex). The 328 at the end of the filename is crucial.

[ I will NOT respond to personal messages, I WILL delete them, use the forum please ]

avrdude reported an invalid signature for the 328p sig = 0x1e9406, after googling for answers I found out this is the id for a 168.

Were you using ArduinoISP to try to load the sketch? Does your Duemilanove have an ATmega168 in it? If so, you forgot to disable auto-reset and you're talking to the Arduino bootloader on the Duemilanove rather than the ArduinoISP sketch. They both speak variants of the STK500v1 protocol.

Disable auto-reset by connecting a small capacitor (1-10 microfarad) from the Reset pin of the Duemilanove to the Ground pin. (The + side of the capacitor goes to Reset and the - side to Ground.)

Were you using ArduinoISP to try to load the sketch? Does your Duemilanove have an ATmega168 in it? If so, you forgot to disable auto-reset and you're talking to the Arduino bootloader on the Duemilanove rather than the ArduinoISP sketch. They both speak variants of the STK500v1 protocol.

No, not uploading with AudrinoISP. No, my Duemilanove has a 328p. I had disabled the auto reset. Also pulled the chip from the Duemilanove as the tutorial stated.

There is no way the 168 bootloader hex file would work for 328P, that's simply impossible, since the bootloader section starting address are completely different. Make sure you are burning a bootloader hex file that is compiled for 328P with the starting address set correctly

Hi, I'm a newbie on electronics in general, and I've been trying for several days to use an ATMega328p on a breadboard with the minimal configuration as stated in the above referred tutorial.I have a question related to this topic.

My 328s are all preloaded with the regular Arduino bootloader and I can upload sketches on all of them using the Arduino board.I'm trying to burn the 'ATmegaBOOT_168_ATMEGA328_pro_8MHz.hex' using Arduino as ISP (with another 328p on Duemilanove), but AVRDude reports an Invalid Device Signature (even when disabling the auto-reset).

Is it possible that because the 328p are already loaded with the 16MHz bootloader, I will need to add a 16MHz crystal just to be able to burn the new bootloader?I find it strange that, when using avrdude by command line, it reads all the fuses as 0x00 and the signature as 0x00 0x00 0x00 (hence Invalid Device Signature). That's what made me think that maybe I need the crystal for burning the bootloader...

If it helps, I've tried it with 0022 on Win7 32bit and 0021 on WinXP, and already tried several configurations that I read on this forum and several other sites.