“Black and white shot of assorted woodwork equipment on wooden wall, Broadstairs, Ramsgate, England, United Kingdom” by Sneaky Elbow on Unsplash

If you don’t know what the Odroid Go is, take a look at my introductory and assembly post to get up to speed.

This guide explains how to upgrade to the new style firmware. It is assumed you have some basic understanding regarding the Odroid Go firmware and that you are using a Linux OS. If this is not the case use the guide at the following URL: https://wiki.odroid.com/odroid_go/emulator/firmware_update#windows

Preamble

The Odroid Go’s firmware is in active development with new releases happening every few days. The way the software is packaged and delivered has changed drastically causing some confusion among users. In this post, I’ll go over the steps I used to upgrade my Odroid Go to the latest firmware version which includes among other things support for emulating the ColecoVision system.

Getting started

The Odroid Go comes with firmware version 20180627 of the box. The initial versions of the firmware were released as a single downloadable file that when executed would flash the bootloader and emulators. The newer format splits the code into the following units:

A base firmware that is also a bootloader and a flasher

A firmware.bin file containing the Go Play emulators

The base software of the Odroid Go’s microprocessor is called firmware but in this case, it also works as a bootloader and can flash the content of a file in the SD card into the flash memory of the ESP32 microprocessor. In this regard, this file behaves more like the BIOS of a computer.

The Go Play emulators package is also called firmware and distributed as a single file called firmware.bin. Think of this file an installable package. Instead of installing it using the computer and the USB cable, this file is copied to the SD card and the “BIOS” installs it by flashing it into the microprocessor.

The base firmware (“BIOS”) has to be flashed from the command line into the flash memory of the Odroid Go first. The latest version (20180718) can be found here: https://github.com/OtherCrashOverride/odroid-go-firmware/releases

Once downloaded, uncompress it and execute the following commands (text in bold are commands entered by the user, normal text is computer output).

Step 1: Uncompress the firmware (“BIOS”):

cd /tmp

tar -xvf ~/Downloads/odroid-go-firmware-bin-20180718.tgz odroid-go-firmware-bin/

odroid-go-firmware-bin/esptool.py

odroid-go-firmware-bin/flashall.sh

odroid-go-firmware-bin/odroid-go-firmware.bin

odroid-go-firmware-bin/bootloader.bin

odroid-go-firmware-bin/partitions.bin

odroid-go-firmware-bin/eraseflash.sh

Step 2: Erase the flash memory of the Odroid Go:

cd odroid-go-firmware-bin

./eraseflash.sh esptool.py v2.3.2-dev

Connecting.....

Chip is ESP32D0WDQ6 (revision (unknown 0xe))

Features: WiFi, BT, Dual Core, VRef calibration in efuse

Uploading stub...

Running stub...

Stub running...

Changing baud rate to 921600

Changed.

Erasing flash (this may take a while)...

Chip erase completed successfully in 13.3s

Hard resetting via RTS pin...

Step 3: Flash the firmware (“BIOS”) into the flash memory area of the Odroid Go:

./flashall.sh esptool.py v2.3.2-dev

Connecting....

Chip is ESP32D0WDQ6 (revision (unknown 0xe))

Features: WiFi, BT, Dual Core, VRef calibration in efuse

Uploading stub...

Running stub...

Stub running...

Changing baud rate to 921600

Changed.

Configuring flash size...

Auto-detected Flash size: 16MB

Flash params set to 0x0240

Compressed 24656 bytes to 14569...

Wrote 24656 bytes (14569 compressed) at 0x00001000 in 0.2 seconds (effective 969.9 kbit/s)...

Hash of data verified.

Compressed 3072 bytes to 201...

Wrote 3072 bytes (201 compressed) at 0x00008000 in 0.0 seconds (effective 5911.9 kbit/s)...

Hash of data verified.

Compressed 287760 bytes to 143254...

Wrote 287760 bytes (143254 compressed) at 0x00010000 in 2.4 seconds (effective 959.9 kbit/s)...

Hash of data verified. Leaving...

Hard resetting via RTS pin...

Once the flashing process finishes, the Odroid Go will reset and display the following error message.

This is normal as this firmware (“BIOS”) acts as a bootloader plus a flasher and is looking for a firmware.bin file to flash (“install”) but is not finding any.

Download the latest Go Play emulators firmware.bin file from the repository.

Emulators update

Visit the URL https://github.com/OtherCrashOverride/go-play/releases and download the firmware.bin file from the 20180718-smsplusgx pre-release:

Take the SD card from the Odroid Go, place it in an SD card reader and connect it to a computer. Copy the firmware.bin file to the root directory of the SD card. Go to the roms folder and create a new folder named col (to support the new ColecoVision emulator). Create another folder named col in the odroid/data folder. Eject and remove the SD card and place it back on the Odroid Go. Turn on the Odroid Go and the following screen should appear.

The firmware (“BIOS”) of the Odroid Go has detected the firmware.bin file in the SD card and is showing the release date of the file. Press the Start button to flash (“install”) the content of the firmware.bin file.