Skip to content

v0.49.2 — TRMNL X panel auto-detect

Choose a tag to compare

@dmellok dmellok released this 16 Jun 12:35

Fix

TRMNL X devices now auto-provision at their native 1872×1404 panel size.

The native TRMNL firmware's /api/setup request only sends ID / Content-Type / FW-Version / Model headers; Width / Height are only sent on /api/display. Tesserae's auto-provision was reading the (absent) Width / Height and falling back to the original-TRMNL 800×480 default, so the composer designed dashboards at the wrong canvas size and the rendered PNG came out blurry on the X's 13.3" panel.

Fix: setup now looks up panel dims from the Model header instead.

Model header value Panel dimensions
x (TRMNL X, BOARD_TRMNL_X / EPDIY) 1872×1404
og / TRMNL (original) 800×480
anything else 800×480 (safe default)

The table grows as new models ship; unknown values fall back to the original-TRMNL default rather than guessing.

Reported by @tommerty on discussion #8.

Caveat: existing devices

This fix only helps new provisions. Devices already auto-provisioned at the wrong 800×480 keep that setting. The user can adjust the panel size on the device-settings page. A self-healing path that updates stored panel dims from /api/display reports is the planned follow-up for 0.49.3.

Tests

+2 regression tests covering the TRMNL X auto-provision (Model header without Width/Height) and the unknown-model fallback. 972 passing, ruff + mypy strict clean.