diff --git a/CLAUDE.md b/CLAUDE.md index 7936fe5..756ef11 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -47,7 +47,11 @@ Repo: https://gitea.apointless.space/bsncubed/aes67-ESP32-P4 - [x] 2b. Firmware update: /api/ota upload + rollback self-test. Test: update to a new build, then deliberately flash a build that fails its self-test and confirm it rolls back. After this, flash over the network; keep USB for recovery. - [x] 3. PTP TimeReceiver: lock to an existing GM (Riedel), fill `status.ptp`. Confirm EMAC hardware timestamps work. First check whether the installed ESP-IDF has a PTP example/component for the P4 before writing one. - [ ] 4. AES67 TX with a 1 kHz test tone, PTP-paced; /stream.sdp. Verify: import SDP on a Riedel Artist 4-wire AES67 port, and check packets/timestamps in Wireshark. -- [ ] 5. SAP discovery, then syslog, then health/temperatures, then VLAN split (one at a time). + Done and checked with a receiver script (all ptimes, L16/L24, tone phase-locked to PTP); still open: the Riedel import and a Wireshark capture. +- [x] 5. SAP discovery, then syslog, then health/temperatures (one at a time). VLAN split moved to phase 2. - [ ] 6. PTP TimeTransmitter: BMCA roles (auto/master), hybrid mode. - [ ] 7. Sources: HLS player, then cspot (Spotify Connect), then failover + /api/player. - [ ] 8. Mono sum, gain, polish. + +## Phase 2 (parked) +- [ ] VLAN split: AES67 untagged + internet tagged (inet.vlan_id/pcp), per aes67-core-base.md "Network". Needs a tagged VLAN with DHCP on the switch port. Config group `inet` and the UI fields exist already; nothing is applied yet. diff --git a/docs/aes67-core-base.md b/docs/aes67-core-base.md index e25b9cb..87142be 100644 --- a/docs/aes67-core-base.md +++ b/docs/aes67-core-base.md @@ -98,7 +98,7 @@ When this device is the GM, offset/frequency/delay show "–". - Channel selection: which channel of the stream feeds a mono output. ## Network -- Default: one untagged interface. VLAN split option: AES67 untagged + internet tagged (inet.vlan_id/pcp) using the ESP-IDF vlan_support approach (examples/network/vlan_support, ESP32-P4 supported). AES67 side has no gateway; default route and DNS are on inet. +- Default: one untagged interface. VLAN split (phase 2, not implemented yet) option: AES67 untagged + internet tagged (inet.vlan_id/pcp) using the ESP-IDF vlan_support approach (examples/network/vlan_support, ESP32-P4 supported). AES67 side has no gateway; default route and DNS are on inet. - PTP, RTP, SAP and IGMP bind to the AES67 netif. HTTP server filters on `web_on`. - DHCP sends net.hostname (option 12), so the router's lease list / local DNS shows it; after a rename it applies at the next lease renewal. - mDNS (espressif/mdns): `.local` plus the web UI as `_http._tcp` port 80. A hostname change applies live (the new name answers after ~1 s of RFC 6762 probing).