Skip to main content

Inkplate Projects - e Reader

Overview

The Inkplate 6FLICK e Reader transforms your e-paper display into an open source e-reader (e-book reader). By using the provided Python script that converts the EPUB file into an easier-to-manage and usable format on the ESP32, the device allows you to read your e-books on the Inkplate 6FLICK itself.

The code smartly implements dynamic allocation for most of the files being stored on the Micro SD card. The code intends to use as little space as possible, so that there is space for as many books as possible.

Requirements

For this project, you need:

  • Inkplate 6FLICK (because the UI is touchscreen-based)
  • Micro SD card (ESP32 on its own doesn't have enough memory to store large amounts of data, a single book is several MB at best!)
  • e-books (We recommend The Gutenberg Project as a legal way to get free e-books)

Setting up

Inkplate 6FLICK E-Reader example

Link to the official github page of the inkplate6FLICK_E_Reader example

Create a /books folder on your Micro SD card; it will be used to store all of the books that you convert. The Micro SD card structure should look something like this: D:/books.

Books folder inside Micro SDcard

The Arduino sketch doesn't have to be modified in order to work. First, open the Arduino IDE and navigate to
File->Examples->InkplateLibrary->Inkplate6FLICK->Projects->Inkplate_e_Reader:

Arduino sketch path directions

Uploading the code

After completing all the previous steps, uploading the project to the Inkplate is as simple as pressing the Upload button in the Arduino IDE:

Arduino upload button

Converting the .epub file

Download the Python script epubToImg.py that is provided with the project.
After that, download the .epub file and copy its absolute path. (.epubs without pictures are preferred because they will not be displayed).

Book downloaded from project Gutenberg

Script is built on Python 3.13.2 Go inside the script folder and run pip install -r requirements.txt from Terminal/Command Prompt to install all dependencies used by the script. After that, run the script. Command structure looks as follows:

python .\epubToImg.py [book absolute path] [destination path + **BOOK NAME**] --width 758 --height 930 --text-size "[size]"

ℹ️
The --text-size parameter is optional; it is best to use it when displayed text is too small for your liking. Size can be any CSS-supported type of value, for example: --text-size "14px" / "1.5em" ...

Here is an example of how the script is called:

Script called from Terminal
ℹ️
Due to the time complexity of our conversion solution, it is not rare to experience long conversion times, especially with larger books. So don't stress if the script "freezes" for a bit, all good things take time.

After the conversion is complete, you will get a message in the terminal:

Completed

Reading on Inkplate 6FLICK

After completing all the steps from the Setting up part, you can put the Micro SD card in the onboard Micro SD card slot on the device. After inserting the Micro SD card, power on your Inkplate. If all is correct, you should get to the HOME menu for available books (the ones you converted and placed on the Micro SD card):

Completed

By using the PREV and NEXT buttons, you can traverse the books. When you get to your desired book, press the SELECT button to "open" it.

You can traverse the book page-by-page using the PREV and NEXT buttons, or you can go to a specific page using the GOTO button.

To return to the Home menu, press the HOME button.