Close
0%
0%

The Open Book Feather

An open hardware reading device

Similar projects worth following
The Open Book is an open-hardware device for reading books in all the languages of the world. It includes a large screen and buttons for navigation, as well as audio options for accessibility and ports to extend its functionality. Its detailed silkscreen, with the all the manic energy and quixotic ambition of a Dr. Bronner's bottle, aims to demystify the Open Book's own design, breaking down for the curious reader both how the book works, and how they can build one for themselves.

Get the PCB on Tindie here! Assembly required; this is just a blank board. More details at the link!

Other Links: [GitHub] [Patreon] [Twitter]

At the core of the Open Book is a SAMD51J19A microcontroller, a powerful ARM Cortex M4 with 512 KB of Flash and 192 KB of RAM. It has 51 pins of GPIO, and the Open Book uses all of them for peripherals and possibilities: 

  • A 400x300 black and white e-paper screen enables the core experience of, y'know, reading. 
  • A MicroSD slot allows for plenty of external storage for files. An offline copy of Wikipedia fits in 64 gigs — Hitchhiker's Guide, anyone?
  • User input comes from seven buttons on a shift register, plus an eighth button tied directly to one of the SAMD51's interrupt pins.
  • A dedicated flash chip for languages gives the book room to store glyphs and Unicode data for every language in the Basic Multilingual Plane (which is most of the languages in use today).
  • A 3.5mm audio jack:
    • Dual DACs allow for stereo audio output, and the SAMD51 is powerful enough to decode MP3 files on the fly (hello audiobooks)!
    • Raw input from a headset's in-line mic button lets the book detect up to four inline buttons, depending on the design of the headset...
    • ...and amplified mic input from the inline mic works with TensorFlow Lite to allow recognition of voice commands! Also, like, recording stuff. Rev 4 also adds the ability to shut down the mic, for power saving and privacy purposes.
  • A QSPI Flash chip and status Neopixel enable CircuitPython use cases.
  • STEMMA ports allow for the addition of I²C sensors and external analog or digital inputs. You can even run a Neopixel strip off of them, which makes for a decent reading light.
  • And of course it's a Feather, which means it's battery operated with built-in LiPo charging. It also has a full Feather header, which means you can add wings for everything from sensors to GPS to WiFi to LoRa.

Revision 4 of the board is solid! It adds the aforementioned mic shutdown pin, as well as a green LED to indicate full charge, and a voltage monitor on VBUS to determine whether the device is plugged in. I have Arduino board support here, and I'm working on a couple of libraries that support the book: a library called Open Book for interfacing with the device's peripherals, and a a library called Babel that sits between the language chip and an Adafruit_GFX subclass for multilingual typesetting. 

For (very infrequent) updates about the project, I've set up a mailing list here.

sch - 778.78 kB - 07/01/2020 at 15:48

See BOM
Download

brd - 1.16 MB - 07/01/2020 at 15:48

Download

  • BOM Errata (read this if you ordered a PCB on Tindie)

    joey castillo07/16/2020 at 15:15 0 comments

    Yesterday a GitHub user alerted me to a typo on the printed BOM included with the E-Book FeatherWing. It was minor (omitted a part that should have been there), but if you ordered the quantities listed, you would be one part short when assembling the board. 

    This error got me worried about the Open Book BOM, so I did a check and found one typo there as well. Both errors are now fixed on the Kitspace BOM for the E-Book Wing and the Open Book, so if you haven't ordered parts yet, you can 1-click order there and be fine. But here are the two typos, so that you can work around them in your build:

    The E-Book FeatherWing

    The line for 10µF capacitors lists only one capacitor, C1. You actually need two 10µF capacitors, C1 and C2.

    C1 is a decoupling capacitor for devices on the JST ports (say, if you plan to drive a high current device like a white LED off of one of the STEMMA ports). C2 is a decoupling capacitor for the SD card. If you already ordered parts and find yourself one short, you can omit C1 and put it on C2's footprint. If you haven't ordered parts yet, order two 10µF capacitors, and populate both footprints.

    The Open Book

    The line for the 0.47Ω resistor incorrectly lists its reference as R5. That line should in fact read R12. When assembling the Open Book, you should place the 0.47Ω resistor on the R12 footprint.

    R5 is correctly listed in the previous BOM line; it's a 1KΩ resistor limiting current through the green "Battery Full" LED.

    R12 is a 0.47Ω current sense resistor for the e-paper display's boost circuit. It is required for the e-paper display to function.

    I'm really sorry about these typos, and I hope it hasn't hung anyone up in assembling their boards.

    Both the Open Book PCB and the E-Book FeatherWing PCB — with corrected documentation packets — are available on Tindie, but I am currently not shipping orders. Still, you can sign up there to be notified when shipping resumes!

  • The Open Book: Final Revision

    joey castillo07/01/2020 at 15:46 0 comments

    Fifty of these arrived last month. The Open Book PCB, Revision 5: 

    I've assembled and tested one; written a system test script and a sketch to burn the bootloader using a Feather M0; completed a first draft of the documentation, and I'm almost done with the Kitspace BOM. The goal for these is to sell the bare PCB's on Tindie, for folks who want to build at home. I had hoped to have that done by the end of June, but pandemic drama has slowed me down; still, they should be available by next week. Watch the Tindie store for updates.

    I sense that the novel coronavirus has defined this year for most everyone; for my part, I hate to admit, it's slowed some of the progress on this project. Naturally the Take Flight with Feather stuff had to be put on hold, but the pandemic also tipped me off my axis. Back in March and April, when the pandemic was reaching its first peak, I saw folks in the maker community designing ventilators and building PPE for front line workers, and I found myself wondering how responsible it was to be ordering parts for projects that weren't actively, y'know, saving people's lives. This time also saw me wandering toward work on wearable temperature sensing as a way to build technology that could be useful in the pandemic. That was before we discovered that the most useful and life-saving technology was a piece of cloth worn over the face.

    Anyway. Given the constraints of the pandemic, my focus in the past month has been on making the project as DIY friendly as possible. Big friendly diagrams, a one-click BOM, detailed documentation and software tools to bring up and test in a simple, reproducible way. I wish I were posting today to say the PCB is ready to add to a shopping cart. 

    But it will be soon! 

  • Live demo of the Open Book today; E-Book Wing PCB's on Tindie

    joey castillo05/21/2020 at 17:06 0 comments

    Two things! First: I've been invited to show the Open Book Project at the Open Publishing Festival at 3 PM central time today (4 PM eastern, 1 PM pacific, 8 PM GMT). It will stream live here. Check it out if you can! 

    Second: with many things on hold due to the pandemic, I had a run of the E-Book FeatherWing PCB's made for folks who want to DIY. They are now available on Tindie

    While it is compatible with the Open Book Arduino library, this is not the Open Book board; in addition to all the components in the BOM, you will also need a Feather M4 to serve as the brains of the operation. I chose to make this PCB available first because it is a simpler build than the Open Book, with only one fine-pitched part (the flex connector). I do plan to order a quantity of the Open Book PCB in the near future, but this is the news of today.

  • On How To Get There From Here

    joey castillo01/30/2020 at 20:45 0 comments

    This last week has been crazy. Overwhelming, even. The Open Book was named the winner of the Take Flight with Feather contest, and I had an opportunity to demonstrate some of its functionality on the Adafruit Show and Tell. There seems to be a lot of excitement about the project! Yet I feel that something is getting lost in the conversation — and to be perfectly honest, maybe that’s on me. I’ve always envisioned this as a DIY project, an ebook you build yourself, like a Jedi building their first Lightsaber. Ever since the contest, people keep asking “when is the book coming” and there’s a part of me that feels like hey, it’s here, if you want it!

    At the same time, if I take a step back, I have to admit that actually building the book involves some knowledge and skills that may be unfamiliar or even scary to folks. I know this because a year ago, I didn’t have many of these skills. As of last May, the book looked like this: 

    The only part I soldered myself was the board atop the board on the left; it’s a few buttons and some wires. Eventually, I decided I had to design a circuit board (more learning), and eventually ended up with the E-book Wing in July:

    There’s a clear jump here. That first prototype was just through-hole buttons and wires. The wing involves a lot of surface mount stuff. And the Open Book board is an even bigger build, with more surface mount and fine-pitched parts.

    Anyway, the point is, something happened in between: I did some other, smaller projects, to gain experience with these techniques. Not going to list them all, but one milestone was the Hiking Log FeatherWing, which was a few surface mount parts: 

    Another was the Simple Feather, which was a lot of surface mount parts: 

    With each project, I was able to try these techniques on a small board that didn’t cost as much, and gain confidence and experience. Which is all by way of saying, if I’m being honest with myself, there was a time when I could not have built the Open Book, and if I’m going to say “You can build it,” maybe I need to take you along on the journey.

    So here’s the thought process: in the coming weeks, I want to document all the little projects that I’ve done over this past year. Make them into little single-serving guides, things you can build and find useful (a computerized bike light, or a GPS data logger for camping). The goal is for each one to teach some aspect of the skills needed to build the Open Book at the other end.

    We’re going to get this first run of 100 made, and I’m hopeful that there’ll be more after that, but in the end the point of this wasn’t to make a thing that you can buy, it was to make a thing that you can make. Even if you don’t think you can make it today.

  • End of year State of the Book

    joey castillo12/30/2019 at 18:38 1 comment

    Some quick notes on The Open Book at end of year. First: after a lot of people asked about donations, I made a Patreon page where folks can support the work. But whatever, on to the work itself: rev 4 was a success! The new features (mic shutdown, VBUS monitor, battery full LED) work as expected, and I've updated the Arduino core and the Open Book library with support for the new pinout. I also designed a basic 3D printed enclosure and another in laser-cut wood. Both are compatible with both the Open Book board and the eBook Wing (by rotating the back piece 180 degrees).

    I've expanded the custom e-ink driver I've been writing with waveforms for quick refresh, grayscale mode and partial refresh. Improving partial refresh is a TODO item; my current waveform causes temporary ghosting after a while, and I worry it may have negative long-term effects. But I sense that if I add an invert phase to BB and WW it will improve things (at the cost of a little bit of flickering).

    Oh! I also trained a TensorFlow Lite model to recognize voice commands on the inline mic, to show my current thinking for future accessibility work. Gives good demo, even if it has trouble with the word "left". 

    That's accomplishments. Now, a couple of challenges:

    • I have noticed a little bit of noise on the mic input when plugged in to USB power, and I think it has to do with the way I'm connecting the USB shield to the ground plane. When I do a revision for manufacturing, I will want to add an RC filter between the USB shield and the ground plane.
    • The right-angle buttons for previous and next page feel superfluous, and they're hard to press when the board is in a case. May omit them in the future, since they're relatively pricey.
    • On a couple of boards, the Lock button fell off after a while, which tells me there's a mechanical issue there. For now I'm just applying a bunch more solder to keep the right-angle buttons secure, but I need to find some buttons with pegs to alleviate the stress of repeated pressing, or devise some other method for supporting them.
    • I'm evaluating some very tiny white right-angle LED's in the hopes of perhaps implementing a front light, though there are some challenges there.

    Thanks, everyone, for your kind words and support, and happy new year! See you in the new decade.

View all 5 project logs

Enjoy this project?

Share

Discussions

Manish Kumar Singh wrote 07/03/2020 at 14:26 point

please consider supporting larger screen size (like 9 inch and above). Also in my opinion audio features is a  good but not a necessary addition because smartphone already has that (before anyone jumps and says smartphone also has screen, remember smartphone screen is LCD and we require E-ink). Anyways any idea when can we buy the finished product.

  Are you sure? yes | no

Melvin wrote 04/18/2020 at 18:20 point

VERY interesting project, I've been looking for an open source alternative to my nooks for awhile.

The BOM says unavailable, why is that?

  Are you sure? yes | no

jordanbrandes wrote 03/11/2020 at 16:53 point

I love this! It might pair well with my Book Roulette app that's connected to the Project Gutenberg API. https://bookroulette.herokuapp.com/?fbclid=IwAR1MbmvFniEfjwcuKWO7a_V4cL3ytK9PvS3dLBP5Pxz_euLA3P0dt_Dyqpk

  Are you sure? yes | no

Kosma wrote 03/05/2020 at 17:16 point

version with 5 button are more usefull.

is possible add terminal function like ssh etc for extended procesor (computer, phone, raspbery pi etc)

  Are you sure? yes | no

Canine-Rocket-Technologies wrote 01/27/2020 at 21:12 point

okay big respect to the pcb design! Man that is beautiful! 

  Are you sure? yes | no

Raymond Tu wrote 01/26/2020 at 23:19 point

Oh man I am really hoping this isn't too hard to make into a larger display adaptation.

  Are you sure? yes | no

vladimir.havrysyo wrote 01/24/2020 at 19:10 point

Very interesting project, though I'm not a technician, so some part of information i didn't understand. I'm not sure whether it is appropriate but maybe you should consider developing this ebook not as a separate device but as a peripheral for smartphone. That's how you can significantly decrease the number of buttons using smartphone as a touchscreen

  Are you sure? yes | no

Jacob MacLeod wrote 01/23/2020 at 14:31 point

This is cool! I love the PCB! How big is the screen?

  Are you sure? yes | no

TG-Techie wrote 01/02/2020 at 02:29 point

great job

  Are you sure? yes | no

ostropest wrote 12/17/2019 at 22:20 point

You are write about Lora, what You are thinking about http://outernet.is

  Are you sure? yes | no

kwapiszon wrote 12/26/2019 at 21:15 point

better mesh wifi node (batman or https://disaster.radio )

  Are you sure? yes | no

cuvtixo wrote 01/24/2020 at 02:46 point

  Are you sure? yes | no

ostropest wrote 12/17/2019 at 22:18 point

Is possible add AA power or other replace acummulator?

Is possible add solar panel? For example on other side (down). e-ink no needed more power. Solar panel are good options.

mruby need 450KiB RAM ;( if professor no have MMU and protect mode runing bash/ssh will be impossible in future.

  Are you sure? yes | no

agfa wrote 12/12/2019 at 15:12 point

Nice article, I always wanted to look at open sourse stuff like this one I think that I would use something like this project for my argumentative essay writing service from https://edubirdie.com/argumentative-essay-writing-service or for any other project in the future. Open book is a huge deal.

  Are you sure? yes | no

Ken Yap wrote 12/06/2019 at 04:29 point

@Starhawk I thought it might be something like that. Well whatever floats your boat and all the best.

  Are you sure? yes | no

Starhawk wrote 12/06/2019 at 05:38 point

Thanks! Feel free to hit me up in the chat sometime tho. I'm usually pretty lonely and bored... I live in a rent-controlled apartment in a small town, and I don't drive (never learned, due to some complications of my disability) so I don't get out much... also, although I can be remarkably opinionated (you may have noticed!) I try to be friendly and a bit of a wise@$$ most of the time.

  Are you sure? yes | no

Tom Nardi wrote 12/06/2019 at 00:01 point

Absolutely love this project, very happy to see it come to IO and also entered into the Feather contest.

  Are you sure? yes | no

oshpark wrote 12/04/2019 at 16:58 point

Fantastic project! 

  Are you sure? yes | no

sirmylesavery wrote 12/04/2019 at 14:23 point

Looks like a fascinating project! I've very interested to see how this evolves. The BOM looks broken to me, it does not list any of the components. However I have never used FindChips for BOM/components, I've always used Octopart, so the error may just be on my end.

(Edit): found the Github, which lists the components, as well as links to components.

  Are you sure? yes | no

Starhawk wrote 12/04/2019 at 00:15 point

How hard would it be to rework this for an ESP8266 board such as the ESP-12E or ESP12F? That would give the advantage of (presumably) a lower cost, since those ESP boards can be purchased for $5 or less, and would easily add WiFi capability, which, if done right, could potentially be used to pull/"stream" eBooks from remote storage -- a very cool thing indeed ;)

Also -- which eBook formats are supported here?

  Are you sure? yes | no

deʃhipu wrote 12/04/2019 at 09:17 point

Since it's a feather wing, you can simply just use a HUZZAH feather board with an ESP8266 on it. Not hard at all.

  Are you sure? yes | no

Starhawk wrote 12/04/2019 at 15:45 point

"SAMD51J19A"... ARM Cortex M4

"ESP8266"... sort of ARM-ish but by no means actual ARM.

de∫hipu... "yeah just swap em out, for sure the code will run fine instead of hemorrhaging errors like a clumsy hemophiliac on warfarin"

Me... https://m.imgur.com/t/futurama_fry/ocfuDzL

  Are you sure? yes | no

deʃhipu wrote 12/04/2019 at 16:04 point

There are two versions. One has the SAMD51, and that acts as a feather, so you can connect the ESP32 featherwing to it and use the Nina firmware to have WiFi on it, the other one is a featherwing, so you can put any feather you want on it.

  Are you sure? yes | no

Starhawk wrote 12/05/2019 at 17:38 point

Apologies, I missed your follow-up comment because I was not notified for some reason. I had missed the fact that there were two versions... sorry for the confusion. ESP32 is still not ESP8266 (duh) but I'd think they'd be at least somewhat interoperable.

  Are you sure? yes | no

joey castillo wrote 12/05/2019 at 17:33 point

Yep the initial wing did function with an ESP32 feather; I didn't do a whole lot of testing with it, but I sense the baseline level of functionality would work. 

With an ESP8266 I think you'd be pushing it; you would have SPI and I2C for the screen, buttons and SD, but each SPI device requires a chip select, and the screen also needs a pin for data/command (and really works better with pins for busy and reset), so I think you'd run out of GPIO pretty quick, even if you did get rid of the Feather header. It also only has one ADC and no DAC, so the headphone use case is out, as are the expansion ports on the side. The price thing might also be kind of a wash; at quantity the SAMD51 is $3.83, which feels like a lot of bang for your buck. 

> which eBook formats are supported here

This is more of a software question, and I don't want to overpromise. For the Arduino library and minimum viable software, I'm aiming to support plain text and maybe some minimal, Markdown-like formatting. I sense that the thing is powerful enough to do more, but software would have to be written to parse ePub and MOBI. PDF unfortunately is probably not going to happen, just because of the resolution (300x400) and color depth (1-bit) of the screen.

  Are you sure? yes | no

Starhawk wrote 12/05/2019 at 17:55 point

I already have a couple ESP8266 boards, a gift from a friend, which is why I was asking about that... re DAC, look up the concept of an R-2R DAC on Wiki -- I'd have to drive it from a shift register (the ubiquitous '595 comes to mind) because I/O pins, and tacking an LM386 or similar amplifier on the output would be almost certainly in order, but -- again -- I have all of those parts, and a minimal LM386 amp is exactly three parts -- a rheostat or pot on the input for volume control, the LM386 chip itself, and an electrolytic capacitor of anywhere between 10uF and 1000uF (depending on how much bass you want) on the output. That's pretty dang hard to mess up.

As an aside, ePub would be easy to support -- it's XHTML in a "mislabeled" ZIP archive with a few extra bits stuck in for various purposes. Unzip, grab the page/file order from the internal OPF file, and the Table Of Contents info from the NCX file, use that with a file concatenator to order everything into one very large XHTML doc, and then rip out all the tags. Done.

PDF would also be easy (!), given the plethora of freely available online tools to convert from that format into ASCII and Unicode text...

  Are you sure? yes | no

deʃhipu wrote 12/05/2019 at 22:17 point

There is nothing easy about parsing XHTML, especially with limited memory.

  Are you sure? yes | no

Starhawk wrote 12/06/2019 at 00:38 point

@de∫hipu -- who the #@!! said that the *device* should have to do the parsing...?! That's a bit dim, now, isn't it...? ;)

Instead, have a PC-side "loader" application... and, in this day and age, probably a phone/tablet app is also warranted...

/sigh

...yeah, I know, "who needs a friggin app for an eReader" -- like anyone is going to notice or care outside of the tinfoil hat crowd, and IMO they can quite honestly go screw, at least until they realize that there is absolutely no chance that lizard people from Mars are ever going to take over Earth, yeesh...

*ahem*

Anyhow, have the "loader" program/app parse (and if necessary, convert) the input files (*.txt, *.pdf through a webservice, and *.epub) into whatever format the device can accept, and then either dump the file to the device, or to remote storage with some sort of device-resident 'hook' (like a symlink, or, ironically, perhaps a better fit, at least metaphorically, would be the Windows *.lnk file, since that's an actual /file/ and not a sort of filesystem-approved version of HTML's meta-redirect function).

  Are you sure? yes | no

deʃhipu wrote 12/06/2019 at 11:21 point

Sure, Calibri already exists and can convert pretty much any e-book format to text files — but I wouldn't call that "e-pub support" on the side of the device then.

  Are you sure? yes | no

Ken Yap wrote 12/06/2019 at 04:05 point

Well seeing as my mugshot is used to illustrate the word scrounger in the dictionary I'm in no position to be critical but your plan seems a lot of trouble to go to to avoid buying a decent MCU for the task...

  Are you sure? yes | no

Starhawk wrote 12/06/2019 at 04:23 point

WHAT?!?! They told me *I* was gonna get that pic!!!

/joke

PM me if you want exact details, as I don't want to hijack this page, but the basic story is that, despite being a fairly intelligent young man, I am (quite legitimately) on Disability and thus forced to pinch pennies much harder than I'd like. Don't get me wrong, I'm grateful for what I get, but whatever idiot thought this was enough to live on without a very difficult time of it indeed... that fellow should be quite glad that stupidity is not a criminal offense.

Suffice it to say that I have the most infuriating set of abilities - every single talent and skill I have, comes with an unavoidable caveat or two that renders it utterly useless for any sort of activity that might induce monetary gain.

So I make do with what I can get... which, honestly, ain't much. I have a considerable quantity of stuff that only works because the massive layers of "temporary" bandaid fixes tend not to fall off all at once. This is also why my computer builds tend to go together with Dollar Tree superglue and 3M double stick foam tape far more than anything else...

  Are you sure? yes | no

deʃhipu wrote 12/03/2019 at 22:06 point

I'm really happy to see this project documented here, because I want to steal that display for my own projects! (And great work, by the way!)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates