Killed my Duemilanove? (with video!)

After uploading a sketch to my Duemilanove (+ the attached SpeakJet chip) including this line:

  char SayIt[1000][20] = {

/* a */   {154,128},
/* able */   {7,154,171,138,145},
/* about */   {134,173,163,191},

... blah blah blah

the board’s pin 13 LED started flashing really fast and I was unable to upload anything else. I’ve tried two different computers (mac/pc), all the Serial port options. The RX LED flashes a couple of times, but it doesn’t stop the Pin13 LED strobing away.

As you can see from the attached video, the fast flashing starts immediately I release the reset button - it doesn’t look like there’s time for the sketch to even start running - there certainly isn’t time to sneak in an upload before the flashing starts.

Sometimes, after a while, the LED stops flashing. If I then try to upload a sketch, it starts flashing again. When I first plug in the USB, it pauses, flashes with a slightly different rhythm, then flashes fast once I hit reset. (It won’t accept an upload at any point)

( I get these errors from PC, slightly different from mac: avrdude: stk500_getsync(): not in sync: resp=0x00
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51 )

I’d previously successfully uploaded the same code, but with a smaller ( [10][20] ) array. I can see I’m going to have to learn about PROGMEM before trying this again.

Is it really possible that creating a very big array bricks the board - it seems really unlikely?

Is there anything I can do apart from buying/making a programmer to reload the bootloader, or buying a new 328 chip?

Videos:

Here’s what happens when I hit the reset button:

http://yfrog.us/bei5oz (better quality at http://vimeo.com/7870145 )

Here’s what happens when I plug in the USB cable:

http://vimeo.com/7870414

Thank you for any help that can save me buying a new board (or at least a new chip)!

char SayIt[1000][20]

Is asking for 20K of data storage, you have just about 800 bytes to play with. As these are fixed you are better off trying to store them in flash memory. See:- http://www.arduino.cc/playground/Main/InterfacingWithHardware#Storage

It is difficult to know what you have blown, it won't be as a direct result of trying to use too much but it might be a secondary effect.

I am afraid the only solution I can offer is to re blow the boot loader.

Thanks Mike - I realised after I'd done it that it wouldn't work, but wasn't expecting it to kill the board completely.

I've seen a few other posts with possibly similar 'large array fries bootloader' issues: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1168940083/72#72 http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1168940083/84#84

Oh well, a new 328 is on the way from Cool Components, and a USBTinyISP from Oomlout...