Originally published: 20th July 2018.
Updated: 8th September 2018.
Updated again: 29th November 2018.
The ODroid Go is a great little handheld that requires minimal building, and runs a variety of emulators (at the time of writing: NES, GameBoy, GameBoy Color, Master System, Game Gear and ColecoVision from the built-in Springboard app, and separate Atari 2600, Atari 7800, C64 and even Doom firmwares).
I first found out about it from the brilliant Back Office Show
It’s relatively cheap, and can be bought here: odroid.co.uk
There have been frequent firmware updates, and at the time of writing (late July 2018) units are shipping with an old firmware that needs updating. The development team split off device firmware from application firmware, and the newer device firmware needs to be present in order to flash new application firmwares from SD card, rather than over a USB>serial connection. The trouble is, it’s not that straightforward a process, and you need to use command line tools to do it if you’re using a Mac, like me. Here’s a short guide I cobbled together from what was already out there, including this very helpful guide.
And then later, this guide.
Once updated, you can continue to use the following guide to flash new firmware.
UPDATE (November 2018):
Since I first wrote this guide, the firmware file type and flash method have changed slightly.
I’ve updated the commands, but I’m leaving the old instructions in place in case someone needs them. Newer versions of the firmware come supplied as a single .img file rather than a source folder. At the time of writing this update (November 2018) I used Device Firmware 20181001, and Go Play 20181004.
You may need to sudo or even sudo -H before some of the commands, but use them with caution, as ever!
ODroid firmware flashing on a Mac:
Open a Terminal window and type:
to check you have Python installed. You should have Python 2.7 pre-installed, and I believe you can use this with no issues, although you could install Python 3 if wanted/necessary (as I did).
Install pip if you’d like, but I believe this is only to be able to install esptool.py. If you want, you can run it directly from the odroid folder you create later.
I did get an error that there was no serial module found, so I had to manually install pyserial:
Download latest pyserial-X.X.tar.gz from: http://pypi.python.org/pypi/pyserial
cd to wherever you unpacked it and type:
python setup.py install
Next install the VCP driver:
You’re now ready to actually start flashing.
Plug your ODroidGo into your Mac via USB and turn on.
cd to Desktop/odroid/
It’s recommended that you erase the current firmware on your device first, before flashing new ones. Be aware that this may delete game save-states.
$python3 -m esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART --baud 921600 --before default_reset --after hard_reset erase_flash
Once finished, you’ll see ‘Hard resetting via RTS pin…’ and a prompt.
This step only for NEWER, IMG Firmware:
Put the device firmware file (odroid-go-firmware-20181001.img in this example) in a folder called odroid on your desktop, and type the following command:
$python3 -m esptool --chip esp32 --port /dev/cu.SLAB_USBtoUART --baud 921600 write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0 odroid-go-firmware-20181001.img
This step only for OLDER, pre-IMG Firmware (folder):
Put the device firmware folder (20180727 in this example) in a folder called odroid on your desktop. Then type:
./esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART --baud 921600 write_flash --flash_mode dio --flash_freq 40m --flash_size detect 0x1000 bootloader.bin 0x8000 partitions.bin 0x10000 odroid-go-firmware.bin
After a successful flash and auto-reset, power off the ODroid Go, remove the SD card and put it in your Mac.
Go Play Application Firmware:
Copy the latest Go Play firmware.bin (downloaded from: https://github.com/OtherCrashOverride/go-play/releases) to the odriod/firmware/ folder of your SD card.
Hold down ‘B’ while turning on the ODroid Go. Depending on which version of the device firmware you have, it will either automatically flash, or you’ll have to choose the firmware to flash from a menu. You can have more than one firmware file on your SD card – there are other emulators and apps available that are not part of the Go Play Springboard frontend.
Once restarted, put the SD card in to your Mac again, and if you haven’t already done so, put the Skeleton Files on the card, and then create the following folders:
You’ll also need the Coleco BIOS from somewhere (google is your friend!) and it needs to be called BIOS.col and placed in roms/col
ROM art is also now supported, and should be put on the root of your SD card.
The previously mentioned Back Office Show developed an awesome solderless DAC audio hat with a headphone socket (sadly lacking in the original hardware) and is available here!
Firmware is continuing to be updated, so keep an eye on the GitHub repository.
Also, there is a user-contributed ROM compatibility list at this link.
Finally, an active forum can be found here.
2 thoughts on “Flashing ODroid Go firmware on a Mac”
I was wondering if you ever thought of changing the layout of your blog? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or two images. Maybe you could space it out better?
Thanks for the feedback. I’m happy with the layout – it’s functional. My guides have plenty of images in them that show EXACTLY what you need to do. Images on pages where text is the driving force (like this one you’ve commented on) are unnecessary. As for ‘a little more content’, I only post what I think has value. There are plenty of options out there for the casual scroller, but if you’ve got something specific you’d like to see feel free to let me know!