What's Changed in v3.2.2
✨ New Features
- 🔔 Update notifications on the LCD. SomnoTrace now periodically
checks (once an hour, with a little randomized jitter) the GitHub
repository it was built from for the newest stable release. If your
running firmware differs from the latest release tag, a small amber
download badge appears in the LCD status bar, next to the Wi-Fi and
Bluetooth icons. The check uses a lightweight redirect-based lookup —
no heavy API payloads, no wasted GitHub rate-limit budget — and
remembers the result across reboots.- Fork builds check the fork's own repository; official builds check
ilyakruchinin/SomnoTrace. - Local and non-GitHub-CI builds skip the check entirely — no false
"update available" noise on development firmware. - Filtered or rate-limited internet never produces a false badge.
- The "I'm Feeling Adventurous" OTA check in the web UI now also
queries the repository the firmware was actually built from, and
tells you plainly when the build didn't come from GitHub Actions.
- Fork builds check the fork's own repository; official builds check
- 🏷️ Device name in the web UI. Your custom device name (set under
Settings → Device Name) is now shown as a badge next to the
SomnoTrace logo in the header, and in the browser tab title
(bedroom — SomnoTrace) — handy when you run more than one unit.- On small screens and narrow windows, the logo gracefully swaps to
the compact icon so the name fits without breaking the layout. - Capital letters are now allowed in the device name (
Bedroom,
AS10-Test, ...). Note that names differing only by letter case
still count as the same device on the network. - Hidden when the name is left at the default
somnotrace, so
nothing changes for existing setups.
- On small screens and narrow windows, the logo gracefully swaps to
🐛 Bug Fixes
- ⚡ Local OTA upload failing on the first attempt. Uploading a
firmware file through the web UI could stall at ~22 KB and abort with
OTA: stream buffer timeout, succeeding only on the second try.
The cause: the OTA partition was fully erased (~10–20 s) before the
transfer began, freezing the whole system and silently killing the
connection mid-upload. Flash sectors are now erased lazily, one at a
time, as the data streams in — the first click works every time.
📖 Documentation
- 🔵 AirSense 11 pairing instructions clarified (#320). The pairing
guide now explains that the AS11 stays bonded to a phone even with
the myAir app closed — and may never start advertising for SomnoTrace.
Added proper unpair steps: remove the machine in the myAir app and
forget it in the phone's Bluetooth device list. Special note for
iPhone users: the Control Center Bluetooth toggle is not enough —
it only disconnects temporarily and turns itself back on.
🔧 Internal
- Update indicator badge realigned with the other status-bar icons.
GET /api/statusnow reportsupdate_availableandlatest_tagfor
the firmware update checker.- New host-side unit tests covering the update-check logic (repository
slug validation, release-tag extraction, version comparison).