Looking for chips for Duemilanove

Hey everybody, I am making a project for my wife and I wanted to use an Arduino for it. I currently have a Duemilanove w/328 chip. I found some ATMEGA328 chips at Mouser.com and found these instructions to load the bootloader. I tried a few times to load the bootloader to no avail. Come to find out, I think I ordered the wrong chips. What I ordered was the ATMEGA328-PU (the only chips I found on the site...heck they were only $2 each). I am sure these are the UNO chips. What I would like to know is where can I find the Duemilanove chips (ATMEGA328P?)? I thought about switching to an UNO, but I read it is more involved to load the bootloader on to new chips.

Thanks for any help,


Hi Alan

From my reading of the Atmel site, the PU designation is just one of the ordering codes for the different models within 328P family. Check the table at the bottom of this page http://www.atmel.com/devices/ATMEGA328P.aspx

I think you should be okay since Arduino Duemilanove supported 328p.

So on the plus, what you have should work. As for Uno being more involved, I don't see that particularly. I presume from what you're saying you'll be using your existing Arduino Duemilanove as the ISP and using a breadboard or similar to drive the 328PU you're programming with the bootloader? These instructions http://arduino.cc/en/Tutorial/ArduinoToBreadboard should do the trick for you.

Cheers ! Geoff

The '328 and '328P have different "signature bytes". Once bootloaded, their is no differnce.

Runthe Optiloader sketch https://github.com/WestfW/OptiLoader on your existing Uno to program the new parts on a breadboard that is wired up with a crystal, I think you'll be good after that.

You can use the chips that you have and your existing Arduino configuration as ISP. The only issue with the '328 chips is that they have a different signature.

The trick is to change the signature in AVRdude so that it expects the sig of your chip:

Find your avrdude.conf file and in the entry under ATmega328, edit the line:

signature = 0x1e 0x95 0x0F;

to read:

signature = 0x1e 0x95 0x14;

Then do exactly what you did before and it should all work. Once you have the bootloader installed the chips behave in exactly the same way. I had this issue with a batch of cheap '328s I bought before I knew there was a difference.

Once you have burnt the bootlaoder, remember to change your config file back.

Thanks for all the replies. I'll try again and post my results.


The only file I found was Library/Arduino/preferences.txt (I am using a Mac with Lion), and I did not find the line you mentioned.
[Nevermind, I found it here… http://arduino.cc/forum/index.php/topic,58670.0.html ]

I changed the signature, and it still won’t program.
If this helps, I get the following error: avrdude: stk500_getsync(): not in sync: resp=0x15

I am still trying…

Thanks again for the help,