About the Project

The µGame project aims to make it easy and fun to make arcade-style video games in Python. It does that by developing a hardware platform, in form of a handheld game console, and a software platform, in the form of the firmware for that console.

The project started in 2017 with a series of ten prototypes using commonly available and cheap parts. The final version, µGame 10, has been released and is available both in the form of a kit, and as a repository of design files. The software is based on Adafruit’s CircuitPython firmware, with a number of helper Python libraries included to make game development easier.

There is also a number of games and demos available, including a tutorial contained in this documentation. Everything is kept in the project’s GitHub organization.


All parts of this project are available under open licenses. The hardware is released under a Creative Commons SA-BY license, and all the code is released under a permissive MIT license. You can fork, develop and produce your own versions of whatever this project contains.


Contributions of all kinds are very welcome. You don’t have to be a programmer or a hardware engineer to help! There is always something to do.

The most important way you can contribute is by helping everyone else — whether by answering their questions, writing about what you are doing with the device, making available anything you have made, or improving the documentation.

The Stage library is in very early stages of development right now, and it is supposed to stay rather lean and simple, so contributing there may be hard, but you can always develop additional libraries and game frameworks that better fit some of the tasks.

Creating and sharing assets (graphics and sound) is also a great way to contribute – just make sure you make it clear how they can be used by adding an appropriate license.

Community and Support

For learning and help with CircuitPython itself, it’s best to head to Adafruit’s Discord server and ask on the circuitpython channel.

If you prefer a bit more old-school means of communication, there is also a ##ugame IRC channel on Freenode.

Please use the GitHub’s issue tracker to report any bugs you find. Also, the wiki is available, so you can share any information you think would be useful.