bsncubed 1d613b16c1 Firmware version from version.txt (0.9.0) instead of git describe
The version is now set by hand in version.txt, so it's readable and only
changes on purpose. git describe gave commit hashes, and always "-dirty"
because the build applies patches to the cspot submodule. Editing the file
is enough; the next build picks it up.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 07:41:53 +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%