PicoCalc eBook Reader

Hello everyone,

I’m excited to announce the PicoCalc eBook Reader, a multi-component project that I’ve built for the PicoCalc. You can find the full project, including all files and documentation, on GitHub: - https://github.com/A-I-nstein/PicoCalc-eBook-Reader

This project is designed to convert EPUB files into a custom .book format and allow them to be read on the PicoCalc. It is built upon BlairLeduc/picocalc-text-starter, which provides the base hardware driver support—a big thank you to @BlairLeduc.

This is my first proper embedded application, suggestions, improvements, and constructive feedback are very welcome. Please also let me know what other features you’d like to see!

Project Components

The project consists of two main components, both of which are available for download from the GitHub Releases page:

Component Description How to Use
Converter (converter.exe) Download from GitHub An application written in Rust to be run on your computer. Simply double-click to start. It converts your .epub files into the required .book files, which you then copy to the PicoCalc’s SD card.
Firmware (firmware.uf2) Download from GitHub The actual eBook reader application. I used a Pico 2W for testing. Connect your PicoCalc in BOOTSEL mode to your computer and copy the firmware.uf2 file onto it. Disconnect the PicoCalc and turn it on to launch the reader.

Navigation and Usage:

On startup, the firmware will list the first nine .book files found on the SD card, allowing you to select a book. Book metadata (title, author, etc.) will be displayed after your selection.

Use the PicoCalc keyboard for navigation:

  • Enter: Go to the next page.
  • <: Go to the previous section/chapter.
  • >: Go to the next section/chapter.
  • q: Return to the main book list at any time.

Features supported:

  • Text Extraction & Formatting: Extracts and cleans readable text from EPUB files; includes startup screen, paragraphs, tabs, and pagination.
  • Efficient Packaging: Packs all text into a single .book file with a fast-access header for efficient navigation.
  • Metadata: Extracts and embeds book metadata (title, author, description, etc.) for display in the reader.
  • Reader Functions: Lists books, allows user selection, and supports section/chapter navigation.

Features Planned / In Progress

  • Formatting Options: Word breaks (next line/page), font size/style options.
  • Navigation: Table of Contents navigation.
  • Extended Support: Support for ASCII control characters and other new features.
  • Visuals: Display cover pages and images.
  • Reader Utilities: Show battery life, pages remaining, time to complete section/book, and bookmarks.
  • Display Limits: Increase the displayed book limit beyond nine.

For more technical information please check the main project on GitHub




13 Likes

Any pic of it in use?

2 Likes

Tried it just now. default pico and uf2 loader. Says “ERR Not For This Device”

Trying to run the converter app, the best I can get is “Error: I/O Error: Access is denied. (os error 5)”

The converter app was initially flagged as harmful by windows.

The uf2 file is for Pico 2(W) only.

1 Like

Just reading my first *.book :stuck_out_tongue:

App loading ok with uf2 loader 2.3

Can be useful to add path to the *.book file, now application can see only files present on the root dir.

Thank you for nice add to PicoCalc playground…..

1 Like

After some reading have one bug report and one suggestion.

1- bug, during the reading after several Enter/ next page. The press on < moved to the 3rd page of text instead just one page before. It seems that the counter/pointer is not the same variable.

2- suggestion. Can be useful to see the page number and to have option to save last file&page.

Thank you :slight_smile:

Yes, I’ve just uploaded a few images in the main post as well as the GitHub repo. Thanks!

The driver is for pico 2w. I do not have a build for the default pico yet. I just don’t have it in me to swap picos with the screen breakage issues going on. I’ll find someone to help me build a version for the default pico. I’ll let you know when it’s in place. Thanks.

Can you try again by placing the epub file in a folder in which you have admin access privileges? It worked for me in the desktop. Thanks.

And I do not know why Windows flagged it. Probably because it’s an .exe file downloaded from the internet.

Interesting idea. This could allow people to create collections. I’ll add this to my to do.

1 Like

The < and > buttons are used to go to the previous/next “Sections” and not “Pages”. I understand it’s intuitive to expect those buttons to navigate the pages though. I’ll see if I can use the arrow keys to navigate the pages. That could be better.

Page numbers and bookmarks are in the roadmap!

1 Like