A WikiBub is a simple e-book designed to read Wiki-like content offline. Specifically, it reads content from Wikipedia, Wikibooks, and Project Gutenberg sites and reformats it for the simpler page-by-page interface of the WikiBub.


October 2009: If you happen across this project because you’re looking for a simple offline Wikpedia reading device, check out the WikiReader. It meets the major goals of this project, and it costs $99. Not bad! If you’re looking for a general-purpose reader that’s easier on the eyes, there are many options including Kindle, Nook, and Sony Reader. The WikiBub project is officially closed, because I’ve discovered I’m no hardware guy. :)

October 2005: Just got back to this after months of grumbling. I’ve run into multiple roadblocks. Connecting to the Gumstix from my mac isn’t as simple as I thought; the USBnet interface doesn’t work right, and a serial connection would require another $70 outlay. (I’ll probably suck it up and get that anyway, because the ‘stix is useless without it.) The display is a more daunting task; connecting an LCD (even if I could figure out which one to use) requires an order of magnitude more electronics skill than I have, and very few others have gotten an LCD to work at all. Still, there’s an inexpensive LCD that some people have had success with, so I might start with that in order to get some experience.

February 2005: Moving slowly this month because I’m busy at work. I’ve received the Gumstix boards, USB cable, MMC card and reader, and batteries and charger. Should be enough to get started with the software. Still dithering about a bits-and-pieces order from DigiKey to get the connectors and test the buttons and such. Oh, and reading reading reading anything I find.

General parameters

One unit shouldn’t be considerably more expensive than, say, a science textbook (or two). A range of $50-$200 would be better than the usual $500-$2000. This may seem laughable when compared to a Palm or an iPod, but I still remember that Commodore VIC-20 I got in 1983 for $200. Realistically, a homebrew unit could probably be constructed for $300 in parts, with the LCD and gumstix board constituting over half the cost.

No DRM or other restrictions should be imposed on content. That way lies bloat and heartache.

It should be bloody simple in design and interface. I’m thinking of the poor-man’s click wheel, or an old-school Nintendo controller. Up, down, left, right, stop, go. Books shouldn’t require more than that level of sophistication. Similarly, the unit should be tough, light, and efficient. Size and weight should be like a book, either paperback or hardcover or somewhere in between.

Text should be readable for hundreds of pages at a go. This either means a high-resolution page or big text. Take your pick.


So, would it be cheaper or more expensive to bind a WikiBub like a hardcover book? You know, cardboard flaps covered in paper sort of thing. The interior space of a thin book could easily fit a screen, battery, and other such things, and the inner enclosure could be a sturdy cardboard box. Control buttons could be set into the front of the enclosure so they’d be protected by the cover. It would really set the thing apart from a plastic “appliance” and perhaps help people get used to the idea. Besides, it would be possible to fashion a decent prototype out of a crappy $2 bargain book with a sturdy cover of the right size. Heck, we could buy out the stock of some appropriately-sized book and make the production units[1] that way. If water-resistance is seen as a necessity, a Tyvek book jacket could easily be made for the cover.

More names, because they’re wacky: GutenBub, for the software that converts Gutenberg files to a WikiBub-friendly format; BabaGami, for a site devoted to WikiBub, including how to make one and the software for it; DealyBub, the generic term for a mix of high-tech and found components to make a usable (if not cutting-edge) object.

[1] Yes, production units. When I started this, I was foolish enough to think someone might want to buy one. Now I’d be happy to just get one made. :)


Gumstix makes an interesting prototype low-power board that runs Linux and is very small.

E-ink is a personal favorite for low-power, high-resolution, bright reading displays. Of course, they’re a bit of a mystery.

EarthLCD sells a whole range of LCD screens if I go the more traditional route.

ZBD makes a low-power LCD display that seems perfect for a Bub: low power, holds the image without power, reflective LCD. However, they’re as much a mystery as E-Ink.

Three potential sticky points: the display, the buttons, and the battery.

For the battery, it might be simpler to just use a set of rechargeable AA batteries. That way the recharger is off-line and power only flows one way. Newer NiMH batteries can produce 2000mAH or more, which could provide 10-20 hours of read time given the right mix of hardware.

The buttons are hopefully taken care of by GPIO pins on the gumstix, but that’s a gray area for me. I’m hoping that the serial headers on the SMT breakout board will provide a relatively fool-resistant interface. One alternative is to connect a few small pushbuttons to a hacked keyboard encoder module. It would require a serial connection from the keyboard to the Gumstix, but once it was connected I could have a wide variety of buttons without all that extra programming. Either way, the buttons look to be cheap enough from Happ, probably less than $1 each.

The display will require the most power and will cause the most headaches. The Bub’s requirements are pretty flexible, but the screen should be less than 10″ in diagonal to fit in a hardcover book form factor. An e-ink display would be best from a power and weight standpoint, with the caveat that drivers may not be available. (Not to mention that the unit itself may not be available either.) A transflective LCD is a good alternative, since the backlight can be switched off (note: how?), and there’s no real penalty for dual-scan or other slow LCD technologies. From the LCD side, an ideal display would be a 9.4″ transflective SVGA display. Due to cost, I’ll probably end up with a monochrome VGA display because they’re so common in surplus shops.

Gumstix has added a USB/LCD breakout board to its catalog. It looks like that might be the best thing to use for the Bub because it has a USB port, LCD controller connector, and possibly even power broken into surface-mount headers. Now, if only I could figure out the more hardware-geeky aspects… (Later) That’s the one I picked up, but it isn’t quite as simple as one would think and they ended up discontinuing it. Hopefully that doesn’t mean I’m out of options.

Speaking of LCDs, it looks like Timeline is a good source of cheap, small LCDs. I hadn’t even thought of using a 6″ display, but it would make the Bub more of a paperback-sized book than a hardcover. Hmmm…

Eink released a comprehensive evaluation kit for their electronic paper display: 600×800, reflective, controller board provided, includes a Gumstix. It would be the perfect choice for a WikiBub… except it’s $3000. Oh, well.

Parts list

Note that this is my current target for what I’d like to buy, not a completed list. I’m really close, though.

Parts for one Bub:

  • $110- Gumstix 200f basic board
  • $30- Breakout-SMT daughterboard
  • $20 – 6″ LCD panel
  • $1 – battery holder
  • $40- charger and 3 AA batteries
  • $18 – 64MB MMC card
  • $5 – USB cable
  • $10- buttons
  • $10 – hacked keyboard
  • $244 Total

Parts necessary for development:

  • $12 – AC Power adapter
  • $15 – MMC card reader
  • $27 Total


  • Gumstix Waysmall 200ax “tiny computer” ($140)
  • -or-
  • Gumstix 200f basic board ($110)
  • 10″ LCD panel ($110 or $200)
  • 5V battery and internal charger
  • -or-
  • battery holder ($1), charger, and set of batteries ($40) – 3 AA = 4.5V
  • USB cable ($12)
  • 32MB ($25) or 128MB ($50) MMC card
  • buttons ($10) and hacked keyboard ($10)
  • -or-
  • buttons and keyboard encoder module ($50)


Software for the WikiBub comes in two parts, an organizer designed to run on the desktop and a cache which runs on the unit itself. The idea is similar to iTunes/iPod with a Netflix-style queue. For instance, if I’m interested in reading articles on Mars exploration, I look up “Mars” in the organizer, find an article entitled “Exploration of Mars”, and add it to the queue. There it sits while I read and discard items at the top of the queue. Once my organizer software determines that the unit’s memory can hold the Exploration of Mars articles, it retrieves them from the Wikipedia site, including articles linked from the main article. (There will be preferences from this.) The group is stored on the unit’s flash card and added to the cache menu on the unit.

When browsing through the contents of the cache, the user can choose to drop items from the queue, mark items as read, or push items to the back of the queue. Any one of these choices will mark the articles for removal when the cache is next synchronized with the organizer. The organizer can then use the free space to add new items from the queue, and so on. New items can be added to the queue by clicking through to links that aren’t yet in the cache.


Simplify, simplify, simplify. This is intended for reading books, not programming or Web surfing or hacking into the Pentagon. The desktop software should smooth away as much of the complexity as possible, leaving the Bub to handle two tasks: choosing a book and turning pages.

The main interface is a page. The choices from this interface are next page, previous page, link forward/back/up/down.

The auxiliary interface is the menu, or rather a system of menus. The menu is invoked from the page by…

Additional Links

WikiBub To Do – That extra-long list of things still to come.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>