-
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