Toolkit downloads paused. Third-party licensing is under review. These hardware guides are retained for reference; do not start a new installation from them. Read the status.

SqueezeRadio playback runtime

The development radio now runs the original SqueezeRadio playback layer without loading StandaloneRadio or HTTPSProxy. Public distribution is still paused; historical releases are not this implementation. Tested on one Squeezebox Radio (baby) with stock 7.7.3 r16676 firmware.

Application layer

The stock firmware provides Jive UI/networking and its audio decoder. We call those installed APIs; no firmware or codec implementation is included here.

Transport

native/transport.c is original application code. It uses OpenSSL 3.5.8 with CA and hostname verification, TLS 1.2 minimum, bounded redirects and connection setup, chunked-response decoding, request/header limits and three concurrent workers. It listens only on 127.0.0.1:8875 and refuses private/LAN upstream targets. HTTPS redirects cannot downgrade to HTTP. Plain HTTP stations remain plain HTTP.

The radio's C runtime is statically built with musl for ARM926EJ-S / ARMv5 soft-float. build-radio.sh checks the pinned OpenSSL source SHA-256 and Zig 0.14.1, builds the helper and assembles CA/license resources in ignored dist/runtime. The installed launcher is scripts/start-transport.sh; it must start before any foreground command in the owner's rcS.local. The installer preserves other startup commands and checks stale PID files against the executable command line.

OpenSSL archive SHA-256: a8f84a39918ec6415ce765d9b429d313ba97b8143169c172e734b9514464f5b2.

Ownership and notices

The repository applies MIT to Michael McCullough’s original contributions; it does not certify independent authorship of every file or grant rights to third-party material. The complete provenance review remains open. OpenSSL is Apache-2.0, musl has MIT/compatible notices, and the Mozilla trust data extracted by curl is MPL-2.0. Their notices accompany a locally built runtime. The CA header/source reference is retained. See notices. Binaries, CA data and personal device configuration are not committed.

The test radio uses our original scripts/sync-clock.sh service around its existing firmware msntp utility and RTC, plus licensed mDNS for the hostname. StandaloneRadio, HTTPSProxy and StandaloneTime have been removed from the device. A verified recovery archive is stored privately on the owner’s Mac.

Verification

Still outstanding: full clean-radio installation, all UI/hardware interactions, broader codec/playlist formats, sustained network-loss/resource testing and a full security/provenance audit. HLS and arbitrary playlist resolution are not claimed supported. Keep a verified rollback copy and describe this as a development build.

Continuous playback

There is no automatic playback time limit. The player checks decoder progress and reconnects if audio stops advancing for more than 20 seconds, even when the firmware still reports a playing state. After six unsuccessful retries, failed connections are retried once a minute until playback returns or the user stops it. Intentional stop and power-off do not reconnect.