Python is a pretty unique programming language, and has a number of features that make it ideal for beginner coders while remaining powerful enough for experienced programmers. It’s platform-agnostic, so you can run it on any computer. But until recently, you haven’t been able to use it on microcontrollers. Thankfully, MicroPython and then Adafruit’s CircuitPython recently came along to make that possible. In a recent presentation from Teardown 2019, Scott Shawcroft demonstrated how you can use a CircuitPython cartridge to supercharge an old Nintendo Game Boy.
Shawcroft is the project lead for CircuitPython at Adafruit, which makes him the perfect person to explain how CircuitPython can be used with vintage hardware like a Game Boy. He begins his presentation by showing how the CircuitPython cartridge can be used to play custom sounds on the Game Boy, and how quickly that can be iterated. One of CircuitPython’s best features is that the complete code is stored in memory. That means you can simply open it up and modify it using any computer. After saving your code, a board running CircuitPython will automatically reset and start running that new code, making it quick and easy to test and iterate that code.
From there, Shawcroft explains how CircuitPython works on microcontroller boards by building on low-level C to interface with the hardware. He also explains how the custom cartridge works. That cartridge has a SAMD51 microcontroller that is running the code, and the cartridge passes bits off to the Game Boy as needed. Working with a Game Boy is just one example of what you can do with CircuitPython, and the presentation is intended to illustrate how you can use it expand the capabilities of any hardware. If you’re interested in doing that yourself, Adafruit offers a number of CircuitPython-compatible microcontroller development boards.