Skip to content
ionutdecebalPublic

About

No description, website, or topics provided.

Resources

Stars

1.3k stars

Watchers

15 watching

Forks

Repository files navigation

RSVP Nano

Your books. Your pace. Your reader.
An open-source pocket reader built on ESP32.

Set up your reader  ·  Choose your software  ·  Downloads  ·  Join the community

RSVP Nano brings your books and articles to a small, standalone reader. Rapid Serial Visual Presentation (RSVP) shows text one word at a time; the New UI also offers contextual word chunks. Set your pace, adjust the timing, and open page view whenever you want to browse or find your place.

Your library and reading progress live on the microSD card. Everyday reading works offline, with no account or subscription. The project is free, open source and community-powered, with detailed settings and room to experiment.

Choose your software

Two interfaces, one RSVP Nano project. Choose the experience that suits you. Classic remains available, and an ordinary update keeps you on your chosen interface.

0.2.0 · New UI Classic
Interface A quieter reading screen, consolidated menus, larger touch targets and full-area sliders The established RSVP Nano interface and controls
Reading Single-word RSVP or centred contextual chunks, with adjustable pacing Single-word RSVP and page reading modes
Book navigation Scrollable page view, text search and chapter jumps; page view is for browsing Existing page reading and book navigation
Quick access Middle button opens speed, brightness, Dictionary and the main menu Existing controls for your board
First use On-device introduction to the buttons, speed, pacing, SD card, book uploads and dictionary Setup through the web companion
Focus Background reading sessions or standalone timers, presets, full-screen breaks and manual resume Existing focus timers and orientation controls
Customisation Detailed font, theme, tracking and position settings; per-book settings in Library; guides in Word mode Existing appearance, reader and per-book settings, including guide geometry
Dictionary Offline English definitions and optional direct Wi-Fi lookup Not included
Books and connections Existing web companion, USB transfers and Wi-Fi Existing web companion, USB transfers and Wi-Fi
Hardware Waveshare ESP32-S3 Touch LCD 3.49 Rev1 and Rev2 All supported boards below
Updates Update New UI or choose Return to Classic on Rev1 and Rev2 Try New UI on LCD 3.49 Rev1 and Rev2 (Classic v0.1.5)
Availability 0.2.0 preview, selected explicitly on Rev1 and Rev2 Stable; the default installer choice
Source Rev1 · Rev2 v0.1.5

New UI 0.2.0 Rev1 downloads · New UI 0.2.0 Rev2 downloads · Classic downloads

Rev2 is now supported and has been tested on hardware. Its v0.2.0 port keeps the same interface, onboarding and dictionary. Choose your revision in the web installer or switch over Wi-Fi from Classic v0.1.5. Rev1 uses release v0.2.0; Rev2 uses v0.2.0-rev2.1. Each release has its own board-specific files.

This release focuses on the interface, onboarding and dictionary. Voice notes, transcription, Bluetooth phone sync and the experimental new phone app are being developed separately and are not included in 0.2.0.

Space to read
New UI reading screen: a single centred word with chapter and progress indicators
Your book, one menu away
New UI main menu with current book, chapters, library, settings and Focus
Controls when you need them
Middle-button controls with speed, brightness, page view and dictionary
Definitions without leaving the reader
Offline dictionary showing a word definition and an optional Look online button

New UI screens rendered by the firmware’s production renderer with sample content.

Get started

You need a supported board, a USB-C data cable and a FAT32 microSD card. An 8–32 GB card is a straightforward starting point.

  1. Open the web companion in desktop Chrome or Edge.
  2. Choose your exact board and revision, then Classic or New UI (preview) · 0.2.0 where listed. Both LCD 3.49 revisions offer New UI.
  3. Follow the flashing steps. The New UI’s introduction walks you through the controls.
  4. Add books from the companion’s Library screen: EPUB, RSVP, text, Markdown, HTML or XHTML.
  5. Open a book on the Nano and make the pace your own.

Wi-Fi is optional for reading. Books can be transferred over USB or through the local Wi-Fi companion. You can replay the New UI introduction under Settings → Help.

Already using a Nano? Back up your SD card and leave Erase first off in the web installer. Match the firmware to your board revision. For manual browser installation, use the merged .bin; the -ota.bin is for application-only OTA updates.

Setup, connection and installation details →

Updates and switching

On LCD 3.49 Rev1 and Rev2, in the New UI’s Firmware updates, choose Check current software to stay on New UI, or Return to Classic to change interfaces. The reader shows the selected version before you confirm. It downloads over Wi-Fi and restarts after installation.

Classic v0.1.5 provides Try New UI on both revisions (Rev1 also supports it in v0.1.3–v0.1.4). If your Classic version has no selector yet, update to v0.1.5 first, then choose Try New UI. If older firmware reports rsvp-nano-ota.bin missing, retry the official update; the legacy filenames are included.

The browser installer also offers both interfaces for both revisions. Classic's manual full-flash downloads are bundled in rsvp-nano-browser-installers.zip; the browser installer selects the correct image for your board automatically. If you already installed the tested v0.2.0-rev2.1 candidate, you have the published firmware: its update check will show that it is current, and Return to Classic now has a published target.

Switching installs a different firmware; it is not a live appearance toggle. Both use the same SD library, but Classic may replace New UI-only preferences when it saves. Keep an SD backup if you want to restore your exact settings.

Switching, advanced update sources and manual installation →

Dictionary setup (New UI)

English is available now. More languages are planned. Install the dictionary once on your SD card, then look up words offline without a phone, account or server.

  • From the reader: press the middle button → Dictionary → ? → Install / manage dictionary, then Install dictionary. You can also install it during onboarding. The download uses Wi-Fi and takes about 48 MiB on SD, with progress and verification.
  • From a computer: download the English dictionary ZIP, extract it, and copy the dictionaries folder to the root of the SD card.

Look online is optional: it sends the lookup word directly to Wiktionary over Wi-Fi. The book is not uploaded. Offline lookup remains available when an online request fails.

The pack is adapted from Open English Wordnet 2025. Dictionary data is versioned separately from firmware, and compatible custom packs can still be copied to SD. Keep the pack’s attribution and licence files when sharing it.

Manual installation, custom packs and dictionary licences →

Supported hardware

New UI 0.2.0 supports LCD 3.49 Rev1 and Rev2 through the web installer, on-device updates and source builds. Classic supports all boards below. Choose the exact board revision when flashing; firmware is not interchangeable.

Board list, build targets and purchase links
Board PlatformIO environment Distribution
Waveshare ESP32-S3 Touch LCD 3.49 rev1 waveshare_esp32s3_touch_lcd_349_rev1 Web installer, OTA, source
Waveshare ESP32-S3 Touch LCD 3.49 rev2 waveshare_esp32s3_touch_lcd_349_rev2 Web installer, OTA, source
Waveshare ESP32-S3 Touch AMOLED 1.8 V1 waveshare_esp32s3_touch_amoled_18_v1 Web installer, OTA, source
Waveshare ESP32-S3 Touch AMOLED 1.8 V2 waveshare_esp32s3_touch_amoled_18_v2 Web installer, OTA, source; still experimental
Waveshare ESP32-S3 Touch AMOLED 2.06 waveshare_esp32s3_touch_amoled_206 Web installer, OTA, source
Waveshare ESP32-S3 Touch AMOLED 2.16 waveshare_esp32s3_touch_amoled_216 Web installer, OTA, source
Waveshare ESP32-S3 Touch AMOLED 2.41 V1 waveshare_esp32s3_touch_amoled_241 Web installer, OTA, source
Waveshare ESP32-S3 Touch AMOLED 2.41 V2 waveshare_esp32s3_touch_amoled_241_v2 Web installer, OTA, source; hardware validation pending
Waveshare ESP32-C6 Touch LCD 1.47 waveshare_esp32c6_touch_lcd_147 Web installer, OTA, source

Match the LCD 3.49 firmware to the board revision. Rev1 and Rev2 use different backlight, display-reset and interrupt wiring; do not interchange their binaries.

For AMOLED 2.41, choose V2 only for a Rev2.0 PCB or V2 QC label. Reset/interrupt wiring is different; V1 and V2 firmware are not interchangeable. Both use the regular UI.

The following purchase links are affiliate links. A purchase may support RSVP Nano at no extra cost to you:

RSVP Nano and Pocket Lines

RSVP Nano continues as the free, community-powered, experimental platform. We’re keeping the detailed settings, the DIY and self-hosted possibilities, and development for existing Waveshare readers.

Alongside it, we’re building Pocket Lines for people who want a reader they can buy and start using straight away: preinstalled software, a simpler device experience and services that don’t require self-hosting. A dedicated device with an OLED screen, more physical buttons and a metal casing is in development. These are early plans.

The projects now have separate development tracks and repositories. Both projects’ software will remain open source. Our commitment is for every Pocket Lines software feature to have a DIY or self-hosted equivalent in RSVP Nano as development progresses. That is the direction of travel, not a claim that every planned feature is available today.

Join the shared community and help shape what comes next →

Companions and your library

The web companion handles setup, flashing, book conversion, USB transfers and local-network management. Existing Android and iOS companions can be built from source. They share the Kotlin conversion and device logic; the experimental new phone app is a separate development effort.

Books and articles live under /library/books and /library/articles on the SD card. Fonts, themes, language packs and settings are stored alongside the library. Reader indexes can be rebuilt; hidden .rstate.toml files preserve progress and per-book settings. Always eject USB mass storage before disconnecting the reader.

Configuration and storage · Reader fonts · Themes · Language packs

Build and contribute

Bug reports, feature ideas and focused pull requests are welcome. Tell us Classic or New UI, your firmware version, board revision and the steps to reproduce. Use main for Classic firmware work and release/ui-dictionary for New UI on Rev1. The tested Rev2 port lives on work/ui-020-rev2.

Build firmware and companion apps from source

Clone submodules first:

git clone --recurse-submodules https://github.com/ionutdecebal/rsvpnano.git
cd rsvpnano

Firmware

The default main branch builds Classic. For the exact Classic maintenance release, use tag v0.1.5. For the exact New UI 0.2.0 release source:

git fetch --tags
git switch --detach v0.2.0
git submodule update --init --recursive

The published v0.2.0 tag and release/ui-dictionary target LCD 3.49 Rev1. For the Rev2 release, use its separate tag below.

Install PlatformIO, then build one target:

pio run -e waveshare_esp32s3_touch_lcd_349_rev1

Upload to a connected board:

pio run -e waveshare_esp32s3_touch_lcd_349_rev1 -t upload

Run native firmware tests:

pio test -e native_test

LCD 3.49 Rev2 build

The v0.2.0 Rev2 port has passed an owner test on a confirmed Rev2 board, both LCD revision builds, and update/dictionary checks. A Rev2 1000 WPM benchmark and on-device firmware switching have not yet been verified.

From a clone of this repository, check out the Rev2 release and export its firmware:

git fetch origin --tags
git switch --detach v0.2.0-rev2.1
git submodule update --init --recursive
python3 tools/export_web_firmware.py --env waveshare_esp32s3_touch_lcd_349_rev2

In the web companion, select LCD 3.49 Rev2 → Choose a firmware file, then use build/firmware/rsvp-nano-esp32-s3-touch-lcd-3.49-rev2.bin. Keep Erase first off and back up SD settings/progress first. The separate -ota.bin is for OTA delivery, not the browser's merged-file installer. The English dictionary pack is shared with Rev1; an existing pack can stay on the SD card.

Rev2 implementation and validation notes →

Web and mobile companions

Companion builds require JDK 17. Android also requires the Android SDK; iOS requires macOS and Xcode.

# Browser tests and staged Pages distribution
./gradlew checkWeb

# Shared tests and Android release build
./gradlew checkAndroid

# Shared iOS compilation and simulator tests
./gradlew checkIos

The staged website is written to build/webSite. Detailed native setup is in the Android and iOS guides.

For changes, build the affected target and run the relevant tests. Keep board-specific behavior in its platform directory and reuse the shared companion/conversion logic. Include physical-device results when changing display, touch, power, storage or USB.

Report an issue · Companion API · USB protocol · Conversion format · Hardware architecture

License

RSVP Nano is distributed under the MIT license. Fonts and third-party libraries keep their own licences. Offline dictionary data is based on Open English Wordnet under CC BY 4.0, with the underlying WordNet notices preserved; online definitions come from Wiktionary under CC BY-SA 4.0. See the dictionary attribution and setup guide.

About

No description, website, or topics provided.

Resources

Stars

1.3k stars

Watchers

15 watching

Forks

Releases

Packages

Contributors

Languages