Skip to content
Martin edited this page Dec 9, 2021 · 22 revisions

Hardware requirements

Easy steps to build it

The only requirement is that you need to have VSCode with Platformio extension installed.

  1. Pull the repository and library dependencies
    git clone --recursive https://github.com/atomic14/diy-esp32-epub-reader.git
  1. Select the platform io environment you want to build (M5Paper, LilyGo, epdiy)

  2. If you're using SPIFFS for storage (works on all devices) Upload some books in the file system (using platformio Terminal)

    pio run -t uploadfs

The epub files should be placed in the data folder

  1. Hit the build icon
   pio run

Note that to use SPIFFs a preprocessor define needs to be added to plaformio.ini if you want to use SPIFFS

-D USE_SPIFFS

If you're using an SD Card then just copy the epub books into the root folder of the card.

This WiKi is a work in progress I just wanted to start it making a very short introduction on how to build it.

Common issues when building

The ESP-IDF version should be >= 4.3.0 corresponding at the moment of writing this lines to Espressif 32 v. 3.3.2 in Platformio -> Platforms -> Embedded

If you have an earlier version make sure to update it to the last one. Then hit the Clean button (Trash can icon) and build the project again.

Roadmap

  • 2021, December support for Russian language added. Better handling of C++ vector exceptions. Focused in reducing the EPub reader restarting due to errors
  • 2021, November M5 Paper support added
  • 2021, October preparations to add also support for the M5 epaper module (*) M5
  • 2021, 4th week Oct support for all the EPDiy board supported epapers. First project to test it is the Open book project
  • 2021, 1st week Oct @martinberlin who writes this lines joins the team adding the L58 touch support for LilyGo EPD47
  • 2021, 2nd week Sep @atomic14 publishes the first version adding a microSD to the EPD47
  • 2021, Aug @atomic14 starts with the challenge to make an ESP32 reader with parallel epaper support using the EPDiy component

(*) M5 epaper uses IT8951 that sits between ESP32 and the epaper. A different way than EPDiy where ESP32 talks directly to 8 data lines paralell epaper.

Related research

ED047TC2 epaper from Lilygo A short analysis of this epaper and the initial research to make the touch component (@martinberlin)

TinyXML2 is the library we use to parse the ePub xhtml content.

C++ unordered maps are used to parse the entities that are not replaced by TinyXML2. The list is editable and it's on the lib/Epub/RubbishHtmlParser directory.