Like most of you I suppose, I love the micro:bit. It is very affordable, available everywhere, quite powerful and it even has an integrated programming/debugging probe. However, one “disappointing” aspect in my opinion is the 5x5 LED matrix. It can barely display text and cannot be used for anything beyond very very simple “games”. A couple months ago I saw the Adafruit OLED Bonnet for Raspberry Pi and I thought it would be cool to have something similar for the micro:bit, so I decided to give it a try.
One of the design choices for the Micro:Gamer is to embrace the micro:bit edge connector. There are a good number of disadvantages with this connector, it’s big, there is no SMD version (at least I couldn’t find one). But for this project in particular I think it is great because it mimics the cartridge of a retro console like the GameBoy. If you have more than one micro:bit you can program different games and swap between them.
For the batteries, my first idea was to not include any on the board (keep it simple), but then it’s not really a portable device anymore… The next choice was between a coin cell battery and 2xAAA. I decided to use the AAAs because - even if they are bigger - it is easy to find rechargeable ones.
For the software I use the Arduino IDE and a modified Arduboy2 library. Since the Arduboy and Micro:Gamer have the same screen and buttons, it is very easy to port games from the Arduboy to the Micro:Gamer (I already did 6). I will maybe experiment with Python support and probably Ada as well.
The next steps for me are:
- Try audio support with the buzzer
- Some improvements to the PCB (on/off switch, button position)
- Add an API for persistent storage (highscores, player data)
- Add an API to read the accelerometer and magnetometer of the micro:bit
- Improve performance of screen data transfer
- Design a case for 3D printing
That’s it for the first project log. Let me know in the comments what you think about this project.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
How do you communicate with the display? I²C or SPI? How do you plan to speed up the performance for that?
Are you sure? yes | no