bsncubed bae6a8a2f9 Step 4.2: PTP-paced AES67 RTP sender with 1 kHz test tone
- aes67_tx: TX task woken by an esp_timer every packet time; sends every
  packet whose last sample is in the past (PTP time), RTP ts =
  (sample index from PTP + clk_offset) mod 2^32, packets aligned to
  multiples of the packet size. Sends only while PTP is locked; resyncs
  on lock, clock step or > 20 ms lag. L24/L16 big-endian, TTL/DSCP/
  multicast IF from config; a config save restarts TX.
- Built-in 1 kHz tone at -18 dBFS, phase from the PTP sample index;
  aes67_tx_set_source() pull callback for later sources (underruns
  counted, padded with silence). status: tx_packets, underruns.
- Verified with a receiver script on the PC: 1 ms L24 stereo 1000/s,
  0 gaps, ts step 48, tone -18.00 dBFS within 1.2 LSB of the ideal
  PTP-phased sine; also L16 mono 0.333 ms, 0.125 ms (8000/s) and 4 ms.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 06:43:12 +10:00
2026-09-23 21:52:46 +10:00
2026-09-23 21:51:44 +10:00

aes67-ESP32-P4

AES67 sender for the Waveshare ESP32-P4-ETH (PoE): Spotify Connect and HLS/m3u8 streams out as an AES67 multicast stream, PTP-locked, with a simple web UI for settings and SDP export.

  • docs/aes67-core-base.md — reusable AES67 core design (PTP, RTP, SDP/SAP, VLAN, syslog, web UI contract)
  • docs/hardware-and-design-notes.md — board details and project-specific design
  • web/index.html — web UI (served by the device)
  • CLAUDE.md — working rules and build order

Status: design complete, firmware not started. See the build order in CLAUDE.md.

S
Description
No description provided
Readme GPL-3.0 1.1 MiB
Languages
C 74.9%
HTML 11.9%
C++ 7.7%
Python 3.3%
CMake 2.2%