Skip to content

v0.8.35

Latest

Choose a tag to compare

@tostmann tostmann released this 26 Jul 19:45

Provisioning over either USB socket on the 16 MB S3
The Improv provisioning handshake is now answered on both UART0 (CH34x/CP210x
bridge) and the chip's native USB-Serial-JTAG. Whichever port receives a valid
IMPROV frame first owns the session; the guard matches on the protocol magic
rather than the first byte, so stray terminal output on one port cannot lock
out a real host on the other. Console logs stay on UART0.

This means a 16 MB S3 board with only a single USB socket and no bridge chip
can be flashed and provisioned over that socket, without needing its own build
target. Verified end-to-end: a complete web-flasher run (factory flash plus
the Wi-Fi step) over the native socket, twice; each port also answers alone;
both are live within one boot window. 894 Improv frames under sustained load
with ~11 KB of interleaved console output produced zero corrupted frames.

Existing installs: the bootloader binary is byte-identical to v0.8.34, so the
flag behind this is purely app-level and cannot break OTA.

Configurable mDNS / DHCP hostname
GET/PUT /api/hostname plus a Web UI field. Two sticks on one network no longer
both announce sixback.local. Server-side validation (a-z, 0-9, -, max 24,
lower-cased, empty resets to default); the API distinguishes the persisted
name, the name active since boot, and a pending reboot.

Hide individual speakers
POST /api/speakers/hide. Hidden speakers disappear from the list and from the
zone, stereo, media-browser and group-sync pickers, and their live-status
polling is skipped. Survives re-discovery and reboots. Display-only: the
backend keeps serving a hidden speaker exactly as before.

Store-save failures are now visible
A warning pill in the header and a row in the system panel whenever the preset
store or the speaker inventory reports failed saves or an unreadable blob,
instead of the loss only surfacing after a reboot.

Spotify hardware-button watcher
Runtime PSRAM check instead of a compile-time assumption, so an S3 module
without PSRAM running the standard image no longer starts it.

Partitions are unchanged — this release installs over the air.