Skip to content

feat: add InkPanel Mini 1.54-inch 200x200 support - #25

Merged
CtrlAltcouk merged 66 commits into
mainfrom
feat/inkpanel-mini-200x200
Aug 17, 2026
Merged

feat: add InkPanel Mini 1.54-inch 200x200 support#25
CtrlAltcouk merged 66 commits into
mainfrom
feat/inkpanel-mini-200x200

Conversation

@CtrlAltcouk

@CtrlAltcouk CtrlAltcouk commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Goal

Add the Seeed XIAO ESP32-S3 + ePaper Driver Board + 1.54-inch 200x200 SSD1681 as a second InkPanel display option.

Hard compatibility requirement

Existing wft0583-800x480-mono panels retain their current four-widget renderer, 48,000-byte wire framebuffer, old-V2 display driver, device behaviour and published production firmware package. Mini is additive and uses a dedicated 200x200 renderer/firmware path.

Implemented

  • register ssd1681-200x200-mono (200x200 / 5,000 bytes / one widget)
  • advance device persistence V2 -> V3 without modifying frozen V1/V2 schemas
  • preserve all existing four-widget configs during migration
  • add backwards-compatible X-InkPanel-Profile enrolment negotiation
  • add separate 200x200 single-widget rendering and Mini enrolment frame
  • make FrameService/manage routes profile-aware while preserving the large profile contract
  • add Studio single-widget mode with square live preview
  • reuse remembered widget settings and existing write-only provider credentials
  • add shared dual-target firmware architecture and dedicated SSD1681 MiniEPD
  • keep existing OldV2EPD and the existing 800x480 template untouched
  • add standard XIAO ESP32-S3 Mini target with separate 8 MB partition map
  • omit unavailable Mini battery telemetry instead of fabricating a reading
  • publish both firmware targets atomically: full-size at firmware/dist, Mini at firmware/dist/mini
  • add target-isolated firmware APIs and explicit WebFlash hardware selection
  • preserve the historical full-size firmware manifest/binary endpoints
  • add Mini firmware, manifest, WebFlash and 5,000-byte/ETag/304 regression tests
  • update README/flashing/Mini documentation for both hardware profiles

Release gates

  • Server/typecheck/Node/browser test suite
  • Timezone matrix
  • Existing 7.5-inch firmware compiles and remains version 0.1.4
  • Mini firmware compiles for esp32:esp32:XIAO_ESP32S3
  • Production build publishes and verifies both full-size and Mini packages
  • Real 1.54-inch panel performs the production MiniEPD full refresh with correct pattern/polarity/orientation
  • Real panel reaches PASS: driver refresh and sleep commands completed.
  • Automated Mini contract verifies exactly 5,000 bytes + ETag + subsequent HTTP 304/no body
  • Explicit WebFlash hardware selection and separate Mini provisioning address (0x7FF000)
  • Existing full-size provisioning remains 0xFFF000
  • Final full regression CI passed on this exact head (CI #226)
  • Post-merge live validation: deploy via Settings -> Update now, WebFlash the Mini, verify one-widget Studio + real frame + no visible refresh on unchanged content

The remaining live validation requires the Mini-aware server and WebFlash package on main, so it is intentionally the post-merge acceptance test.

@CtrlAltcouk
CtrlAltcouk force-pushed the feat/inkpanel-mini-200x200 branch from 303b6b6 to 9ec8140 Compare August 17, 2026 13:07
@CtrlAltcouk
CtrlAltcouk marked this pull request as ready for review August 17, 2026 13:11
@CtrlAltcouk
CtrlAltcouk merged commit 227176a into main Aug 17, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant