Files
aes67-ESP32-P4/sdkconfig.defaults
bsncubed c240ac9a3c Step 7.5b2: Spotify Connect zeroconf and login work (PCM counted only)
- Zeroconf on our httpd (GET/POST /spotify_info, form body URL-decoded)
  and _spotify-connect._tcp via our mDNS (VERSION, CPath, Stack TXT).
- Session task: waits for the app's login blob, connects with the
  user's client ID/secret and the configured bitrate (96/160/320 ->
  OGG_VORBIS_*), SpircHandler, events logged; cspot exceptions caught.
  Starts when source.mode is spotify/auto and credentials are set.
- bell::bellGlobalLogger was NULL: every CSPOT_LOG crashed the board
  right after addUser (Load access fault in Session.cpp:67 /
  LoginBlob.cpp:58). cspot/bell logs now go to esp_log (UART + syslog);
  signed CDN URL tokens are cut from the log.
- esp_audio_codec's own Vorbis decoder clashed with bell's Tremor
  symbols: CONFIG_AUDIO_DECODER_VORBIS_SUPPORT / SIMPLE_DEC_OGG off.
- status.spotify_state from the session (waiting / connecting /
  connected / login failed / error / disabled / no client credentials).
- Verified from a Mac: device appears, "connected as <user>", access
  token fetched with the user's client credentials, track info, audio
  key, CDN URL (the step broken upstream), PCM decoded. Without
  backpressure a track decodes in ~26 s (b3 feeds the ring).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:26:36 +10:00

39 lines
1.7 KiB
Plaintext

CONFIG_IDF_TARGET="esp32p4"
# OTA layout (partitions.csv): two app slots, no factory
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
# Bootloader had only 6% free below 0x8000; moved so it can grow (e.g. secure boot) without a relayout
CONFIG_PARTITION_TABLE_OFFSET=0x10000
# Rollback lives in the bootloader, which is only ever flashed over USB: enable it from the start
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y
# Board has engineering silicon v1.3 (esptool chip_id). Rev <3 binaries don't run on rev 3 and vice versa.
CONFIG_ESP32P4_SELECTS_REV_LESS_V3=y
CONFIG_ESP32P4_REV_MIN_100=y
# 32 MB flash (esptool flash_id: GigaDevice c8/4019). App slots stay below 16 MB;
# cache mapping above 16 MB is experimental in IDF.
CONFIG_ESPTOOLPY_FLASHSIZE_32MB=y
# LLDP and PTP send raw frames from their own tasks next to lwIP: serialise EMAC transmits
CONFIG_ETH_TRANSMIT_MUTEX=y
# lwIP default is 10 sockets; PTP (2), AES67 TX, SAP, syslog and httpd's listen/control sockets
# use 7, leaving ~3 for web clients (httpd allows 7): a browser's keep-alive connections then
# starve new requests. 16 = 7 others + 7 web clients + OTA self-test client + 1 spare.
CONFIG_LWIP_MAX_SOCKETS=16
# 32 MB PSRAM in the P4 package (hex mode, 200 MHz; 250 MHz needs rev >= 3). Needed for step 7:
# HLS segment buffers, cspot, decoders. malloc() puts blocks >16 KB in PSRAM; DMA buffers stay internal.
CONFIG_SPIRAM=y
# cspot (Spotify Connect, step 7.5) needs C++ exceptions.
CONFIG_COMPILER_CXX_EXCEPTIONS=y
# esp_audio_codec's Vorbis decoder exports the same symbols (vorbis_info_init, ...) as cspot's
# Tremor (bell): keep it out of the link. HLS only needs AAC.
# CONFIG_AUDIO_DECODER_VORBIS_SUPPORT is not set
# CONFIG_AUDIO_SIMPLE_DEC_OGG_SUPPORT is not set