I’ve been able to successfully upload and re-upload code to my Arduboy since I got the thing. But suddenly it stopped working. The device is still functional in that it has a programuploaded to it right now the behaves perfectly fine. However, I cannot seem to put anything new on the device. When I press the upload button from the Arduino IDE once it reaches the “uploading…” phase, it will restart the program that is currently running on the Arduboy and then will indefinitely hang on the “Uploading…” message. It will never upload anything new to it.
-using the “reset” button as per Kevin’s instructions in the video he posted a while back
-uninstalling and reinstalling the drivers for arduboy
-uninstalling and reinstalling the Arduino IDE
-running on a different computer
-using a different USB port.
none of these helped.
Another thing worth noting is that the Arduino IDE recognizes my Arduboy as an “Arduino Robot Control” which I haven’t seen anybody else mention, so that might be a clue in some way?
If anybody know what my problem might be, I’d love to hear it!
Do you have another data cable you can try with? That seems to be about the only thing missing from an otherwise flawless troubleshooting list.
Have you made sure that you selected Arduino Leonardo as the board type (regardless of what the IDE tells you it is)? Look at the status line at the bottom of the IDE.
What is the current sketch that you have running, which you are unable to replace?
ekem, yes I have tried two different USB cables and they both behaved the same.
MLXXXp, I tried selecting “Leonardo” and “Arduino Robot Control” as the board type with the same thing happening each time.
As for the current sketch that I’m running: It was a quick sketch I threw together to test some things. One thing I was testing was seeing how big of a 2D char array I would be able to have without memory issues, so I created a very large array and filled it with values.
I don’t really know how the Aruino/Arudboy boot loader works, or how the memory map of Atmel chips is structured but is it possible I ended up overwriting part of the bootloader with this large array? I feel like that would be a massive oversight when designing a bootloader though…
It shouldn’t be possible to overwrite the bootloader.
It looks to me that you’re experiencing the problem that occurs when the sketch uses large amounts of RAM, as discussed here and here.
Are you sure that you were using the reset button properly? You only have about 8 seconds to start your upload after pressing it.
If your sketch uses the standard Arduboy library, you can try one other thing:
Hold the UP and LEFT button down when powering up the Arduboy. This will invoke safe mode when arduboy.begin() is called. The screen will remain blank and the sketch will be in an idle loop. This may allow you to upload a new sketch.
I finally was able to get it to work, the timing for the reset button seemed to be the issue. After trying it time and time again, I finally got it work by pressing the reset button INSTANTLY after the “uploading…” message appeared on my computer screen. Pressing even a second before or after that wasn’t working for me at all.
Oh well, all is good. I’ll be careful with what I flash onto my Arduboy from now on, haha.
Yeah the timing is a bit tricky to get, we are working on some more software to give you a longer window to reset the device. Glad you got it to work!