Wanted to use an Atmega328 microcontroller for a new circuit design, but I unfortunately purchased the Atmega328-PU instead of the 328P. Not all hope is lost for those who have made the same mistake! There are lots of tutorials and forum posts instructing how to use an Uno and a breadboard circuit to get that bootloader uploaded on a blank chip, but none of them worked for me. Then I stumbled upon this instructable:
Here's the procedure I used which follows in line with the linked video, plus a few important details:
- Use Arduino IDE ver 1.0.3 (ver 1.0.5 did not work for me)
- Open the file: arduino-1.0.3\hardware\tools\avr\etc\avrdude.conf
- At line 9245, change the ATMEGA328P signature from 1e 95 0F to 1e 95 14 and save the file.
- Close the file, open Arduino IDE
- Under Examples, open ArduinoISP
- Connect an Arduino Mega2560
- Upload ArduinoISP to the Mega2560
- Unplug the Mega, install a blank ATMEGA328-PU in the microprocessor slot of an Uno board.
- Wire up the SPI interface from the Mega to the Uno as follows:
- Connect the Mega to your computer again.
- Under Tools:Board, select Arduino Uno
- Under Tools:Programmer, make sure you have "Arduino as ISP" selected
- Select Tools:Burn Bootloader. You know things are going well at this point if lights are blinking on both boards.
- Very important!! Open the avrdude.conf file again. At line 9245, change the signature back to 1e 95 0F and save.
You can now load sketches to your new ATMEGA328-PU!
Hope this is helpful to some.