Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 3.55 KB

device-specifications.md

File metadata and controls

96 lines (76 loc) · 3.55 KB

Device Specifications

Devices

  • X3
    • MCU: ESP32-C3
    • Display: 792 × 528, UC8253 or UC8279d
    • Storage: SPI SD
    • Touch: None
  • X4 (original)
    • MCU: ESP32-C3
    • Display: 800 × 480, SSD1677
    • Storage: SPI SD
    • Touch: None
  • X4 Pro
    • MCU: ESP32-S3, 8 MB octal PSRAM
    • Display: 800 × 480, UC8279 or UC8179
    • Storage: 1-bit SDMMC
    • Touch: GT911
  • X4 v2 Classic
    • MCU: ESP32-S3
    • Display: 800 × 480, SSD1677, UC8179, or UC8279
    • Storage: 1-bit SDMMC
    • Touch: None

See the device support matrix for build targets and hardware services. Classic uses a separate board profile from the original X4 and X4 Pro.

Firmware

  • papyrix-xteink-c3.bin selects X3 or X4 at startup.
  • papyrix-x4pro.bin uses the fixed X4 Pro board profile.
  • papyrix-x4c.bin uses the fixed X4 v2 Classic board profile.
  • All three artifacts use 16 MB flash and application offset 0x10000 in the standard partition table.

Do not install an artifact for a different MCU or board. An incorrect image can drive the wrong GPIOs and damage hardware.

Hardware Selection

lib/BoardSupport owns board profiles, hardware identity, and selection policy. The C3 artifact checks the manual override before the saved board selection. It probes X3 I2C devices when no saved selection applies. Board detection and display-controller detection are separate operations. See X3 controller detection. Each probe pass checks the BQ27220, DS3231, and QMI8658. Two or more detected devices in both passes select X3. Zero detected devices in both passes select X4. The firmware saves either conclusive result in NVS. Other results select X4 for that boot without saving a detection result.

C3 board and panel selections use the papyrix_hw NVS namespace. The C3 keys are dev_ovr, dev_det, epd_ovr, epd_det, and epd_ver. Classic reads the factory panel identity from hw_calib/screenType without changing it. A missing or invalid identity starts a bounded display probe. An unknown response leaves the display disabled. Headless SD recovery remains available.

Power

The CPU policy uses 10 MHz at idle. Active work uses 160 MHz on ESP32-C3 and 240 MHz on ESP32-S3. GPIO3 receives the Power button input on all supported devices.

The firmware powers the SD rail before storage access. It completes the display power-off sequence before deep sleep. Board-specific backends set the required rail and GPIO hold states.

Storage

PapyriX supports FAT32 and exFAT SD cards. Page caches use device-specific folders:

/.papyrix/cache/          X4
/.papyrix/cache/x3/       X3
/.papyrix/cache/x4pro/    X4 Pro
/.papyrix/cache/x4c/      X4 v2 Classic

Moving an SD card between devices does not reuse incompatible page layouts. See file formats for cache records. See the user guide for supported book formats.

Hardware Libraries

  • BoardSupport: Board profiles, selection, power, touch, battery, and RTC backends
  • EInkDisplay: Display controller access and frame buffers
  • InputManager: Physical button input
  • BatteryMonitor: Battery measurements
  • SDCardManager: SD card access

References