Install Firmware
Works in Chrome and Edge. Plug the device in via USB and click.
Flash with esptool at offset 0x0, see the instructions below. Web flasher manifest: manifest.json
Features
Comfortable EPUB reading
Fast partial e-ink refresh, selectable refresh quality modes, furthest-read position tracking and a cover shown on power-off.
Search, bookmarks, footnotes
Full-text search, go-to-page, bookmarks and footnote support including grouped footnotes.
Images and covers
Inline images with a toggle, progressive JPEG decoding for images and covers, placeholders for oversized images.
Dark mode and rotation
Dark mode, manual display flip and IMU-based auto-rotation.
Library and collections
Book collections via /books/ subfolders, library page navigation and USB disk mode for copying books.
Clock and alarm
WiFi NTP time sync, clock screen with date, alarm with speaker and wake from deep sleep.
Smart battery readout
Smoothed battery percentage with a per-cell LiPo learner, auto power-off and optional hourly lock-screen refresh.
Flash Instructions
Install esptool
pip install esptool
Connect the device
Plug in M5Stack Paper S3 via USB-C. It should appear as /dev/ttyACM0.
Flash the firmware
esptool.py --chip esp32s3 --port /dev/ttyACM0 write_flash 0x0 erbopubreader-1.0.16.bin
sudo tee /etc/udev/rules.d/99-esp32.rules <<EOF
SUBSYSTEM=="tty", ATTRS{idVendor}=="303a", MODE="0666"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger
Then unplug and replug the device.
Install esptool
pip install esptool
Connect the device
Plug in M5Stack Paper S3 via USB-C. Find the port:
ls /dev/cu.usbmodem*
Flash the firmware
esptool.py --chip esp32s3 --port /dev/cu.usbmodem* write_flash 0x0 erbopubreader-1.0.16.bin
Replace /dev/cu.usbmodem* with the actual port from step 2.
Install esptool
pip install esptool
Connect the device
Plug in M5Stack Paper S3 via USB-C. Open Device Manager to find the COM port (e.g. COM3).
Flash the firmware
esptool.py --chip esp32s3 --port COM3 write_flash 0x0 erbopubreader-1.0.16.bin
Replace COM3 with your actual port from Device Manager.
Changelog
/books/ subfolders, Settings reachable with no books installed, smoother battery % via 11-sample median filter and per-cell LiPo learner (SD log + BMI270 temperature), optional hourly lock-screen battery refresh with quick partial redraw, date on the power-off / lock screen when RTC is synced, faster pagination via incremental per-word width measurement, cached image dimensions per book to skip repeated ZIP inflate
Support My Work
If you enjoy ERBO PUB Reader or my other projects, consider buying me a coffee.
Donate with Card