Context for any Claude Code session working in this repo.
An ESP-IDF firmware project putting a Dante-interoperable audio-over-IP
endpoint on the ESP32-P4. Phase 1 is AES67 interop; native Dante protocol
support is a phase 2 stretch goal. Full background/rationale is in
README.md — read that first if you haven't.
This repo is Apache-2.0. It forks components/aes67 from
DatanoiseTV/aes67-esp32p4 (also Apache-2.0). That's fine to build on
directly.
reference/inferno (teodly/inferno) is GPL-3.0-or-later / AGPL-3.0-or-later
and is present locally for reading only — it is not part of this repo and
must never be copied into it.
reference/inferno
into any file in this repo.inferno_aoip to understand what Dante devices do on
the wire (message shapes, mDNS service records, control flow) — but the
resulting implementation here must be written independently, from that
understanding, not from their source.docs/dante-protocol-notes.md (what the protocol does), not as
annotated/translated code (how their code does it).inferno_aoip file, stop and flag it instead of proceeding — don't make
that judgment call silently.components/aes67/ AES67 engine, forked from aes67-esp32p4 (PTP, RTP, I2S, SAP/SDP, mDNS)
main/ App entry point, board/pin config
docs/ Design notes, incl. dante-protocol-notes.md
reference/ Local clones of both source repos — read-only, gitignored
aes67-esp32p4/ Fork basis
inferno/ Dante protocol reference — see licensing rule above
Requires ESP-IDF v5.5+.
idf.py set-target esp32p4
idf.py build
idf.py flash monitor
Target board is the Waveshare ESP32-P4-ETH — Ethernet via IP101 GRI PHY
(RMII), onboard ES8311 codec (APLL-clocked I2S) + amplifier + mic + speaker
connector, 32MB PSRAM, 32MB flash. Pins are confirmed and live in
main/board_config.h, with the full table in README.md. If the board ever
changes, update main/board_config.h and the README table together.
components/aes67/third_party/ptpd, aes67_ptp.c, aes67_hw_timer.c)
targets PTPv2 against the P4's hardware timestamp path. Scope of adding v1
isn't assessed yet.aes67_ptp task structure rather
than as a separate cooperating component.Match the existing aes67-esp67p4 component style:
-O2, hot-path conversion/ISR functions placed in IRAM