In the previous post I ranted about poorly designed gadgets and the lack of openness screwing up any chance at user-driven software improvements. But I should have pointed out that while few companies get what community involvement could mean to them, some users take the matter into their own hands.
Custom firmware projects exist for many types of devices. Tomato and dd-wrt are popular, linux-based firmwares for dsl routers – I’ve been using tomato for quite a while now. And while there are routers that support custom firmware openly (like the legendary Linksys WRT56G series), others can be hacked in order to overwrite the crap they are running out of the box.
Another popular category of moddable devices is mp3-players. Usually it starts with some linux geek asking the age-old question: “…but does it run linux?”. He then starts hacking away, sometimes bricking several players while reverse-engineering the way firmware gets uploaded and how it interacts with the device. Since it is much too expensive to develop a new ASIC for a cheap mp3 player (or almost any device that doesn’t require extremely efficient computing), the hacker is usually able to find out what known components it is made of and use the (known) specifications to learn more about how it works. Once hobby developers have access to the device – usually after one keen individual paved the way – they’ll fantasize about what functions they always wanted their gadget to have, what functions it could have (not necessarily useful but fun), and how they would do it so much better than the people who build it. Then comes the next wave of developers who just want to make minor modifications (like a new theme or a little app or just some experiment) but won’t meddle with the low-level or even mid-level stuff. Before you know it, you have a thriving community of programmers (and sometimes artists) who will spend a lot of time improving the software and porting it to more devices.
Rockbox is such a project, and I’ll install it as soon as the port for my player is stable.