Skip to content

1.0.1-beta.6: screen orientation setting, and the printed case in the docs - #106

Merged
76cb merged 4 commits into
mainfrom
claude/inspiring-allen-yra5xq
Oct 21, 2026
Merged

76cb merged 4 commits into
mainfrom
claude/inspiring-allen-yra5xq

Conversation

@76cb

@76cb 76cb commented Oct 21, 2026 •

Copy link
Copy Markdown
Owner

Two changes, both for the printed case: the docs that describe it, and a setting for a board that sits upside down in a case. Pre-release 1.0.1-beta.6.

Docs: the printed case

Documents the author's printed case, https://www.printables.com/model/1885872-opentag-station (CC BY-NC-SA 4.0), in the manual and the README. Until now both said there was no reference enclosure.

  • hardware/mechanical.md: new section "The printed case" with the three files and their print orientation, the print settings, the extra hardware (M5/M2.5 screws, nuts, rubber feet, USB-C panel-mount cable and right-angle plug), the assembly steps and how to place a spool, all taken from the Printables description. The previous build-your-own guidance stays under "Build your own base and platform"; the #place-the-nfc-reader anchor used by the troubleshooting page still resolves.
  • hardware/bill-of-materials.md: the "Base, platform, screws, spacers" row becomes "Enclosure" naming the case and its hardware; the "An enclosure" line under "What the project does not recommend" is gone. The NFC tags row no longer says NTAG and MIFARE tags are not seen at all (changed in 1.0.1-beta.5).
  • getting-started/overview.md and the README point to the case. The STL files are not added to the repository; the pages say to download them from Printables.

Screen orientation setting (device.display_rotation, 0 or 180)

The Printables text says "set the display rotation in the firmware"; there was no such setting. Now there is.

  • Browser: Settings → Display → Screen orientation, Normal or Upside down (turned 180°). No touchscreen control (like the dim and sleep times).
  • GET /api/v1/config reports it, PATCH /api/v1/config accepts it under device; any value other than 0 or 180 is refused with 400. Older settings documents without the key read as 0. No schema bump: the key is additive with a default.
  • Firmware: Wt32Display::set_rotation() switches LovyanGFX between rotation index 1 (today's landscape) and 3 (the same turned 180°), which turns the panel and the touch coordinates together; UiService::apply_display_settings() applies a change at once with a full LVGL redraw, and initialize() applies the saved value at start.
  • Docs: configuration/display.md ("Turn the screen upside down"), reference/configuration.md, the case assembly step, changelog and release notes.

Verified on the host: native suite 680/680 (new: configuration round-trip, migration default and validation; web patch model; router parsing accepting 180 and refusing 90 and "180"; UI source contract for the apply path), browser tests 135/135 (form field, patch payload, older firmware without the key shows Normal), all local Python and docs checks. CI must still confirm the ESP32 build and the memory and stack checks; the screenshot receipts will be refreshed from the opentag-ui-review artifact once this run has produced it (the Display settings pane changed).

Needs a WT32: set Upside down in the browser and check that the screen turns without a restart, that touches land where they are shown on all five pages, that the setting survives a reboot, and that Normal turns it back. I could not verify that LovyanGFX's rotation 3 maps the FT6336 touch correctly on this board; rotation 1 does today, and the driver uses the same call.

https://claude.ai/code/session_01QcYr11a5B65kS64MagbgF1


Generated by Claude Code

The manual and the README said there was no reference enclosure. The
author's three-part case is published on Printables (CC BY-NC-SA 4.0):
the "Scale platform and enclosure" page now describes it (files, print
orientation and settings, hardware, assembly, how to place a spool) and
keeps the build-your-own guidance under its own heading; the parts list
names the case and its screws and feet; the overview and the README link
to it. The parts list also stops saying NTAG and MIFARE tags are not seen
at all, which 1.0.1-beta.5 changed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QcYr11a5B65kS64MagbgF1
…eta.6)

A saved setting, device.display_rotation (0 or 180), for a board mounted
the other way round in a case. Browser: Settings → Display → Screen
orientation. GET/PATCH /api/v1/config carry it under device; any other
value is refused. The touchscreen applies it at start and the moment the
setting changes, through LovyanGFX's rotation (panel and touch) and a
full LVGL redraw, and keeps it across restarts. Older settings documents
without the key mean 0.

Tests: configuration round-trip, migration default and validation; the
web patch model and the router's typed parsing; the browser form field and
its patch payload; a UI source contract for the apply path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QcYr11a5B65kS64MagbgF1
@76cb 76cb changed the title Docs: the printed case on Printables 1.0.1-beta.6: screen orientation setting, and the printed case in the docs Oct 21, 2026
Regenerated with tools/curate_public_images.py from the opentag-ui-review
artifact of CI run 39660828599 (head 79c3730); 123 capture receipts
verified.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QcYr11a5B65kS64MagbgF1
@76cb
76cb merged commit f55d8ae into main Oct 21, 2026
4 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.

2 participants