Skip to content

Latest commit

 

History

History
162 lines (134 loc) · 9.48 KB

File metadata and controls

162 lines (134 loc) · 9.48 KB

RSVP Nano v0.0.9

v0.0.9 adds the new Kotlin/Wasm web companion, multilingual reading, page reading, installable locale and font catalogs, a redesigned device interface, and broader hardware support.

The refreshed v0.0.9 build also fixes browser flashing for Nano variants that expose USB mass storage. ESP Web Tools can place an updated Nano into its bootloader automatically, and the web companion releases an active USB connection before opening the installer. The first upgrade from an older v0.0.9 build may still need one manual BOOT and RESET sequence because the automatic reset handler is part of the refreshed firmware.

Highlights

  • A new responsive web companion now handles setup, flashing, conversion, library management, appearance, settings, RSS feeds, and focus timers.
  • RSVP Nano can read shaped Arabic and Hebrew, horizontal CJK, vertical Japanese and Chinese, and mixed-direction books with installable reader fonts.
  • Page reading joins RSVP playback as a complete reading mode.
  • Android, iOS, and web companions share Kotlin Multiplatform models, workflows, conversion, and API contracts while keeping platform-specific layouts.
  • Seven ESP32-S3 variants receive browser-flasher and OTA images. An ESP32-C6 Touch LCD 1.47 source target is also available.

Web companion and setup

  • Replaced the handwritten website with a Compose Multiplatform application compiled to Kotlin/Wasm.
  • Linked :conversionCore directly into the browser app. EPUB, RSVP, text, Markdown, HTML, and XHTML conversion no longer depends on a generated JavaScript converter.
  • Added a guided setup flow for board selection, browser flashing, Improv Wi-Fi provisioning, connection verification, and initial personalization.
  • Added automatic latest-release firmware selection plus local full-image .bin upload with board filename checks.
  • Added local-network and Web Serial companion transports with the same NanoApi operations and structured errors.
  • Added library upload progress, deletion, saved-position editing, per-language book fonts, themes, fonts, locale packs, settings, Wi-Fi, RSS feeds, and focus timer management.
  • Added responsive narrow, compact, and wide layouts with light and dark themes.
  • Added an installable PWA shell that remains available after a successful load. Firmware metadata and binaries continue to use the network first, with cached fallback.
  • Added a clear unsupported-browser startup screen instead of leaving a failed Compose canvas.

Browser flashing and USB control require Web Serial and a secure context, currently provided by desktop Chrome and Edge. LAN management remains available when the browser can reach the reader.

Languages, fonts, and text layout

  • Added downloadable interface packs for Spanish, French, German, Romanian, Polish, Russian, Hebrew, Arabic, Japanese, Korean, Simplified Chinese, and Traditional Chinese. These translations are marked as preview.
  • Added a generated compact UI-font pipeline so installed locale packs include only the glyphs required by their translated interface.
  • Added installable RFont4 reader families for Latin, Cyrillic, Hebrew, Arabic, Japanese, Simplified Chinese, and mathematical text.
  • Added OpenType shaping tables for Arabic and Hebrew, bidirectional paragraph processing, and script-aware font selection.
  • Added vertical CJK metadata preservation and upright vertical reading for supported Japanese and Chinese books.
  • Added per-book language font choices and a dedicated math-font selection.
  • Added compact reader strikes for page reading and previews while retaining three anti-aliased RSVP sizes.
  • Reduced shaping, glyph lookup, SD reads, and allocations through reusable buffers, compressed glyph blocks, locality maps, prefetching, and cached font metadata.

English remains built into the firmware. Locale packs change the device interface; RFont4 families control book rendering and can be installed independently.

Reading and device interface

  • Added page reading with paragraph-aware scrolling alongside RSVP playback.
  • Redesigned the complete on-device interface with consistent controls, larger touch targets, and layouts that adapt to narrow LCD and larger AMOLED screens.
  • Added a chapter scroll wheel, an expanded on-screen keyboard, redesigned library cards, clearer metadata, and improved status and settings screens.
  • Added configurable handedness, reader control placement, footer metrics, battery labels, focus highlighting, tracking, guide geometry, and reading-time estimation.
  • Added configurable focus routines with an animated, orientation-aware hourglass.
  • Added the Reaction screensaver and improved Life, Maze, and Voronoi performance.
  • Improved touch handling for taps, holds, drags, edge gestures, active contacts, wake interrupts, and noisy idle frames.
  • Reduced visible stalls by separating input sampling, rendering, conversion, storage, and network work and by using partial display updates where supported.

Companion apps and device management

  • Redesigned Android and iOS library, settings, catalog, and book-detail flows for phone and tablet layouts.
  • Added complete editing for reading, display, network, update, standby, focus, RSS, theme, font, and locale settings.
  • Added exact word counts, chapter information, saved progress, and location editing by chapter, slider, or word number.
  • Added local theme, font, and locale uploads plus online catalog installation and removal.
  • Improved device discovery, shared-network reuse, direct Nano-network fallback, connection status, and startup synchronization.
  • Added build-aware Android firmware notifications and update checks.
  • Added production Android and iOS icons and Android target SDK 36 support.
  • Added a framed USB companion protocol and Improv Serial support on the existing CDC port.

Storage, configuration, and updates

  • Added durable hidden .rstate.toml files for per-book progress and typography. Stale state is ignored when the source book changes.
  • Consolidated device settings into versionless /config/settings.toml with a matching NVS copy.
  • Added versionless /config/rss.toml and /config/focus.toml files.
  • Added optional hardware-backed NVS encryption for settings and Wi-Fi credentials.
  • Added startup OTA checks, exact published-build matching, and release source pinning with owner/repository@tag.
  • Expanded SD diagnostics to report detected books, articles, fonts, themes, locales, and configuration files.
  • Improved SD setup, failed-upload cleanup, file replacement safety, USB mass-storage exit, and settings persistence outside network callbacks.
  • Added retained startup crash diagnostics and centralized firmware logging.

Hardware and power

  • Expanded support for Touch LCD 3.49 rev1 and rev2 plus Touch AMOLED 1.8 V1, 1.8 V2, 2.06, 2.16, and 2.41 boards.
  • Added a source-build target for Waveshare ESP32-C6 Touch LCD 1.47. It is not included in the v0.0.9 release assets or web installer.
  • Corrected board-specific display initialization, panel offsets, touch mapping, SD frequency, power control, battery sensing, speaker enable, IMU setup, and physical button mappings.
  • Added light-sleep standby, qualified touch and power-button wake handling, and automatic power-off after extended standby.
  • Improved battery sampling, percentage and time-remaining estimates, and battery display controls.

Touch AMOLED 1.8 V2 support remains experimental because Waveshare has shipped materially different hardware under the same product name.

Conversion and compatibility fixes

  • Improved EPUB package, NCX, EPUB 3 navigation, nested chapter, encoded path, and encrypted-content handling.
  • Preserved document language, direction, and vertical-writing metadata across companion conversion.
  • Improved RSS and Atom parsing, redirects, large feeds, complete items from partial downloads, and full-text article extraction.
  • Fixed malformed UTF-8 boundaries, localized text loss, stale page pixels, redraw identity collisions, OTA version comparisons, release asset matching, and companion catalog replacement.

Upgrade

For an existing Nano, configure Wi-Fi and open Settings > Firmware update. A fresh install can use the web companion.

Back up important SD content before upgrading. Existing books remain readable. Settings are loaded into the current versionless TOML model, missing fields receive defaults, and obsolete unknown fields are removed when the canonical file is next written.

Release assets

Each supported ESP32-S3 board has one full browser-flasher image and one OTA application image.

Board Full image OTA image
Touch LCD 3.49 rev1 rsvp-nano-esp32-s3-touch-lcd-3.49.bin rsvp-nano-esp32-s3-touch-lcd-3.49-ota.bin
Touch LCD 3.49 rev2 rsvp-nano-esp32-s3-touch-lcd-3.49-rev2.bin rsvp-nano-esp32-s3-touch-lcd-3.49-rev2-ota.bin
Touch AMOLED 1.8 V1 rsvp-nano-esp32-s3-touch-amoled-1.8.bin rsvp-nano-esp32-s3-touch-amoled-1.8-ota.bin
Touch AMOLED 1.8 V2 rsvp-nano-esp32-s3-touch-amoled-1.8-v2.bin rsvp-nano-esp32-s3-touch-amoled-1.8-v2-ota.bin
Touch AMOLED 2.06 rsvp-nano-esp32-s3-touch-amoled-2.06.bin rsvp-nano-esp32-s3-touch-amoled-2.06-ota.bin
Touch AMOLED 2.16 rsvp-nano-esp32-s3-touch-amoled-2.16.bin rsvp-nano-esp32-s3-touch-amoled-2.16-ota.bin
Touch AMOLED 2.41 rsvp-nano-esp32-s3-touch-amoled-2.41.bin rsvp-nano-esp32-s3-touch-amoled-2.41-ota.bin

Use full images for browser flashing. Use OTA images only through the firmware update path for the matching board.