Commit Graph

  • 02c02a821d Added factory reset todo item main bsncubed 2026-09-27 22:19:42 +10:00
  • 41103e3b5e Licences: MIT for the AES67 core and web page, GPL-3.0 for the rest bsncubed 2026-09-27 08:37:38 +10:00
  • c641671d24 CLAUDE.md: AirPlay 1 source check (licences, what to take, caveats) bsncubed 2026-09-27 08:34:19 +10:00
  • 4c16686c6b CLAUDE.md: phase 2 gets clock-drift correction and AirPlay 1 bsncubed 2026-09-27 08:27:04 +10:00
  • fd30ac3eb1 CLAUDE.md: autoplay off the to-do list bsncubed 2026-09-26 08:51:33 +10:00
  • e2721d6bd1 CLAUDE.md: step 8 status (mono sum, gain, polish done so far), step 6 roles bsncubed 2026-09-26 08:48:46 +10:00
  • d4aa9c7be1 PTP status: 2-min average offset, details split; uptime as d/h/m/s bsncubed 2026-09-26 08:32:15 +10:00
  • 5f27262b27 PTP: drop the "Preferred TimeTransmitter" role bsncubed 2026-09-26 07:58:26 +10:00
  • ee03d9f9f1 PTP: hardware timestamping is not a setting any more bsncubed 2026-09-26 07:55:54 +10:00
  • ec65374e8d Web UI: firmware table without build date, project and ESP-IDF bsncubed 2026-09-26 07:54:28 +10:00
  • 214d6b2c29 Firmware version: <version.txt>-<git short hash>, starting at 0.0.1 bsncubed 2026-09-26 07:52:23 +10:00
  • 1d613b16c1 Firmware version from version.txt (0.9.0) instead of git describe bsncubed 2026-09-26 07:41:53 +10:00
  • 05f4ce45c3 48 kHz only: drop 96 kHz from the AES67 output bsncubed 2026-09-26 07:30:39 +10:00
  • 62b32c31ff Docs: end-user guide; README brought up to date bsncubed 2026-09-26 07:26:52 +10:00
  • 5d1627f8d0 tools/flash_board.py: flash another board over USB and give it its own identity bsncubed 2026-09-26 07:19:01 +10:00
  • d744a36275 Web UI: dark by default with a light/dark toggle; fix hidden labels bsncubed 2026-09-26 07:16:04 +10:00
  • b2c5496057 Web UI: hide the VLAN split option until it is implemented bsncubed 2026-09-26 00:04:46 +10:00
  • b36419477c Network: static IP addressing bsncubed 2026-09-26 00:01:34 +10:00
  • c4468c4af0 Network: status reports mask/gw/dns; UI shows the DHCP lease in the static fields bsncubed 2026-09-25 23:42:35 +10:00
  • 122e46e862 Pink noise as a source (mode "pink") bsncubed 2026-09-25 23:37:05 +10:00
  • bbeb7d3fd2 Player: apply source.gain_db as a fixed trim on top of the volume bsncubed 2026-09-25 23:29:40 +10:00
  • c9e06da47c aes67_tx: mono sum; the source always delivers stereo bsncubed 2026-09-25 23:26:48 +10:00
  • faf427c897 Web UI: sticky save bar; drop the Force source dropdown bsncubed 2026-09-25 23:20:41 +10:00
  • e5c3c0ad8a Player: runtime source override and play-a-URL on /api/player bsncubed 2026-09-25 23:15:38 +10:00
  • fd88e02e96 Web UI: player progress bar with seek bsncubed 2026-09-25 23:07:39 +10:00
  • a55a3ce14a Player: seek and volume on /api/player bsncubed 2026-09-25 23:04:11 +10:00
  • 8485ecb5b7 Player: transport commands on /api/player bsncubed 2026-09-25 22:59:14 +10:00
  • 9e1ca98a5d Player: GET /api/player with Spotify now-playing info bsncubed 2026-09-25 22:48:00 +10:00
  • c6ecbbeb25 Player: auto mode fails over between Spotify and HLS bsncubed 2026-09-25 22:36:11 +10:00
  • 78c480a7c2 CLAUDE.md: Spotify status after the connection fixes bsncubed 2026-09-25 20:47:39 +10:00
  • b8702e6faa Spotify: tell cspot when a new track becomes audible bsncubed 2026-09-25 20:47:28 +10:00
  • 5ce4588c80 cspot: delayed Pong (like librespot) stops the 6-minute connection resets bsncubed 2026-09-25 20:47:27 +10:00
  • 8008aa175f cspot: patch in philippe44/cspot PR #3 (crash when a request races a reconnect) bsncubed 2026-09-25 20:17:01 +10:00
  • f0fe53d5d1 Spotify: end the session for OTA; app volume starts at the player's bsncubed 2026-09-25 20:15:29 +10:00
  • 0aac7bc339 Spotify follows source mode, name and credentials live bsncubed 2026-09-25 19:43:16 +10:00
  • 8ba4de5eda OTA: quiet the audio sources during a firmware upload bsncubed 2026-09-25 19:02:03 +10:00
  • cd747aec40 Step 7.5b4a: player volume (Spotify app slider), applied after the ring bsncubed 2026-09-25 18:52:57 +10:00
  • 4a38254660 Step 7.5b3b: Spotify audio on AES67 bsncubed 2026-09-25 18:41:49 +10:00
  • 5b0d7c9ba4 Step 7.5b3a: per-source PCM converter (audio_out), shared by HLS and Spotify bsncubed 2026-09-25 18:34:15 +10:00
  • c240ac9a3c Step 7.5b2: Spotify Connect zeroconf and login work (PCM counted only) bsncubed 2026-09-25 18:26:36 +10:00
  • 039ec75473 Step 7.5b1: cspot (philippe44 fork) builds and links on the P4 bsncubed 2026-09-25 15:25:10 +10:00
  • 7bbda0a1e8 Step 7.5a: Spotify client credentials in config/UI, write-only secrets bsncubed 2026-09-25 15:16:42 +10:00
  • c0e0388ff0 CLAUDE.md: step 7 progress and open HLS items bsncubed 2026-09-25 15:00:09 +10:00
  • 3ebb27e4bb Step 7.4: HLS audio on AES67 (44.1 -> 48 kHz into the ring) bsncubed 2026-09-25 14:52:19 +10:00
  • 8a6cb53e3b Step 7.3: decode HLS TS segments to PCM (own TS demux + AAC decoder) bsncubed 2026-09-25 14:48:12 +10:00
  • 852c0ffa0f Step 7.2: HLS client fetches live segments (log only) bsncubed 2026-09-25 14:40:18 +10:00
  • d3897f3179 Step 7.1: player plumbing (PSRAM ring -> AES67 TX), test tone mode bsncubed 2026-09-25 14:36:15 +10:00
  • 2a7ab7922d Step 7 prep: enable the 32 MB PSRAM bsncubed 2026-09-25 14:27:04 +10:00
  • 1961c7fe13 Phase 3: remote access via VPN / Tailscale bsncubed 2026-09-25 08:26:38 +10:00
  • e763dc81bd Phase 2: NTP with hostnames (pool.ntp.org) or IPs bsncubed 2026-09-25 08:22:58 +10:00
  • 5bd1a20e43 Step 6.3: PTP hybrid mode (unicast Delay_Req/Resp), step 6 done bsncubed 2026-09-25 08:21:09 +10:00
  • dcea39b216 Step 6.2: role hand-over, session_ver bump on GM change bsncubed 2026-09-25 08:08:00 +10:00
  • 08b83a069c Step 6.1: PTP TimeTransmitter with BMCA (multicast) bsncubed 2026-09-25 07:42:43 +10:00
  • 6d85eb49f8 lwIP: 16 sockets so web clients are not starved bsncubed 2026-09-25 07:35:02 +10:00
  • e2dc7552c2 Build order: step 5 done without VLAN; VLAN split parked for phase 2 bsncubed 2026-09-25 07:26:03 +10:00
  • f6dfa80b19 Step 5 (health): temperatures in status.temps bsncubed 2026-09-25 07:20:02 +10:00
  • 2dd8f60cd6 Web: keep httpd warnings out of the log bsncubed 2026-09-25 07:10:24 +10:00
  • 2522901918 PTP: don't report the pre-step offset bsncubed 2026-09-25 07:08:42 +10:00
  • 8b3bd39857 Step 5 (syslog): esp_log to remote syslog bsncubed 2026-09-25 07:05:34 +10:00
  • f3779696d5 Step 5 (SAP): announce the stream via SAP bsncubed 2026-09-25 06:57:47 +10:00
  • 044e9913a7 AES67 TX: send each packet right after its last sample is due bsncubed 2026-09-25 06:48:47 +10:00
  • bae6a8a2f9 Step 4.2: PTP-paced AES67 RTP sender with 1 kHz test tone bsncubed 2026-09-25 06:43:12 +10:00
  • 3d05768f00 Step 4.1: /stream.sdp from the live config and PTP GM bsncubed 2026-09-25 06:38:55 +10:00
  • 004cc6e212 Step 3 verified: PTP TimeReceiver locks, status in the UI, GM loss handled bsncubed 2026-09-25 06:26:44 +10:00
  • 9af6c53294 Step 3.3b: status.ptp for the web UI bsncubed 2026-09-25 06:22:41 +10:00
  • 685060e12c Step 3.3a: PTP servo, clock locks to the GM bsncubed 2026-09-25 06:15:26 +10:00
  • e2f4d81326 Step 3.2: TimeReceiver measurement (GM selection, Delay_Req/Resp, path delay) bsncubed 2026-09-24 23:50:46 +10:00
  • 880437948d Enable ETH transmit mutex (LLDP/PTP raw TX next to lwIP) bsncubed 2026-09-24 23:47:31 +10:00
  • 6090ceb239 Step 3.1: EMAC hardware timestamps for PTP over UDP/IPv4 bsncubed 2026-09-24 23:44:11 +10:00
  • f259c5d554 Step 2b verified: OTA update, rejections and rollback on board bsncubed 2026-09-24 23:28:55 +10:00
  • ad5a8b7545 OTA: report previous slot only when it is bootable bsncubed 2026-09-24 23:27:49 +10:00
  • bbc5729cc1 OTA rollback test build config (sdkconfig.selftest_fail) bsncubed 2026-09-24 23:20:20 +10:00
  • 2403a6b64b Step 2b: firmware upload (/api/ota) with image checks and rollback self-test bsncubed 2026-09-24 23:20:04 +10:00
  • cbfc37cde6 Rebuild picks up the git version after each commit bsncubed 2026-09-24 23:17:13 +10:00
  • 07e16e6163 DHCP hostname: send net.hostname in DHCP requests bsncubed 2026-09-24 23:16:39 +10:00
  • 30c32e702b Step 2a (2/2): LLDP transmit, switch shows name and IP bsncubed 2026-09-24 23:14:09 +10:00
  • 979420a6bb Step 2a (1/2): mDNS hostname.local and _http._tcp bsncubed 2026-09-24 23:08:51 +10:00
  • 8e52401e9c Step 2 verified: web UI checked in browser bsncubed 2026-09-24 23:05:10 +10:00
  • c2621f192a Step 2.2: config registry and NVS store, GET/POST /api/config bsncubed 2026-09-24 23:00:55 +10:00
  • 35275b8ccf Step 2.1: web server, embedded UI, /api/status, /api/reboot bsncubed 2026-09-24 22:56:06 +10:00
  • 69b4e18118 Step 1: Ethernet up (IP101/RMII), DHCP, link and IP logged bsncubed 2026-09-24 22:52:08 +10:00
  • b391b962a7 Step 0 verified on board: boots rev v1.3 build, 32 MB, OTA layout bsncubed 2026-09-24 22:48:46 +10:00
  • bbfd3506bf Step 0: IDF project skeleton for esp32p4 with core component stubs bsncubed 2026-09-24 22:47:21 +10:00
  • 221b95a950 Upload files to "web" bsncubed 2026-09-23 21:52:46 +10:00
  • 67f76aed93 Upload files to "docs" bsncubed 2026-09-23 21:52:22 +10:00
  • 07f44f2ccc Upload files to "/" bsncubed 2026-09-23 21:51:44 +10:00