Skip to content

Prepare v0.5.0 Waveshare Box V2 production support - #40

Merged
eirabie merged 2 commits into
mainfrom
codex/waveshare-public-support
Oct 10, 2026
Merged

eirabie merged 2 commits into
mainfrom
codex/waveshare-public-support

Conversation

@eirabie

@eirabie eirabie commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Prepare v0.5.0 production support for Waveshare ESP32-S3-Touch-LCD-1.85C-BOX V2 alongside the existing Atom build. The new profile uses production storage, round display, BOOT controls, the merged RTC adapter and signed updates; diagnostic and isolated-storage components stay out of release artifacts. Isolated development records are not migrated.

Release tooling builds registered 8/16 MiB profiles and packages a same-source, two-board bundle: seven existing Atom names plus six waveshare-box-v2. files, sharing approved audio. Signatures and image headers bind each application to its board. Device update discovery uses the board-specific descriptor, and additive USB identity fields support installer hardware recognition with legacy Atom compatibility. CI adds the Waveshare production build and pins the reviewed two-board website validator.

Companion installer: website PR #14. Merge and deploy that support before publishing a Waveshare stable release. This PR does not create a tag, upload or publish a release, deploy the website or flash hardware. Public USB application writes remain disabled by website policy pending qualification.

Hardware impact

  • No new required hardware
  • Adds optional hardware
  • Changes the required reference BOM

Waveshare V2 is an alternative integrated speaker/display enclosure; AtomS3R C126 + Pyramid A167 remains supported. V1, touch, microphones and SD storage are outside this release. No original hardware design or assembly change is introduced.

Standalone impact

Prayer calculations, scheduling, recordings and local controls remain independent of Home Assistant and the website. Both profiles keep dual 2 MiB application slots and separate 3.5 MiB audio storage. RTC recovery remains included; first synchronization needs internet time, and battery/unplugged retention and drift remain unqualified.

Testing

Automated: 18 UBSan CTests and 112 Python tests pass. The pinned website validator accepts producer output for both boards and rejects modified audio. Combined source mismatch, cross-board signatures and isolated release material are rejected. Website checks are detailed in its companion PR. Exact-head Firmware CI passes all 12 jobs, including all ten compiled variants and device UI browsers.

Matched pinned-toolchain OTA comparisons against main 96670c1: Atom 1,277,360 bytes (+608); Waveshare audio 1,213,344 (+432), display 1,263,312 (+448), diagnostics 1,350,224 (+432). New Waveshare production: 1,284,752 bytes, 288,112 bytes below the application budget and 812,400 free in its slot. All five capacity checks pass. Exact final production builds from 93eae428 are 1,277,392 bytes (Atom) and 1,284,784 bytes (Waveshare); a signed 13-asset candidate bundle passed the committed production audio validator and both website manifest/signature/application validators. Both production signatures reject use with the other board. Offline combined-release adoption/import/static validation and all 171 built-site browser cases also pass using the actual local candidate. This fixture does not establish public publication or delivery.

Physical: no new hardware access or flashing. Earlier attended development results remain source-bound. Production fresh installation, real public-feed signed OTA, interruption/rollback/recovery and production preservation remain pending. RTC powered-restart acceptance and listening with the newly merged louder volume mapping remain pending; intermittent HTTP timeouts are unresolved. Static capacity does not establish runtime heap/PSRAM headroom. See the preparation report.

Licensing/media

  • No new third-party media or dependency licensing concerns
  • Licensing/attribution details are documented in this PR

Both boards use the unchanged recordings approved in the committed registry and AUDIO-LICENSES.md. Private signing keys, audio inputs, build evidence and candidate binaries stay outside Git.

@eirabie
eirabie marked this pull request as ready for review October 10, 2026 16:02
@eirabie
eirabie merged commit 9e47867 into main Oct 10, 2026
12 checks passed
@eirabie
eirabie deleted the codex/waveshare-public-support branch October 10, 2026 16:20
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