Atmega328-PU non-optiboot bootloader not working

Hi, I tried to upgrade my breadboard arduino, and ended up ordering some Atmega328-PU instead of Atmega328P-PU chips. I could burn the bootloader to them by modifying the avrdude.conf file with no problem, but the problem I'm facing is, the chips aren't working with any bootloader other than the Uno optiboot.

I've tried the bootloaders for Atmega328 versions of Duemilanove, Nano and Pro and with each of them, the Pin 13 LED just keep giving short blinks every 1.5 seconds and nothing else happens. I've read somewhere in this forum that this happened to someone who apparently overflown the memory with a sketch which changed the watchdog timer settings. He solved it by re-flashing the bootloader, but in my case, the bootloader is causing the problem.

I've tried the Uno bootloader and it works fine, or at least the Pin 13 LED doesn't blink continuously. With optiboot, it blinks fast 3 times and then stops. But still, I can't use the optiboot because my 16MHz crystals are very cheap and cannot provide the accuracy required to support UART at baudrate 115200. I've once tried by recompiling optiboot with baudrate 57600 and it worked very well.

I'm using USBasp to burn the bootloader and a USB-Serial TTL converter based on the VUSB protocol.

Thanks for any Reply.

Hi aazswapnil.

Is it a 16MHz Crystal or Resonator? What are the lfuse settings that you are using?

Here is a version of the Arduino IDE that has some pretty good features, but it also has the non Pico-Power 328 signature that you can bootload from:
http://arduino.cc/forum/index.php/topic,118440.0.html

All of the bootloaders I have worked with have the "blink" like sketch built into the flash, so I am unsure of what you are observing with the flashes (other than the inital fast flash of the Optiboot bootloader and the slow Duemilanove bootloader).

Thanks for the reply.

I'm using 16 MHz Crystals, but they are cheap, and has low tolerance levels (for example, one of them can do baudrate up to 57600 but the same model another gives garbage at anything higher than 28800). And I have experience with other blink sketches but this is nothing like them. This blinks start as soon as I apply power, they are short blinks (.5s) with long gaps (1.5s) like it is trying to give the initial blinks of the bootloader but resets in the middle of the process.

Also, I'm using lfuse=0xFF, hfuse=0xDA and efuse=0x05 for Non-Optiboot, and lfuse=0xFF, hfuse=0xDE, efuse=0x05 for Optiboot.

Hmmm... Have you tried a burn with SLOW_SCK on the USBasp? The only other thing that could be an issue is just the clock source. I still find it hard to believe that that crystal (+/-20 ppm typical) you have is worse accuracy than a resonator (+/-2000-5000ppm) that genuine Arduino's are produced all day long... have you tried a pair of 33pF caps in place of the 22pF crystal caps?

If you get a chance, please upload a picture of your breadboard setup.

Sorry for late reply. I tried with both SLOW_SCK on and off. But the Duemilanove bootloader never worked. I even tried the chip by putting it on a firend's Arduino NG board instead of bredboard. But it doesn't matter now, I am using the chips fine with optiboot recompiled with baudrate set to 57600bps. I'll be getting some better crystals next week, hope that will solve everything.

I would've posted a picture of the setup, but believe me or not, I don't even have a working camera for that. :~

No problem. Good luck with the next set of crystals. Next time request more quartz, less beach-sand :stuck_out_tongue: