I’m really an completely dumbfounded by this issue. I had a working Arduino Duemilanove up until today when I was tweaking the code using the Tone.h library. I got the thing playing all of the provided songs and was writing a add on program that would play a song according to what letter you send the arduino. This worked a few times perfectly. Then on the last upload, it compiled and loaded the code fine according to the IDE. However as soon as this finished the L LED started constantly flashing.
Since the arduino is communicating serially I have had to reset the ardunio every time I upload the code. I assumed that maybe one of my project partners has hit the reset during upload and maybe corrupted the boot load. No problem I thought, I had a extra 382 with the arduino boot load with a old project on it. So I exchanged chips. It worked fine with the old code on the replaced 382. However after the recompile and upload the same thing happens with the switched chip.
I am offically lost. I have no idea wtf is happening.
FWI, this is for a Senior Project Class. As I said it has been working fine for the last 4 weeks but now nothing with the L flashing.
This was posted on the Adafruit forums as well, and I originally posted this answer there.
Apparently it worked!
There were certain circumstances where the watchdog timer could be enabled by a sketch in a mode incompatible with the (older) bootloader, which led to the Arduino continually resetting itself, starting the bootloader, resetting, etc. This causes a flashing L led and inability to upload. People swear this happened to them as a result of running out of RAM or other software bugs, even though the watchdog is “protected” and it ought to be difficult to do; the exact mechanism was never determined.
A fix is to start up the Arduino from power-up while loading a new sketch. Unplug the arduino from USB, then plug it back in while holding the reset button down (this prevents the sketch from running after the powerup.) Set up the IDE to upload a new, known-safe, sketch (still while holding the reset button), hit the upload button and release the reset switch at just the right time so that the new sketch is loaded on the initial powerup/reset (rather than an auto-reset.)
I have had similar problems when my additions/modifications pushed the shetch over the RAM memory usage. The IDE gives you an indication of your ROM usage but not RAM. When I hit the limit I had any number of bizzare behaviours including a blinking LED.
Does the procedure of holding the reset button while uploading the sketch has to be repeated for all the sketches in the future or just a single one. Also, isn’t there any permanent solution to this problem. This seems to be resurfacing too often these days with a lot of sketches and apparently a lot of people. I read somewhere on another forum that it may be due to an unregulated power supply as to which the board is going into some power save mode. They posted a solution of connecting a 4.7 micro farad capacitor across the Vin and Gnd pin. It did work for some time but the old problem started all over again. Does itt just means that we can’t use these boards anymore or is there a bug or something which needs fixing? Whatever the reason be, it has affected a lot of projects.