WIP: Android App that flashes games via OTG [Arduboy Mate]

Hi All,

I’m currently writing an Android app, that can download and flash hex files on your beloved Arduboy. It needs an Android device with Kitkat or newer capable of USB OTG, but root is not required.
I’m hoping to throw out a first beta version in the next few days.
In the meantime I would like your opinions and suggestions.
What is it you would like to see in such an app. Or do you think it is useless?

Best regards

2 Likes

With even a minimal version, this would give people mobile game replacement.

This would be a great! I know I handled this problem in part by buying the fun pack to have more than one Arduboy, but this would still be really handy.

My key request would be that this use the .hex files generated by the standard Arduino IDE. That seems to be a common denominator in terms of development environments.

I’m building it in such a way, that anybody could just add urls pointing to their favourite game repositories. As a developer or repo maintainer, you would just need a web space where you put your hex files and a corresponding repo.json file that describes the repository content. Really easy, done in minutes. Even easy to automate if you will.

Nice idea. So, how is this planed? Do I have to provide the repo.json manually into your app or will be something like a master list with all links to the contributed repo.json files?

Oliver

I have android and the beta version that is out is named Nougat.

Hey, check out this thread!

If you would like, you could use my API to connect to my repo for downloading games/applications. It’s up right now with a few games with a lot more planned for later on. It would be great if there was a mobile version of this. :smiley:

http://community.arduboy.com/t/arduboy-manager-windows-os-x/1569

@crait Yes, that looks quite similar to my idea. It would be great, to have a common api / repository description that every app could just use. Do you have a documentation for your API, or something like that.
I have put an example repo.json file on my server. take a look at http://mockfrog.de/arduboy/repo.json

I don’t want it to be a public API, but I will share with you some information over a direct message if you’re interested in getting a unified Arduboy repo that can be accessed across multiple platforms.

It would be nice if you also allowed a path and file name for local files. There may be times that the Android device isn’t connected to the internet or you don’t want to use up mobile data.

Perhaps anywhere in repo.json that you accept an http: URL you could also accept a file: URI

1 Like

I’m already using some sort of caching for offline usage. And I’m also planning to register an intent filter for local files that have a .hex extension. This will give you the opportunity to select any file from your download folder and it will open in the app.

3 Likes

Any update on this?

I’ve been trying to find a tool for flashing games on my Android devices with no luck. The things available in the play store either don’t support the Leonardo, don’t work with the ISP on the Arduboy, or have some kind of USB failure, presumably because I’m running Nougat (now released) and they don’t have the appropriate permissions.

Hello Mike,
thank you for reminding me to put some work into this app :blush:

I started a beta program for Arduboy Mate in the google play store.
What should work:

  • Flashing of local hex files to your Arduboy
  • Flashing hex files from other apps (Dropbox etc)
  • Browsing my repository which only contains one game, which is not even finished (sorry for that)
  • You can add your own repository if you like. The json repository format is really simple. (post your repos here if you like)

What does not work:

  • Settings screen not implemented
  • No dev board support yet

I haven’t had the opportunity to test the app on nougat devices just yet.
Only on lollipop and marshmallow.

So give it a try if you like and let me know what you think.

https://play.google.com/apps/testing/de.mockfrog.arduboymate

Disclaimer: This is beta software. Use at your own risk. It may brick your Arduboy or burn your house.

2 Likes

And note that if you got your Arduboy from the Kickstarter campaign, bricking it beyond being able to recover it using the reset switch is a distinct possibility.

http://community.arduboy.com/t/how-to-reset-arduboy-if-its-bricked/807/45

I updated the app to better restrict the size of the flash file. Your bootloaders should be safer now. :wink:

have fun

2 Likes

Cool. Glad to see an update. And it actually worked on my 6P running Nougat. Mostly, anyway.

What worked: flashing the .hex file from your repository.
Flashing a .hex file from a file manager.

What didn’t work: the built-in file browser. Couldn’t seem to get to my repository of Arduboy hex files with it. Launching my file browser worked, though.

What was annoying: Every time I plugged in/turned on the Arduboy, it asked if I wanted to do that by default. That eventually stopped, but I’m not sure what was going on there.

I didn’t see a progress indicator when flashing from a file browser. The flash from your repo did have a quick popup about starting the boot loader, so maybe I missed it. Better notices - like a 'Transferring XXXX now, Transfer XXXX done" - the latter needing to be dismissed would be nice. Maybe a system notification?

Thanks!

EDIT: Meant to ask: does this use the same repo format as the Arduboy Manager? Be nice to be able to use that repository.

Thank you very much for your testing.

What didn’t work: the built-in file browser. Couldn’t seem to get to my repository of Arduboy hex files with it. Launching my file browser worked, though.

I will have a look at it. It’s probably a permission problem some how. Can you specify the problem? Are you able to browse your files at all from within the app, or what did it do when you pressed the folder button?

What was annoying: Every time I plugged in/turned on the Arduboy, it asked if I wanted to do that by default. That eventually stopped, but I’m not sure what was going on there.

Yes, that’s a known problem. The new Android permission system won’t let an app talk to every connected USB device. For every new recognized device the Android system first has to ask the user to give permission. An Arduboy already counts as two different USB devices due to two different product IDs. One for the running firmware and one for the bootloader. So at the very least you get this dialog twice:
The moment you first connect your Arduboy and the moment the bootloade kicks in for the first time.
Some games / hex-files I’ve found, seem to announce themself a little bit different USB-wise so Android asks for them as well.
I tried a lot to workaround this, but haven’t found a solution so far.

I didn’t see a progress indicator when flashing from a file browser. The flash from your repo did have a quick popup about starting the boot loader, so maybe I missed it. Better notices - like a 'Transferring XXXX now, Transfer XXXX done" - the latter needing to be dismissed would be nice. Maybe a system notification?

That’s a good suggesstion. I will definitly need to do some more on the UI front.

EDIT: Meant to ask: does this use the same repo format as the Arduboy Manager? Be nice to be able to use that repository.

Yes @crait and I have agreed on a common repo format. Just add it to the repo list and have fun. (http://crait.net/arduboy/repo.json)

There’s just no way to get out of the silos that the Folder button lets you access to. I get three sections in the resulting menu of places: Images, Videos, Audio and Recent in the first one. The second is Downloads and a pair of Drive accounts. The last one is Photos, Dropbox, Keeppass2Android (a password locker?!?) and then some file browsers.

I don’t see any logic in those sections, and none of them have a way to escape from the silo you can read with them, and there’s no entry for the internal disk. So - no way to get to things I downloaded from my desktop via SFTP, which is where I put the Arduboy hex files. Except by going through a file browse, that is.

The @crait repo works like a charm! Be nice if some of the larger game providers would provide repos as well. This time, I noticed the two popups: one for starting the bootloader, and one for things having finished.

1 Like

plz no :fire_engine:

Awesome. AWESOME. Just tried successfully on my Nexus 5X, now i’m about to set up my own repo :slight_smile: Thanks! Can’t wait to see how it evolves (but it’s pretty much all one need I think).

Maybe just adding support for relative paths, so we don’t have to put the complete URL in the json file for each item.

Oh ! If you have some local caching, as you said, maybe add some kind of keyword search? Could be useful when the collection grows, especially with several repos.

I can’t seem to get my own repo to work. I’m trying to use a github repo for this (act of desperation). You can check that out at http://github.com/mwm/arduboy-games. Using the “raw” link for the json repo gets the json file as expected. But adding that link to Ardumate just gets a “Repository data request failed” message, and a blank entry. I get the same result from other hosting services as well.

Adding the Arduboy Manager link worked fine. I can add the example link that the “+” button brings up as well. That json file I used started with that example and just changed the text.

Is there some way to get more information about what’s going wrong here?

Also, it’d be nice if editing an existing repository URL were possible.

Thanks.