Guide: Building a Home Library for Low-Cost E-Readers
Chelsea Adams
Some viral marketing crazes seem more helpful and hopeful than others. Recently I fell prey to the Xteink X3 compact e-reader when it went on sale. I've wanted to move away from vendor lock-in with my digital library and have purchased a few titles that fit format requirements of this device. Because I borrow so many titles from my local library, I haven't bought tons of e-books, but I've got some that I would like to make easily accessible on my new device, which doesn't have the polish or ease of use of familiar alternatives out of the box. I grabbed this relatively affordable e-reader because it uses an ESP-32 microcontroller under the hood, a device I am already using in a number of DIY smart home/automation projects.
CAUTION - This is a niche project for DRM-free EPUB books only. I legally purchase books from authors and publishers that distribute this way because it gives me full ownership and control over my digital library, but you might not have a large collection of books of this type.
I had one goal for this project, to create a home library of e-books easily accessible on my new ESP-32 e-ink reader.
Here are the steps I took:
- Acquired hardware. My setup runs on the Xteink X3 compact e-reader and the Home Assistant Green (or a compatible NUC/Raspberry Pi/etc. device running Home Assistant OS), which I already had running on my home network. Many routers allow you to setup dedicated subnets for smart home devices, which should be isolated from your main network when possible (2.4 GHz bands are common for these networks). Using your router admin interface, configure your Home Assistant and e-reader to have static IP addresses to ensure consistent connectivity.
- Set up your Home Assistant Green and configure your HA admin profile. Home Assistant now uses the term "Apps" to refer to integrations and add-ons that extend its functionality. Download an app that will help you manage your e-book library, preferably one that supports OPDS servers/browsing, which will be important in a minute. I chose one called Calibre-Web, a tool to view and manage titles via a web interface: https://github.com/janeczku/calibre-web
- Go to Settings -> Apps -> Calibre-Web and turn on Watchdog, Start on Boot, and Show in sidebar if you wish. Click Open Web UI to access the Calibre-Web interface and change the default admin username and password to something secure.
- Confirm that your license allows it, then transfer your files into your Calibre-Web library by clicking on "Upload" in the Calibre-Web interface. Adjust the metadata if you need to, add tags, and organize your library as desired.
- The Xteink X3 ships with firmware that is an absolute bummer to use, so much so that I can't recommend the device for those who want an easy peasy e-book experience right out of the box. I looked into community-backed options to flash onto the device for better hackability/vibes. Because this e-reader is relatively low-cost, I'm accepting the risk of bricking the device in exchange for something that might be more fun to use. I decided to flash CrossPoint Reader onto the X3. It's an easy process: go to the website, plug in/identify your device, and flash the new ROM with a single click. CrossPoint is attractive because it claims that it will support Libby and Kobo, two established players that offer more versatility for e-book purchasing and borrowing. Xteink users should know that the company's friendly posture toward CrossPoint seems to be a little uncertain; proceed with care.
- On the Xteink, go to File Transfer -> Join Network and connect to your IoT WiFi. Open the IP address shown on the Xteink screen in a browser. Scroll to the OPDS Servers card, add your Calibre-Web details, and save. My OPDS server was available at my homeassistanturl/opds. Back on the e-reader, exit the file transfer mode and navigate to OPDS Browser, where you should see your Calibre-Web library and titles available.
- Now you can add books to your library from any source that provides supported formats, and you can access those books on your Xteink X3 while it's connected to your home network.
This is not a hardened setup and should not be considered secure for sensitive data. It is intended for personal use within a trusted home network. In the longer term, filling up your Home Assistant storage with large e-book files could impact performance and available space for other integrations and add-ons; I'd consider an external storage solution if you've got a spare thumb drive or network-attached storage available.
<soapbox>
Given the current state of e-reader ecosystems and DRM restrictions, some DIY elbow grease is usually required to achieve a flexible and vendor-independent setup. If you are willing to contact authors and publishers directly, you might be able request/purchase DRM-free copies of your favorite books, which can then be added to your home library with relative ease. It shouldn't be this complicated, expensive, or time-consuming to set up a library for personal use at home with DRM-free books that you own outright. Tell publishers and authors that their works are important enough to own, not license.
</soapbox>
Happy reading, geeks!
If you've got a tip about how to improve or correct this guide, feel free to reach out using my contact form.