Before getting into the full description, there is credit to be given first, otherwise this whole project would start by not respecting its own principles.
At the 2016 Hackaday superconference was introduced what, in my mind, could be qualified the coolest, nerdiest and cutest project I ever came across.
Sprite_TM simply blew the minds of many people that day, myself included, with his tiny Gameboy emulator that was not only the cutest thing ever but also the full package: a great display of what one man, with knowledge of both hardware and software development can achieve.
This project, Keymu, stems from the idea that the incredible feat that Sprite_TM was able to pull off can be passed on to anyone who is willing to learn electronics and software development, so that anyone can build their own amazing little keychain Gameboys.
The core issue that Keymu is trying to address is how embedded electronics can be made interesting and fun to learn, how it can make some people at home say “hey, whoah it’s so cool, I could build this myself!” without being shallow, but on the contrary by tackling a lot of different subjects thoroughly, such as (but not limited to):
- What is Linux how to build a Linux distribution?
- Basic communications in Embedded systems between components,
- Modifying the Kernel and creating kernel drivers
- Software development in QT,
- Building a functioning prototype,
- Custom board development,
- Mechanical design,
- 3D printing,
The strength of Keymu is to propose fully detailed and complete tutorials along with the source files, for each part of the development, with photographs and videos, so that any tech-lover, retro-gamer, electronic enthousiast, (…) out there who wants to build one from scratch and enhance it the way they want can do so!
Simply copying someone's work, even if making everything open-source and with tutorials, would neither have been original nor fun. Instead Keymu takes the idea from Sprite_TM a step further by incorporating a Linux distribution allowing to install multiple emulators (GameBoy Color, GBA, NES, SNES…). The design has also been rethought, while keeping a Keychain form factor, to include a 3D printed flexible screen mechanism allowing more space for the buttons and more protection against the harsh life going on in someone's pocket.
Thanks to the Raspberry Pi foundation and its amazing community, many versions of multi-platform emulators have been proposed and it is fairly easy nowadays to build its own emulation device, using a Raspberry Pi (any version) coupled with the well-known retroPie distribution.
“This is absurd then! What makes this project stand out, how is it new in any way?”
Well, in fact, Keymu has a lot to bring, and more importantly a lot of new.
For starters, it does not use a raspberry Pi, the obvious reason being that even the smallest version out there (raspberry Pi zero or zero W) is still way too big to make a complete package qualifiable as “keychain sized”. Instead, and this is a first, the system on chip used as core component is the Intel Edison. I am not pro-Edison and in fact the project will discuss in depth the different pros and cons of using this chip, but as of today, and to my knowledge, no other system on chip can compete with the features/size ratio given the constraints of this project.
What is given and easy to install for a raspberry pi is – be sure of it – neither given nor easy on the intel Edison, and this is a good thing. Developing on this platform is a great way to teach about Linux: How to install and customize a Debian distribution from scratch, how to build and add drivers into the kernel for a color OLED screen with DMA (on a supposedly headless module), for defining a custom keyboard from GPIOS, for adding PWM audio, how to build a basic front-end in QT…
Keymu brings a lot of software development knowledge but, being the world smallest fully-playable multi-platform emulator out there (in my knowledge),...Read more »