Skip to content

Latest commit

 

History

History
73 lines (52 loc) · 4.21 KB

File metadata and controls

73 lines (52 loc) · 4.21 KB

Device reference · M5Stack PaperS3 (C139)

Distilled from M5Stack's official material (PaperS3 datasheet, updated 2026-05-07) as a reference for firmware development and the capability boundary for future features — what the hardware offers determines what we can build. Official docs: https://docs.m5stack.com/en/core/PaperS3

A 4.7" touch e-ink controller device aimed at low-power display and interaction: IoT monitoring / smart-home panels / e-labels / reading.

Core specs

Item Spec
SoC ESP32-S3R8, dual-core Xtensa LX7, 240 MHz
Flash / PSRAM 16 MB flash + 8 MB PSRAM (octal mode required, see software notes)
Wireless 2.4 GHz Wi-Fi (upgraded antenna, ~111 m open field)
Battery 1800 mAh Li-ion (largest of the Paper family), LGS4056H charger
Size / weight 121.5 × 67.7 × 7.7 mm / 89 g (thinnest)
Power USB Type-C 5V@500mA, OTG/CDC/MSC
Operating temp 0–40 °C

Capability list (the feature boundary)

Everything the PaperS3 board offers — future features cannot exceed this table.

Capability Part Interface / pins What it enables
E-ink panel EPD_ED047TC1, 4.7", 960×540, 16-level grayscale ESP32-S3 direct parallel: DB0-7 = G6/G14/G7/G12/G9/G11/G8/G10, XSTL G13 / XLE G15 / SPV G17 / CKV G18 / PWR G45 Paged reading, zero-power standby display. 16 grays beat pure B/W; partial refresh supported
Capacitive touch GT911, 2-point + gestures I²C, INT G48 Page turns, taps, gestures (gestures unused so far)
IMU / gyro BMI270 I²C 0x68 Flip gestures, posture detection (used for flip-to-sleep; raise-to-wake not possible from deep sleep, see note)
Physical key ×1 Side key Power on/off / reset / download mode. ⚠️ Only one key, hardware-controlled (PMS150G) — not readable in software
Buzzer Onboard passive buzzer BUZ_PWM Notification tones (unused)
RTC BM8563 I²C 0x51 Timed deep-sleep wake, local time
microSD CS G47 / SCK G39 / MOSI G38 / MISO G40 External storage (unused; article cache lives on internal LittleFS)
Battery gauge ADC ADC_VBAT (G21) Battery level monitoring
Power control PMS150G Power on/off and download control

Deep-sleep wake note: ESP32-S3 deep sleep can only be woken by RTC GPIOs (0–21). Neither the GT911 touch INT (G48) nor the BMI270 INT is wired to one, so the only way out of deep sleep is the side key (hardware reset) or an RTC timer.

Expansion ports

Port Pins Notes
HC1.25-4PLT (PORT.CUSTOM / Grove) GND / 3V3 / G1 / G2 3V3 + GND + 2× GPIO, open port on the back for sensors
USB power detect USB_DET G5 >0.2 V on the pin = USB attached

Power / battery life

State Current @4.2 V
Low power (main rail off, gyro low-power) 9.28 µA
Standby (main rail off, gyro on) 949.58 µA
Active (main rail on) 154.02 mA

1800 mAh + 9.28 µA deep sleep gives the best battery life in the Paper family. Wi-Fi off while reading, deep sleep when idle, zero-power e-ink standby — this power model is what the firmware implements.

Software stack

  • Framework: Arduino + M5Unified + M5GFX; e-ink driver requires EPDIY ≥ 2.0.0
  • PlatformIO: board = esp32-s3-devkitm-1 profile family, flash_size = 16MB, memory_type = qio_opi, LittleFS
  • ⚠️ Dev note: PSRAM must be enabled in octal mode; EPDIY needs 2.0.0+

Download mode / power

  • Power on: single-press the side key; power off: double-press
  • Download mode: connect USB → long-press the side key → status LED on the back blinks red

Hardware caveats

  • ⚠️ Don't use QC3.0/2.0 chargers on early batches: a QC protocol timing issue on the USB port means PD high voltage can damage the device; fixed in v1.1/v1.2+. Check the sticker on the back (v1.0 has no version printed).
  • The large flat back panel may bow slightly — a normal structural artifact, not battery swelling.

Official references