Tech: Bifferboard
In what is my first post about my significantly older tech projects we start with a device known as the Bifferboard, and one of my first real attempts to push hardware to its limits.
This piece of hardware can only be described as a quirky x86 single board computer (SBC), with 32MB (yes, megabytes) RAM, onboard 10/100 Ethernet, and a single USB2.0 port. It lacks a real time clock (RTC), and only has 1MB of onboard storage (unless you managed to buy one of the later models with 8MB). To say the device is limited by todays standards is an understatement!
In truth, even at the time I purchased these the hardware was obsolete by anything released even remotely recently, so why purchase this... Honestly, I'd say it comes down to the following:
- It's quirky (and very small)
- It intrigued me
- The challenge of seeing what I could do with it
Getting these devices running was not easy... With only 1MB of usable flash storage you needed a kernel that had everything non-essential stripped out. Each new image would need to be flashed via a serial cable (thankfully it didn't take too long). Patches were needed to keep things stable (including the clock that didn't run at the correct speed). In the end though, and after a lot of coding (to build all the software parts I needed) the device was usable and would boot each time without fail.
Using the device brings its own challenges... With 32MB RAM and part of that used for the kernel itself, what can you actually do with this? As it turned out, quite a lot! After some tinkering it was possible to run a lightweight web server (serving files from the USB stick that also contained the OS). I figured there must be more that is possible.
With a cupboard full of USB peripherals it became a challenge to see just how far you could push the device. A USB hard disk, no problem. A USB sound card, a little trickier due to the lack of FPU but still possible. A GPU to run a desktop on, well, this was problematic.
It took me a while (and a patch to the Linux kernel) to get the latter to work due to the RAM requirements of a DisplayLink USB DVI adapter, however with a low-RAM patch mainlined it was actually possible to get a graphical desktop on the device. That said, with nearly all of the RAM used for the graphical desktop there was little left to run any application.
Continuing with the trend of pushing it to the limits I decided it needed a suitable case. I went through a few variations over the 12 months I actively used the device, including the Linksys router case shown in the pictures here, and a Fallout lunchbox. It always seemed impressive to me just how much could be achieved with such a little device.
Where are they now you may ask... Sadly one of them was damaged due to a dropped screwdriver and an electrical short, however the other one I still have in my collection. Sadly it isn't in use any more as my old build scripts no longer function and building a small-enough kernel for it with newer versions is virtually impossible. One day I might find time to work on it again, just to see if it can boot once more.