I uploaded my sketch like normal, but this time when it restarted the DEBUG LED started to blink rapidly -- even though my sketch has nothing to do with Digital #13.
I tried to go through the troubleshooting upload guide that the IDE recommended. Everything checks out fine. I even tried uploading the Example sketches, but nothing works. The RX LED flashes about 4 times, and then stops. When I try uploading the Blink sketch, for example, I get the following output:
Binary sketch size: 1414 bytes (of a 14336 byte maximum)
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_recv(): programmer is not responding
The Arduino is connected directly to a USB port on my iMac. If it helps, I'm running an Early-2008 2.8GHz iMac w/ 2GB RAM, 320GB HDD and OS X Leopard 10.5.6. I also tried reinstalling the FDTI Drivers included in the Arduino install. I tried using v12 and v14 of the IDE, but both have the same outcome. I also tried using different board options as recommended in other threads. All give same results. I tried various delays between pressing upload and connecting the board, or resetting and pressing upload, but nada.
Is my ATMega168 totally dead, or is there a way to revive it?
Sounds like you have damaged the bootloader code. This can happen if you write to an array at an invalid index number, among other ways. There is a menu item in teh IDE to burn the bootloader. It requires a special cable/connection/harness sort of thing to do it.
I've seen info on how to deal with this. But I can't seem to find it right now. I don't think your Arduino is bricked. At worst, you can buy a new chip and put it in the socket (assuming you have a socketed chip).
And I've seen info on a DIY cable for burning the bootloader. Now that I think about it, it may be in the IDE. (I'm not at home so I can't check real quick)
Darn! You're right, silly me. I tried to access index 4096 in an array of 256 elements. That's what I get for listening to loud music while programming, bleh!
Sadly, I guess reburning the bootloader is the only option. After a short search, I found this tutorial: http://www.geocities.jp/arduino_diecimila/bootloader/index_en.html I'll give it a try, hopefully it will work. I'd like to avoid touching the Arduino board with my soldering skills, but it seems to be my only option :(. I don't have the money now to buy a programmer, or a new chip.
Thanks for the help! You saved me $6! Took me 30 minutes to solder the stupid header onto pads that were filled, but managed to get it to stay long enough. Fresh Bootloader crisp out of the toaster, and board works fine now. I accidentally melted the Digital 8-13 female header, but attaching a spare on top as a "riser" seems to have worked.
Arduino IDE 14 seems to not work. I get the "sync" error many people have been getting, but good ol' 12 works fine.
EDIT: There it goes again! Its flashing at me again. I think I found the cause of the issue. What is the maximum size a char array can have? I'm trying to store 4kB (4096 bytes) of data (or a 64 x 64 matrix) in a single array. I'm trying to an OLED, and each value is a hex from 0x00 to 0xFF representing the color. Is a char array the best way of doing this (for testing purposes)? Or is there a better way to store that much data?
Oh, right! I'm limited by RAM. hurm! Is there any way to see how much ram is available? I'd wire up a 1Mb EEPROM chip I have, but all of my pins are taken up by an OLED. I guess I can resize my images for testing.
Thanks for your help! Killed it a 3rd time so far, but the DIY programmer works like a charm!
Yes. I've got the correct microcontroller and board selected under the boards menu, but it still doesn't work. IDE 12 works fine - it's just 14.
I believe there is a way to report how much memory is available while your program is running. Try searching the playground. I've heard of such a thing, but never looked into it.