ODROID GO

A friend on Mastodon turned me on to the The ODROID GO. It reminded me of another DIY gaming/hacking kit I’d seen except that it was 14 the price. After reading about it I was really surprised that I hadn’t heard of it before (I have some ODROID hardware and try to stay on top of this sort of gear). I described it to Jamie and she told me to order one. Now a week or so ago I said I wasn’t going to start anything new until the laser is on-line, but who am I to argue?

Since I didn’t know what to expect, I ordered just the device itself (there are many accessories). I was pleasantly surprised by how quickly it arrived.

ODROID GO front view

One of the coolest things about this device is how much documentation ODROID has provided. It’s a bit rough in places, but they’ve even included a “coding camp” that walks you through several lessons in working with the hardware. This combination of low-cost and decent documentation make it a good fit for teaching, and as Berty is homeschooled, we thought we’d give this a shot.

The device comes as a kit but there’s no soldering or other technical tools or skills required to assemble it other than a small screwdriver. Everything you need to test the device is included, but if you want to use the game emulator (part of the pre-installed software) you’ll need a MicroSD card (at least 8GB according to the docs) and you’ll have to hunt-down some ROMS.

ODROID GO back view

However none of that is required to begin programming the device itself, and in fact you can get through the first 7 of the coding camp lessons without additional hardware.

What you will need is a computer; most anything with a USB port will do (ODROID includes documentation for Mac, Windows and Linux).

Programming is done using the Arduino IDE, and the documentation provides the information necessary to get this working with the ODROID GO hardware. The heart of the device is an ESP-32 module so for the most part it’s just like working with any other ESP-32. ODROID provides a library for the GO which makes accessing the GO-specific hardware (LCD, buttons, etc.) easy. As you might expect the hardest part is getting the Arduino environment setup correctly.

One the IDE is setup and talking to the device, the coding camp is a breeze. The examples are straightforward and ease you into working with the device. With a little guidance even someone with no programming experience could learn learn to program the ODROID GO.

Berty writing code

What was slightly harder was reverting the device to the stock game-emulator software. This gets into using command-line tools and burning firmware images and requires particular versions of Python, which can be tricky on some computers. Since I do this everyday it was simple enough for me to run through the process on my Linux laptop, but after looking over the recommended procedure (which involved installing Brew, etc.), we decided not to go about this on Bert’s Mac.

This device has a lot of potential. Aside from being inexpensive and fun, the fact that the device is based on the ubiquitous ESP-32 means that programming skills learned on the ODROID GO can translate directly to a wide-range of applications. Unlike other “learn to code” environments, almost everything you learn programming the ODROID GO can be re-used to program a wide-range of other ESP-32 based hardware as well as new devices of your own design.

The only way I would improve on this would be to make it possible to program the ODROID GO without requiring another computer. Given the flexibility of the device I wouldn’t be surprised if someone hasn’t already found a way to do this, but if not its certainly something that could be done.

Aside from the educational potential, it’s a great little game emulator in a compact, comfortable form-factor and available at a very reasonable price. This makes it a great “gateway drug” for aspiring hackers.