There are some interesting aspects to this project:
We’re using deep sleep to save on battery – check out my recent video on this subject for a deep dive: https://youtu.be/YOjgZUg_skU
We’re also using an SD Card in SPI mode using a few of the spare GPIO pins on the board – we’ve covered this previously in this video: https://youtu.be/bVru6M862HY
Parsing, layout out and rendering ePub files is pretty interesting. It’s a good challenge to try and get this working nicely on embedded devices like the ESP32.
[0:00] Introduction/demo
[1:07] ePub format overview
[1:34] What’s inside an ePub file?
[1:49] The content.opf file
[2:20] ePub components
[2:32] Challenges
[2:55] Getting ePub files onto the device
[3:08] Touch screen failure
[3:24] Listing files on an SD Card
[3:33] Enabling long files names in the ESP-IDF
[3:51] Reading ZIP archives on the ESP32
[4:15] Parsing the content.opf file to get the book structure
[4:56] Should we build a web browser?
[5:34] Parsing the XHTML content
[5:52] Laying out the content
[7:28] Deep sleep
[7:41] Show me the code!
Everything is on GitHub here: https://github.com/atomic14/diy-esp32-epub-reader
If you’ve got an ESP32 based ePaper display then please give it a go!
You can get the LilyGO board I’m using from here: https://s.click.aliexpress.com/e/_9u8DGd (affiliate link)