2026-09-26 08:51:33 +10:00
2026-09-25 23:37:05 +10:00

aes67-ESP32-P4

AES67 sender for the Waveshare ESP32-P4-ETH (PoE): Spotify Connect and HLS/m3u8 internet radio (with failover between them) go out as an AES67 multicast stream, locked to PTP. Everything is set up from a built-in web page, with SAP announcements and SDP export for receivers (tested with Riedel PTP).

Using it: see the user guide.

Quick start: power the board over PoE and open http://p4-aes67.local/. Pick a source and save. Then find "P4 AES67" via SAP on the receiver, or import the SDP from the page.

Building and flashing

  • ESP-IDF 5.5 or later, target esp32p4: idf.py set-target esp32p4 && idf.py build
  • cspot submodule: git submodule update --init external/cspot && git -C external/cspot submodule update --init cspot/bell
  • New board over USB: tools/flash_board.py
  • Update over the network: web page → Firmware, or curl -f --data-binary @build/aes67_p4.bin -H 'Content-Type: application/octet-stream' http://p4-aes67.local/api/ota

Toolchain details and caveats (chip revision, Python packages for cspot) are in CLAUDE.md.

Documentation

  • docs/user-guide.md: setup, web page, sources, Spotify, AES67, PTP, network, updates, player API, troubleshooting
  • docs/aes67-core-base.md: reusable AES67 core design (PTP, RTP, SDP/SAP, syslog, web UI and API contract)
  • docs/hardware-and-design-notes.md: board details and project-specific design
  • web/index.html: the web page (served by the device)
  • CLAUDE.md: working rules, build order and status
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%