Unable to upload games

I installed arduino from the actual website and not through microsoft. I didn’t recall seeing that Ardunio Setup: installation Options window but I I can’t be 100% sure.

Yeah I have that selected as below but I’m still receiving the error codes when trying to upload sketches. I’ve pasted these error codes below if that helps at all?

Yikes, so most of that is the compiler info, the error message part is only the last line:

“An error occurred while uploading the sketch”

But in this case you’ll need to turn on “verbose mode” to get more info about what that error actually is.

File->Preferences

11905255186_a492feeee9_o

Enable that and let us know what the lines are after:

Sketch uses 7000 bytes (24%) of program storage space. Maximum is 28672 bytes. Global variables use 1216 bytes (47%) of dynamic memory, leaving 1344 bytes for local variables. Maximum is 2560 bytes.

Those are not helpful as they do not show upload info (only compiler info). Enable the verbose upload option as @bateske mentioned.

1 Like

So this is the new error code I got:

Arduino: 1.8.9 (Windows 10), Board: "Arduino Leonardo"

Sketch uses 7000 bytes (24%) of program storage space. Maximum is 28672 bytes.
Global variables use 1216 bytes (47%) of dynamic memory, leaving 1344 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM5
PORTS {COM5, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found upload port: COM5
C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM5 -b57600 -D -Uflash:w:C:\Users\danie\AppData\Local\Temp\arduino_build_607589/HelloWorld.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "C:\Program Files (x86)\Arduino\hardware\tools\avr/etc/avrdude.conf"

         Using Port                    : COM5
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

avrdude: butterfly_recv(): programmer is not responding
Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

This is so bizarre, Arduino must have changed something recently that is causing this problem.

I think there was another user having this issue, and uninstalling and reinstalling Arduino solved the problem?

According to Arduino the reset button method should still work:

https://www.arduino.cc/en/Guide/ArduinoLeonardoMicro#toc6

Here is a video guide:

It is really strange that it is happening though. What version of windows are you running?

At this point it might be best for you to write to arduboy.com/contact and I can help you out there. I might want to get that unit from you to run my own tests on it, and I can send you a replacement.

@smallstorm I’ve gone through and reformatted your ‘error messages’ by putting them in code blocks.

If you need to post any more either do this:

```
Error message goes here
```

Or this:

[code]
Error message goes here
[/code]

This symbol:

`

is the ‘grave’ character.
If it’s on your keyboard it’s usually to the left of the 1 key, above tab.
(If you’re on a phone, I have no clue where it might be.)


This part seems wrong to me.
I could be wrong but I think the second port should end up being a different port to the one earlier.
E.g. it should find COM5 the first time and later COM6 should appear.

Could you go back into the Device Manager and this time click on View > Show hidden devices?
Then if you go to Ports again is should show up all the COM drivers that are installed.
I’m wondering if maybe you’ve only got one of the needed drivers.

Here’s what I get on my Computer:
COM

COM3 is what the Arduboy uses for serial transmission and detecting the upload request,
and then COM4 is the port it switches to for the actual uploading process.

Here’s what I get when I upload a program:

Sketch uses 26730 bytes (93%) of program storage space. Maximum is 28672 bytes.
Global variables use 1588 bytes (62%) of dynamic memory, leaving 972 bytes for local variables. Maximum is 2560 bytes.
Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {} => {}
PORTS {} / {COM4, } => {COM4, }
Found upload port: COM4
I:\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14/bin/avrdude -CI:\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14/etc/avrdude.conf -v -patmega32u4 -cavr109 -PCOM4 -b57600 -D -Uflash:w:I:\Temp\arduino_build_858764/TurtleBridge.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "I:\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino14/etc/avrdude.conf"

         Using Port                    : COM4
         Using Programmer              : avr109
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega32U4
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PA0
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  9000  9000 0x00 0x00
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0x00 0x00
           lfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  9000  9000 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : butterfly
         Description     : Atmel AppNote AVR109 Boot Loader

Connecting to programmer: .
Found programmer: Id = "CATERIN"; type = S
    Software Version = 1.0; No Hardware Version given.
Programmer supports auto addr increment.
Programmer supports buffered memory access with buffersize=128 bytes.

Programmer supports the following devices:
    Device code: 0x44

avrdude: devcode selected: 0x44
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% -0.00s

avrdude: Device signature = 0x1e9587 (probably m32u4)
avrdude: reading input file "I:\Temp\arduino_build_858764/TurtleBridge.ino.hex"
avrdude: writing flash (26730 bytes):

Writing | ################################################## | 100% 2.00s

avrdude: 26730 bytes of flash written
avrdude: verifying flash memory against I:\Temp\arduino_build_858764/TurtleBridge.ino.hex:
avrdude: load data flash data from input file I:\Temp\arduino_build_858764/TurtleBridge.ino.hex:
avrdude: input file I:\Temp\arduino_build_858764/TurtleBridge.ino.hex contains 26730 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.20s

avrdude: verifying ...
avrdude: 26730 bytes of flash verified

avrdude done.  Thank you.

The important bit is this:

Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {} => {}
PORTS {} / {COM4, } => {COM4, }
Found upload port: COM4

Compare it with what’s happening on your Arduboy:

Forcing reset using 1200bps open/close on port COM5
PORTS {COM5, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found upload port: COM5

For ages there’s no COM port available and when one does come up it’s COM5 again.
That doesn’t seem right.

Like I say, I could be wrong here, but that looks like the imporant bit to me.

I suspect @Mr.Blinky will have a better idea than me.
He understands the upload process better than I do.

It isn’t but from reading into Arduinos documentation as best as I can understand it “This just happens” sometimes and you need to use the reset button.

It comes from the failure of the system to re-detect the com port after it is reset by starting and stopping the serial port.

According to Arduino this happens due to something potentially messing up the interrupt vectors, but we know this is not the case with Serine.

What I think happened is that Arduino recently updated something on how their upload works on the leonardo and causes fringe cases to fall under this timing/rediscovery window.

I do suspect it is driver related however. And I think uninstalling and reinstalling “might” be a solution.

It’s going to be frustrating as heck, because I suspect when @smallstorm gets a chance to send it in, I’ll test it and it will work just fine. This is the case in 80% of customer returns when there is a problem like this, I plug it in, it works fine and then send it back. the other 20% of the time I have to use the reset button.

I’ve never had to retire an Arduboy from service due to an inability to program. In the beginning times there were some cases where I had to reflash a bootloader, but now that is fixed in the factory.

Thanks for this, I checked the hidden devices and got this:

image

Is there anything I can do to get the same Ports as you?

I followed the instructions from the video and still no luck. I got an error code saying “the programmer is not responding.”

Just to check re posting this to you guys - I live in the UK and purchased it through Pimorini. Shall I take it up with them and return it or am I still to send it to the US?

Hrm, that is strange.
Is the Arduboy the only Arduino board you own?
And have you previously tried to reinstall the Arduino IDE?


In my case I didn’t use the installer, I used the .zip file option and installed the files manually by unzipping the folder and moving the files to where they need to be.
I think the first time I set up the Arduboy I might have had to manually install the drivers but I can’t remember.


Technically that’s an error message. An error code is always a number.
(Though sometimes it’s represented in hexadecimal, so the number has letters in it.)

I know I’m being pedantic, but it’s good to know the difference.


Specifically which documentation?

I think this is an indication that the way the IDE works internally is quite brittle and prone to breaking.

I’m convinced it’s something to do with the installer process because I don’t remember ever having any problems of that nature and I always update using the .zip instead of the installer.

Looks like your Arduboy doesn’t get into bootloader mode. Otherwise there would be a com port named ‘Arduino Leonardo bootloader’

I believe the Sirene game suffers from the magic key issue and prevents Arduboy to enter bootloader mode. (just resets)

Arduboy has a reset button left of the micro USB connector. you can use a tooth pic, sim tool or other small pin like object to press it.

Upload any sketch from the Arduino IDE then when the port info is displayed in the black log window. Press the reset button.

If it fails repeat this once more as the Arduino Leonardo bootloader com port is/was not installed yet.

1 Like

Personally I recommend using a mechanical pencil.
Usually they’re the ideal size and the lead/graphene is probably soft enough to avoid damaging the rubber.
(Or at least less so than something pointed and made out of metal or wood.)

As you say, a sim tool is also a good option because it tends to be quite blunt and is a decent size.

This isn’t right, it only shows “Arduino Leonardo Bootloader” While it is being reset.

Serine should not have this problem, it is the default sketch loaded on all Arduboys being sold.

At this point, I would recommend uninstalling Arduino and reinstalling it.

This is the one we suggest. Is there a chance you might have used the “Windows app” version?

@Mr.Blinky means there should be an Arduino Leonardo bootloader (COM#) in the device manager list.

In my drivers I have Arduino Leonardo bootloader (COM4):

But @smallstorm doesn’t have an Arduino Leonardo bootloader, just 3 copies of Arduino Leonardo:

Normally inactive devices are hidden, but using View > Show hidden devices (as I told @smallstorm to do earlier) shows inactive devices as well.
(Hence why two of the Arduino Leonardo devices are greyed out in the latter screenshot and all of the devices are greyed out in my screenshot - they’re inactive devices.)

The Arduino Leonardo bootloader driver should become active during upload,
like what happens when I upload:

Forcing reset using 1200bps open/close on port COM3
PORTS {COM3, } / {} => {}
PORTS {} / {COM4, } => {COM4, }
Found upload port: COM4

The fact it’s missing on @smallstorm’s computer is probably why this is happening:

Forcing reset using 1200bps open/close on port COM5
PORTS {COM5, } / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM5, } => {COM5, }
Found upload port: COM5

What should be happening is this:

Forcing reset using 1200bps open/close on port COM3
PORTS {COM5, } / {} => {}
PORTS {} / {COM6, } => {COM6, }
Found upload port: COM6

But there’s no Arduino Leonardo bootloader (COM6) device,
so instead the upload doesn’t happen, the attempt to upload just times out,
then the Arduboy resets and COM5 becomes available again.

(That’s how I understand it at least. Again, I’m not the expert on this one.)

Those “hidden” ones are devices that the system has enumerated in the past.

The absence of a boot loader hidden view just means the system has never seen it. So I guess you’re partially right in the sense that the system has never triggered the boot loader correctly.

I suppose that it is possible the bootloader has been corrupted ever since it’s first upload but I also doubt that because the factory uploads the first game via USB. I had the factory do it this way so that any device that cannot load games via USB cannot get shipped.

So like I mentioned before, I think Arduino changed something in their most recent update in how it talks to Leonardo somehow. This is just a total guess.

@smallstorm please do write into the contact form, I want to make sure we get this figured out… If you’re overseas then it’s a little more complicated but I want to know what happened!

Also due to this thread and others like it, I’ve made an official troubleshooting guide that is like a choose your own adventure:

You can access it through the quick tool bar:

So I was looking at the solution in this post was to manually uninstall and reinstall the driver:

I’m also tracking this problem here:

Maybe it is just a coincidence, but having 2 users run into the problem where the bootloader cannot be accessed within a few days leads me to believe the issue is with Arduino.

Isn’t Sirena one of those games you have to hold the down button at the title screen to drop the system to bootloader mode. I recall looking it up and having to do that on my first flash upload. Hopefully, that will solve the problem.