NOTE: This page presupposes that you have a fully assembled Open Book board, with buttons in place, the e-paper display connected, and the battery secured to the safe area on the back of the device.

Overview

Once assembled, you will need to perform a few steps before you have a working device. Specifically:

  1. Flash the language data to the ESP32-S3
  2. Flash the firmware to the ESP32-S3
  3. Insert a Micro SD card with text files you wish to read
  4. Paginate the text files

Prerequisites

You will need to have the Espressif ESP-IDF installed on your computer. The latest stable esptool release can be installed from PyPI via pip:

pip install esptool

Burning the Language Data

The Open Book uses a system called Babel to render text. Babel supports all the languages in the Unicode Basic Multilingual Plane (BMP), which includes most of the world’s languages. The language data is stored in a binary file, babel.bin, that must be flashed to the device. You can download babel.bin here.

Once you have downloaded babel.bin, you can flash it to the appropriate region of the Open Book’s flash storage using the esptool.py utility. With the Open Book plugged in, run the following command, replacing PORT with the appropriate serial port:

esptool.py --port PORT write_flash 0x340000 babel.bin

Flashing the Firmware

At this point, the Open Book has language data installed, but no code to run. To make it function as an e-book reader, you will need to flash firmware to the device. The Open Book’s firmware is called Libros, and it is still in active development. You can download a snapshot of Libros here.

Once you have downloaded fitmware.bin, you can flash it using the esptool.py utility. With the Open Book plugged in, run the following command, replacing PORT with the appropriate serial port:

esptool.py --port PORT write_flash 0x00010000 firmware.bin

Formatting text files for the Open Book

At this time, the Open Book supports displaying plain UTF-8 text files. You can use any text editor to create these files. When using the firmware on this page, the Open Book’s main menu should display the titles of up to 15 works on the SD card. By default, the Open Book will display the first line of each file as the title. If you want to change the title, you can add simple front matter to the file as follows:

---
TITL: Frankenstein
AUTH: Mary Shelley
DESC: A tragic scientist creates a monster in his laboratory.
GNRE: Science fiction
LANG: en
---
<book text goes here>

At this time, only the TITL field is parsed by the Open Book. The other fields are ignored. This front matter will not be displayed when the book is read; it exists only to provide metadata to the system.

Paginating Text Files

The first time you open a text file on the Open Book, you will get a dialog box informing you: “This book is not paginated. Paginate it now?” Pagination is, at this point, a time-consuming process that involves simulating the layout of the entire text file, noting the offset where each page begins and the amount of text that fits on the page.

Select Yes to begin the pagination process. This could take under a minute for a short story, or many minutes for a long novel. Once the pagination process is complete, the Open Book will remember the pagination data for that file, and you will be able to read it without delay in the future.

Open Book Controls

The Open Book has a simple control scheme. The user interface operates in two modes: the Main Menu mode and the Reading mode.

In the Main Menu mode, the user can select a work to read by pressing the Up and Down buttons on the center direction pad, and you can select a book with the center button.

In the Reading mode, the user can navigate through the text of the work by pressing the Next Page button at the bottom right of the device, and the Previous Page button at the bottom left. Pressing the center button of the direction pad will return you to the Main Menu. You can also access a “fast navigation” menu by pressing the Up button while reading. This displays a dialog that allows you to skip 10 pages forward or backeard with the right and left buttons on the direction pad.