Close

The Challenge

A project log for PewPew FeatherWing

A shield for Adafruit Feather boards with buttons and a LED matrix display, for simple games.

dehipudeʃhipu 07/21/2017 at 11:270 Comments

I'm in a ranty mood today, so I will write a little bit about why I decided to make this and how I hope it will work.

You have probably heard about the Raspberry Pi and the Micro:bit. Those projects are both parts of a larger effort to liberate people and give them back the control of their own devices. The modern computers, tablets, smartphones, game consoles and even toys are black boxes today. They are supposed to make you enjoy consuming carefully designed user experiences, without much thinking. Oh sure, they cater to your creative side too, letting you write comments with lots of emoji, upload user-generated content that you no longer own, or write a product review. In the mean time, as the population ages, we are running out of technically skilled people that are able to maintain and build those devices.

You might think that the obvious solution is to simply educate more people to do the technical jobs. But that doesn't work. The school doesn't teach you the important skills of an engineer. Schools are designed to kill the passions, not to make them grow. The best engineers out there are the ones who spent their lives tinkering with things, who were curious and fascinated with them, who needed to know how they work, needed to see for themselves, and then needed to modify the devices and make them their own. But you can't understand how a computer works today — it's much too complex a beast. And tinkering with game consoles can get you in the jail in no time. There are simply no stepping stones between a bright kid and an officially recognized engineer.

Raspberry Pi helps, because it gives a cheap computer that you can actually play with, that you can break and fix and break again, and nobody will lose their jobs because of that, like they might if you broke the family's computer. A computer that you can connect things to, and make it behave like a retro game console.

However, once you do all the soldering and connect the screen and joystick and put it in a cute box and so on, you simply load an emulator for one of the many old game systems, download the ROMs for the retro games, and continue consuming content as if nothing changed. Sure, you learned something about connecting wires and configuring Linux kernel hardware overlays, but you still have no idea how those games actually work, and you still wouldn't be able to make your own.

The Micro:bit is much better in that regard, as it is infinitely simpler and easier to understand, and you program it at a much lower level. You can program it at school and then take home and play with it even if you don't have a computer at home. You can show it to your friends and parents. You can make it do amazing things.

But you can only make very simple games on it.

There are only two buttons, and while you can use the accelerometer and compass as inputs, this is very limiting. Even worse, the 5x5 display is not very good for most games either. Sure, you can connect additional buttons and LED matrices or screens, but that requires much more experience, and you probably have to leave it all at school, as it's too unwieldy to carry around in your pocket.

So we need something simpler. Something that is as simple and easy to program as the Micro:bit, but more colorful, more convenient, closer to the "real" games out there. Something that doesn't require amazing graphical skills and hundreds of hours of work of artists, but still looks good. Something that you can program and take with you in your pocket. Something that plugs into an existing ecosystem of modules, extensions and tutorials, so that you are not left alone on your own. Something that is sturdy and rugged, so that it will survive being carried around in the pocket while you climb trees and fight pirates.

Physically, the device doesn't need to be complex. It should be small, it should have the familiar d-pad and fire keys, and a display capable of displaying colors. It should be low-resolution, so that you don't need to be a pixel-art wizard. It should plug into one of the existing development kits, preferably ones that can be easily powered with a battery.

Internally, it needs to be easy to program without any special software (which is a big downside of the Micro:bit) in a simple to learn language. It should come with a library that makes it easy to write the games, but doesn't take away the control. And most importantly, it should come with a detailed tutorial describing a dozen of example games, each introducing a new challenge and a new concept that can be learned to overcome it. Oh, and of course it shouldn't be more expensive than the original board it plugs into.

The target audience is a little bit older than that of the Micro:bit. Some of the concepts involved are quite difficult, and require more focus and abstract thinking than an average 11-yo is capable of. It's also not supposed to be taught at school, but rather be a standalone toy for self-study, similar to how the early microcomputers were.

Discussions