Building An Open Hardware EBook Reader

On the whole, hackers aren’t overly fond of other people telling them what they can and cannot do with the hardware or software they’ve purchased. Unfortunately, it’s becoming more and more difficult to avoid DRM and other Draconian rules and limitations as time goes on. Digital “eBooks” and the devices that are used to view them are often the subject of such scrutiny, which is why [Joey Castillo] has made it his mission to develop a open hardware eReader that truly belongs to the user.

[Joey] has been working on what he calls the “The Open Book Project” for a few months now, and he’s just recently announced that the first reader has been successfully assembled and powered up. As is usually the case, a few hardware issues were identified with this initial prototype. But it sounds like the device was largely functional, and only a few relatively minor tweaks to the board layout and components should be necessary before the hardware is ready for the masses.

An earlier prototype, using the Adafruit Feather

If you’re feeling a bit of déjà vu seeing this, don’t worry. The Open Book Project has taken a somewhat circuitous path to get to this first prototype, and [Joey] had previously developed and built the “eBook Feather Wing”. While they look very similar, that earlier incarnation required an Adafruit Feather to operate and was used to help refine the firmware and design concepts that would go into the final hardware.

The Open Book is powered by a ATSAMD51N19A processor with a GD25Q16 2MB flash chip to hold the CircuitPython code, and a microSD slot to store the actual book files. It also features support for audio output via a standard 3.5 mm headset jack, an RGB status LED, and expansion ports that tap into the I2C interface for adding whatever other hardware you can dream up.

One of the most interesting aspects of this Creative Commons licensed reader is the extensive self documentation [Joey] has included on the silkscreen. Every major component on the back of the PCB has a small description of its purpose and in some cases even a breakdown of the pin assignments. The idea being that it not only makes the device easier to assemble and debug, but that it can also explain to the curious user what everything on the board does and why it’s necessary. It’s a concept that makes perfect sense given the goals of the Open Book Project, and something that we frankly would love to see more of.

[Marc Juul] presented his work on a FOSS operating system for older-model Kindles at HOPE XII as a way to avoid Orwellian monitoring of the user’s reading habits, so it’s interesting to see somebody take this idea to the next level with completely libre reader hardware. Unfortunately none of this addresses the limited availability of DRM-free eBooks, but one step at a time.

26 thoughts on “Building An Open Hardware EBook Reader

  1. Interesting choice of processor. Also surprised, given the specs of the SAMD, that an IO expander was needed. I think I would have plumped for an ESP32 for downloading content on the hoof.

    1. Think of this as an assessory/expansion board for the Mether M4 board.
      The Feather does USB, power, and manages a LiPo battery, then communicates and powers this board from it.

      I didn’t see any battery run time info.

    Project Gutenberg is a library of over 60,000 free eBooks. Choose among free epub and Kindle eBooks, download them or read them online. You will find the world’s great literature here, with focus on older works for which U.S. copyright has expired. Thousands of volunteers digitized and diligently proofread the eBooks, for enjoyment and education.

  3. This is amazing, only a few days ago, while reading the collapseOS article, I imagined how great it would be to have a low power ebook reader, with which I could read all kinds of saved humanity’s knowledge. Kindle, while a great solution does not qualify because its lack of SD card interface.

    I imagined of a similar mass producible device. Something using a cheap microcontroller, an SD card, and an eink display. This kind of device could work for weeks, if given a proper battery. Or hell, why even give it a battery, just have it run on solar panels. I initially did not think of having the I2C expansion port, but in a post apocalyptic world, that would be a necessity.

    I don’t think they should use CircuitPython, though, it would be much better to take the time to write efficient code with low power states. Just my 2c. Anyway, I am sure this kind of device would suit people much better than a Z80 based computer, if you already have it, that is.

    1. Indeed. If I was afraid of any type of society collapse, I would make sure I would have something that could read a copy of Wikipedia. General knowledge on every topic you could ever imagine would be priceless.

      Low power that you could hand-crank it or solar power would be really useful with e-paper as well. As you don’t need power while you are reading.

    2. Indeed. Python’s ok for education, prototyping, etc. but a battery powered, embedded system needs something a bit more efficient.

      You’ve only got to look at the battery life on a smartphone running a java app to see proof of that.

        1. heh. Indeed it is.

          What I meant of course, is the power consumption of the Java runtime, particularly during the initialisation phase, compared with compiled code. All other things being equal of course :)

    3. A powerful magnet inside a coil of fine wire with a lot of turns. With the right circuitry the magnet will hover inside the coil and any movement will make the magnet wiggle and induce a current in the coil.

      I have one of those “faraday flashlights” like that. Hold it upright and the magnet stay put. Shake it and the magnet will move in and out of the coil.

      Alternatively, use a pair of coil springs just strong enough to keep the magnet at rest within the coil.

      Either way, every time the reader is picked up, set down, wiggled when pushing buttons or tapping the screen, small jiggles of power will be generated.

      With an eInk display a decent super capacitor could hold enough charge to provide the power to open the book file, get the next page and push it to the display. Then when the display is changed the reader can completely shut down.

      Instead of a software loop running in an extreme low power mode to monitor for user input, go old school with a butting that physically connects power (with a well made debounce circuit) to power up the reader. Then what will be needed is a hardware system that can boot and change the page display in no more than one second. It could drop to idle/monitor for a short time before powering off completely

  4. Tor ( publish all their books as DRM free epubs, which is worth supporting.
    Of course there’s ways and means to convert every DRM format into epub, but I’ll leave that for people to search out ;)

  5. What I want to see is One Universal Reader. O U R as in Our software, not theirs. OUR should be able to open any DRM free ebook file format, including old PalmDoc and TealDoc and others that were popular on PalmOS.

    What would really be nice is to have OUR able to run on as many devices as possible, including Palm, WinCE, PocketPC, Windows Mobile, Symbian, Zaurus etc. For devices without built in UTF-8, Unicode etc, OUR should have its own support.

    Convert an ebook with UTF-8 encoded punctuation* to TealDoc and you end up with a file that shows a ? for *every* punctuation character, or just doesn’t display punctuation at all.

    *Just Say No to UTF-8, HTML Friendly, or Unicode for any punctuation in any language that uses the Extended ASCII character set. Except for one seldom used character in Norwegian, all the punctuation, all the characters with various accent marks, they’re all in there in single byte form.

    1. have you looked at calibre-ebook ? I’ve always had good luck using it to change formats and managing libraries on multiple readers. I dont see support for palm etc but its open source so check their forum to see if there is interest.

  6. Somehow missed this on HaD, I’ve been watching the github etc for a while now. Now on patreon too.

    Just wonderful level of documentation, device is beautiful and I’m desparate for one!

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.