Python Uploader and EEPROM backup and restore

I’ve done a complete rewrite of my python uploader script and no longer requires avrdude :smiley: Since it’s mainly focused on Homemade Arduboys I’ll post it here.

Features:

  • Supports uploading to Arduboy, DevKit, and homemade Arduboys
  • Uploads .hex files, .hex files in .zip and .arduboy files
  • Protects unprotected bootloaders from being overwritten by large hex files
  • Supports on the fly patching for SSD1309 displays
  • Supports patching RX and TX LED polarity for Arduino / Genuino Micro

I’ve also written python scripts to backup and restore EEPROM

More info and download at my GitHub

Edit:
Added Arduino / Genuino Micro support discription

13 Likes

One of the other reasons I might as well get a good Raspberry Pi and get cracking about stuff.
Those are real decent here. (although the 2 fps on the small tft screen with SPI interface was kind of a bummer) but that will work. as a tiny computer with screen (and ability to flash Arduboy!)
Smells good.
And yes, I love that GREEN text.

@Mr.Blinky
The python upload script is excellent. It uploads games much faster than via the arduino IDE. Is it possible to add on the fly patching of codes for SH1106 OLED as well ?

Not with my scripts. The SH1106 display has more complex and larger display code. It would require a more intelligent patcher to do that.

I get this error when using uploader.py:

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can’t open file ‘uploader.py’: [Errno 2] No such file or directory

I’m using this command: python uploader.py /Users/om/Documents/Arcade_Evade_Evade.hex

Anyone know what’s wrong?

I assume you are laucnching it from the same directory where the uploader.py already exists?

No, I do not think so. If I am not, how do I set the python directory? Also, I have tried the same thing on a Windows 11 VM and I get the same error, so it’s likely the directory that’s wrong.

Make sure you have checked the options to install the launcher for all users and the option add Python to PATH, when installing Python 3.x

you’ll by able to run the the script by just running

uploader.py <path_to_your_hex_file>

alternatively you can also use the stand alone FX activator to browse and select a game for upload

1 Like

I did that, but it didn’t work. I even ran the terminal as admin. Also, the Windows 11 emulation is very slow so I’m only using it as a last resort.

One of the reasons I want to use this uploader is because it can write, build programs and more to flash carts, unless there is something else that can do the same thing?

I don’t know much about OSX as I’m mostly a windows guy. But if you installed python 3.x I believe you need to use python3 instead of python in terminal.

to check python works from terminal / commandline try typing

python --version

and/or

python3 --version

If that works and the file is still not found, maybe the path to the file is wrong or not accessible with the given credentials / permissions ?

1 Like

Okay, I’ll try that once I get back home. Thanks.

Okay so I did a "cd’ on /usr/local/bin (where my py file is) and did the command and it said this:

Arduboy python uploader v1.2 by Mr.Blinky April 2018 - Jan 2019

Usage: uploader.py hexfile.hex

but nothing about uploading.

Alright, so I put did uploader-gui.py in the cd as well and it works, though “works” is not quite the word. It only works with some hex files, and when it uploads, when the program is playing on the arduboy, the screen is so incredibly warped. The worst part is, after about 10 seconds, the screen just goes black, no sound, nothing. The whole Arduboy code is not working, but the board is still on and can be recognized on the computer, phew. Any idea why? Perhaps it is flashing the wrong bootloader or settings? I used this hex: https://raw.githubusercontent.com/eried/ArduboyCollection/master/Arcade%2F3in1D%2F3in1D.hex
and this is the hex that didn’t work: https://raw.githubusercontent.com/eried/ArduboyCollection/master/Action%2FTrench%20Run%2FTrenchRun-v1.1.hex


How do I configure this?

Try:

python /usr/local/bin/uploader.py /Users/om/Documents/Arcade_Evade_Evade.hex

Are you using a homemade Arduboy with a screen other than an SSD1306? (E.g. an SSD1309)

1 Like

No, I’m using the SSD1306 SPI one.

It still does the same thing; doesn’t upload.

Okay so I tried it with a different hex and it works: so long story short, the star wars trench run game hex has something wrong, and it seems just my screen is not working. The sound, buttons, everything else works. I know for a fact I am using an SSD1306 screen, so what could be the issue with it?

I’m having trouble with the send to arduboy shortcut file. After I click “open” after clicking the file and after the prompt, when I go to “send to” on the hex file, it doesn’t say Arduboy anywhere, it says bluetooth device, compressed file, desktop etc

I presume there is an error message of some kind?

Did you get a message of any kind when it ran?
Also, are you sure the script ran and you didn’t just highlight it without running it?
Also, just to check (considering the file paths you were using earlier) are you attempting to run it on Windows, Mac or Linux?

I am using Mac and Windows. Mac for the normal command way, and the Windows only for the special “send to arduboy” file (in @Mr.Blinky 's python utilities.

I did not get any error message, nothing at all as if it could not detect an Arduboy, though it works with other hex files, so there is likely something wrong with the hex file. The one which didn’t upload is this game: Space Battle - Trench Run I downloaded the hex from @eried 's repository.

Tried it with the 1309 configuration and it just did not work, so it is an SSD1306 for sure. Maybe it could be because I’m using the Alternate Wiring from the homemade package? Or maybe it is flashing the program to the cathy 3k bootloader instead of the normal catarina bootloader? Or maybe you need a flash chip to successfully upload the game?

If you didn’t get an error message, it’s hard to say what the problem might be.

VBScript could be disabled on your computer for some reason, or it could need admin permission (e.g. if it’s editing the registry).

It depends if you’re compiling the game yourself or attempting to upload the .hex from the releases.

If you’re compiling it yourself using the homemade package with alternate wiring then that possibly isn’t the problem.

If your homemade Arduboy has the alternate wiring and you’re just downloading the .hex from the GitHub releases and/or using .hex files you found online then yes, that’s likely to be the problem.

If you try to use a game that was compiled for the standard wiring setup on a homemade Arduboy with alternate wiring then it’s likely that the signals will be sent to the wrong ports.

The bootloader shouldn’t make a difference because normally games don’t overwrite the bootloader.

It’s unlikely.

It’s possible for some games to require the FX chip, but so far (as far as I am aware) none have made any special use of it. (There’s a few demos that have, but no proper games as far as I am aware.)

1 Like