sticky-device
Hardware facts, ESP-IDF firmware patterns, ePaper/touch APIs, and Playground publishing rules for the Seeed Studio reTerminal Sticky (ESP32-S3, 3.97" 800x480 e-ink). Use when working on reTerminal Sti
Files8
View on GitHubSKILL.mdskills/sticky-device/SKILL.md
GitHubreTerminal Sticky
Seeed Studio reTerminal Sticky: a magnetic ESP32-S3 e-ink note device. 3.97" 800x480 monochrome ePaper with 4-level grayscale, capacitive touch, 750 mAh battery.
Firmware is native ESP-IDF v5.4 / target esp32s3 (C/C++). ESPHome is the
supported no-C path. Apps are distributed by flashing whole firmware images — there
is no on-device app sandbox or multi-app runtime.
Read this first for any firmware task
Two rules cause most first-time failures on this device:
- Latch power on at boot. The device powers off unless firmware drives the
power-hold GPIOs within the first moments of
app_main(). See references/esp-idf-dev.md. - The panel is natively 800x480 landscape. Your logical canvas orientation is a choice you implement with a rotation in the pixel-write path. Pick one and keep touch coordinates in the same space. See references/display.md.
Where to look
| Task | File |
|---|---|
| Pin map, buses, part numbers, electrical/physical specs | references/hardware.md |
Toolchain, project skeleton, sdkconfig.defaults, build/flash, power latch, NVS, deep sleep |
references/esp-idf-dev.md |
| ePaper driver API, refresh modes, rotation, ghosting, partial-update strategy | references/display.md |
| Touch/GT911 gestures, buttons, IMU, SHT40, RTC, mic, buzzer, fuel gauge, SD | references/peripherals.md |
Publishing to Sticky Playground: integration.json, manifest, CI, review flow |
references/playground-registry.md |
| Existing firmware projects, ESPHome/Home Assistant, official docs, where the wiki is | references/ecosystem-and-docs.md |
Getting known-good driver sources
The registry holds a complete, buildable ESP-IDF app (sticky-2048) whose drivers are
the practical reference implementation for this board: seeed_epaper (SSD1677 panel),
gt911 (touch), bq27220 (fuel gauge), plus sticky_display / sticky_touch /
sticky_buzzer / sticky_ai_button wrappers.
To pull them into a working directory:
scripts/fetch_sticky_sources.sh <dest-dir>
Read that source before writing a driver from scratch. It is the only public code that is known to run on production hardware.
Documentation reality check
There is no wiki.seeedstudio.com page for the Sticky (verified 404 on
/reterminal_sticky/ and /sticky/). The Seeed wiki covers the older reTerminal
E-series, which is a different board — its pinouts do not transfer, though its
ESPHome cookbooks are conceptually useful.
Authoritative docs live at https://www.seeedstudio.com/sticky/docs/, and Seeed states they are still under active development. When something is missing, the fallback order is: registry source code → official docs → E-series wiki (concepts only) → Discord/forum. Full link list in references/ecosystem-and-docs.md.
Conventions in this skill
- Pin numbers are ESP32-S3 GPIO numbers, not header positions.
- "Native" coordinates mean the panel's own 800x480 landscape frame; "logical" means whatever orientation the application chose.
- Facts marked (unverified) come from a single source or conflicting sources and should be confirmed against hardware before relying on them.