There is a newer version of the record available.

Published August 16, 2026 | Version v0.1.2-alpha

trvny/wambridge: v0.1.2-alpha — the light goes out

Authors/Creators

Description

Built from 05806ab, run 31968404676.

The speaker is told the stream is over (#48)

Until now nothing on the PCM path ever said so. Every session left the M5 holding a SetUrlPlayback whose source had simply vanished — and a speaker in that state never starts its idle countdown, so the front light stayed on until somebody dealt with it by hand. That was the "it never sleeps by itself" the notes had been repeating for a week; it was ours.

Each session now ends over the connection the listener already holds, and says what happened:

WAMBRIDGE STOPPED stop=sent sleep=off holding=0

Measured on the physical M5 the same evening, same speaker, two sessions:

| session ended | front light | |---|---| | on a build sending no release | still lit 33 minutes after the last audio | | on this build, stop=sent holding=0 | dark after 17 min 4 s |

Seeking was the risk, since a seek replaces the helper and therefore pauses the speaker before the next SetUrlPlayback is offered. Four seeks, audio back every time, about a second each.

sleep_after_stop arms SetSleepTimer when you want the speaker down on demand. In normal use it is not needed — a released speaker gets there on its own.

Also in this build

  • A start no longer arrives loud (#52). With the slider routed to the speaker, an explicit level was handed over before the startup cap was consulted, so the one guard that existed was bypassed exactly where it was needed. start_volume_max caps the first helper of a session, raw step, default 3.
  • Diagnostics survive the startup window (#51). The CLOCK line used to stop dead after 240 lines, about four minutes in, which made a stream that died at minute ten look identical to a healthy one. It now continues at a slower rate for as long as the stream lasts.
  • One silent command no longer fails the whole status read (#50). GetPowerStatus does not exist on this firmware and answers with silence; letting that timeout propagate reported a perfectly healthy speaker as unreachable.

Notes

Pre-release, and honest about it: this is a driver for one speaker model, tested by one person on one M5. The transport has passed the physical checklist repeatedly, but wav/wav24 remain opt-in and flac stays the default.

If a stream drops mid-playback, read the CLOCK line before suspecting this component: a full buffer with submitted frozen means the speaker stopped pulling, which is the network rather than the encoder. docs/WAM_PROTOCOL.md explains the signature and how to read the speaker's own radio with GetApInfo.

Files

trvny/wambridge-v0.1.2-alpha.zip

Files (242.5 kB)

Name Size
md5:6397738b6113b97cc8c29745da01a3b1
242.5 kB Preview Download

Additional details

Related works

Software