Have to restart TinkerGen GameGo and reload page to download more than once

I’m hoping someone can help me with this.

Using MakeCode Arcade in the browser, I am able to download my program to my GameGo device only once. After making a change to my program and downloading it again, the download appears to fail and the web page gets stuck showing the modal “Downloading” screen. To make progress, it seems I have to restart the device and reload the web page. This makes the development loop less pleasant.

FWIW I’m relatively handy at debugging so can run diagnostics or dig into this if given some pointers.

My device identifies as a TinkerGen F4 v2.7.5. I cannot find any firmware online, so am unsure whether updating might help.

Thanks!

can you share a link to your code? also, does anything pop up in the devtools?

Here’s how the screen looks when the timeout occurs, two minutes later:

Here is the “Downloading” screen as it appears for two minutes. Those webusb log messages were visible initiating the download.

Hi Richard, thanks for the fast response.

I don’t think there’s anything special about the code. Creating a new sketch and dropping some basic blocks will repro this for me.

Unfortunately I can only attach a single screenshot to my post, as a new user of the forums. I’ve had to remove some images that might have been helpful.

Here is a breakdown of what happens:

  1. Flash the program successfully
  2. Make a change to the sketch and try to flash again
  3. Device shows “flashing” briefly, then returns to the previously shown program
  4. Browser shows the “Downloading” screen for a while, with no error in the dev tools
  5. After 120 seconds, the attempt times out

Sticking a breakpoint where the timeout happens, there doesn’t appear to be any diagnostic information, which makes sense. It’s just a timeout. n is undefined.

If I power cycle the device, I can deploy again.

I’d previously said I had to reload the page. That was only because I never waited two minutes for the time out. Having the ability to cancel the async operation would at least allow working around this, but the ideal would be to fix the deploy.

Any tips on how I could debug stuff at the device level?

@drewnoakes by any chance do you have multiple tabs or browser windows open to MakeCode? webusb can be a little finicky about sharing devices between tabs.

i’m afraid that i’m no expert when it comes to hardware/bootloader debugging. i’m not sure what bootloader the tinkergen gamego uses, but the source for the generic stm32f uf2 bootloader is here:

you might have more luck reaching out to the tinkergen folks and seeing if they have any information on debugging the hardware or updating the firmware.

also, would you mind opening an issue for this on our github? I know some folks on the team have gamegos and can test this out.

Thanks Richard. I did have multiple tabs open so was hopeful that was the cause, but unfortunately it wasn’t enough to fix the problem.

I filed Unable to deploy to GameGo more than once without restarting and refreshing · Issue #5484 · microsoft/pxt-arcade (github.com) as you suggested.