Unable to upload games

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.

Nope, Sirene is the default game that comes with all Arduboys produced after middle of 2017.

It does have flashlight mode available, to hold up while turning it on to enable recovery mode, but it is not required. Normal flashing routine should work on Sirene.

From my investigation on this problem, it seems that it relates to the USB driver environment of the users system preventing the reboot cycle from the Arduboy to operate correctly. For whatever reason, recently either there are just a lot more new Arduboy users so the sample size goes up, or Arduino has made a recent change making it more finicky.

@smallstorm can you try using a game uploader, to rule out Arduino being the problem?

Maybe you could tryone of these and let us know?

But otherwise please use the contact form because I’d like to solve this one, thanks!

I do remember flashlight mode, in that mode, you can hold down to write the magic number to the EEPROM. That did allow me to upload new sketch again on my Arduboy.

Since log messages are being posted, not actual code, it’s better to format it as text.

To do this, you put the word text after the starting three backticks. (Just three backticks defaults to code, but for C++ you can make it explicit by following the backticks with cpp.)

```text
Formatted error messages, logs or other text goes here
```

```cpp
C++ code goes here
```

I find that the syntax highlighting comes in useful because it draws attention to strings and numbers.

But the words that are highlighted as bold or coloured don’t make any sense in context.

No, but that’s a minor issue.
I feel that the benefits outweight the drawbacks.

The problem with not specifying a highlight language after the backticks is that the forum software (Discourse) will try to automatically detect the language. The language chosen could change in the future, based on settings, release version, added languages, etc., which could result in the way it looks now changing to something more unreadable.

I don’t know what language the forum is currently choosing for Arduino compile/upload output.

It appears that Discourse uses highlight.js for syntax highlighting.
Some information I found:

https://highlightjs.org/static/demo/