DIY E-Reader Has Hot Swap Mechanical Keys

An e-ink screen mounted on a small white box is flanked by four mechanical keyboard switches. A power cable is routed from the device to a power bank that is mostly out of frame.

In the early days of e-readers, most devices had physical buttons to turn pages and otherwise navigate the device. [bwkrayb] longed for these halcyon days before touchscreen e-readers and improved on the concept by adding mechanical keyswitches.

By using an Adafruit NeoKey 1×4 as the keyboard interface, the e-reader has four hot-swappable keyboard sockets with built-in LEDs. [bwkrayb] is hoping to use these LEDs to implement a front lighting system in a future revision of the hardware.

The 3.7″ screen displays pages after running an EPUB through ebooklib and Beautiful Soup to generate files that can be used by the Waveshare drivers. Refresh time is reportedly slow, although [bwkrayb] suspects this  might be due more to the limited power of the Raspberry Pi Zero 2 more than the display itself.

If you want to see some other open e-reader projects we’ve covered, check out the EPub-Inkplate or the Open Book Project.

6 thoughts on “DIY E-Reader Has Hot Swap Mechanical Keys

    1. You can get replacement kindle screens for ~$25 from the usual places, but they require a few different voltage levels (something like +24, +5, -5, -20 and a tuned common usually around -1V) that can make them more difficult to implement. A few people have hacked around on them very successfully (, check out the link to essentialscrap, and there’s a hackaday IO project I can’t find that digs into the lookup tables for different waveforms). As with many e-inks, controls can be via any MCU with enough pins (or an ATTINY and a shift register) if you just go for full-screen refreshes (1-2s process) and skip the fancier waveforms. It’s a great screen for cheap, a FOSS power management board would make them a great, easily integratable display for projects. It’s 4th on my project list, which with my current bandwidth means sometime in 2025 :(

  1. Great project! I love hardware implementations of things, even if I don’t have the skills to make anything interesting, and making a LED blink is an accomplishment for me.

    I would be more inclined to hack an already existing e-reader software-side. A Kindle with a dead battery plugged on a charger and glued to the wall is a nice family calendar. Or weather station monitor. Or stocks/crypto panel.

    I need another Kindle, and I need a 3d printer…

  2. Howdy!

    I am the one that made this! (I found out that this was posted by seeing the traffic jump through my github…)

    It has been a randomly continuing project for the past year. It started with a 2.7 inch eInk display that had integrated buttons, and I had been stuck on not having a 3d printer to create any kind of case or housing. I discovered the Adafruit mechanical keyboard panel and from there used a 3.7 inch eInk screen I had lying around (the 2.7 inch screen ran into an unfortunate soldering accident…). I found an AirPods box and realized it was perfect. It has once again been on the backburner, but I should get back to more fun things for it. The button panel for the keys has fully RGB behind each keycap, but the first panel I got was defective. I’ve been working on getting it to cycle through all the colors on loading screen but lost some motivation. My biggest issue was that I bought some low profile keycaps, only to realize they weren’t MX compatible.

    Anyway… Thanks for showing off my project!

    1. Thanks for sharing it with the world! I was a fairly early adopter of e-readers, so I’m always excited to see e-ink in more projects. I think a lot of us here feel the same way!

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.