Hi everyone;
I am trying to build some sendspin receivers, but I am having difficulties.
It seems that when I begin to play audio through the device, it reboots.
Unfortunately I do not see a reason in the logs, is there some extended debugging ?
here is one of the devices (this one is pcm5102)
INFO Starting log output from 172.16.0.168 using esphome API
INFO Successfully resolved sendspin-rx3 @ 172.16.0.168 in 0.000s
INFO Successfully connected to sendspin-rx3 @ 172.16.0.168 in 5.134s
INFO Successful handshake with sendspin-rx3 @ 172.16.0.168 in 0.057s
[09:14:59.080][I][app:194]: ESPHome version 2025.12.6 compiled on Jan 17 2026, 09:14:30
[09:14:59.081][C][logger:261]: Logger:
[09:14:59.081][C][logger:261]: Max Level: DEBUG
[09:14:59.081][C][logger:261]: Initial Level: DEBUG
[09:14:59.088][C][logger:267]: Log Baud Rate: 115200
[09:14:59.088][C][logger:267]: Hardware UART: USB_SERIAL_JTAG
[09:14:59.089][C][logger:274]: Task Log Buffer Size: 768
[09:14:59.116][C][psram:016]: PSRAM:
[09:14:59.116][C][psram:019]: Available: YES
[09:14:59.117][C][psram:021]: Size: 2048 KB
[09:14:59.145][C][sendspin.text_sensor:016]: Sendspin 'Sendspin Track Title'
[09:14:59.153][C][sendspin.text_sensor:016]: Sendspin 'Sendspin Track Artist'
[09:14:59.161][C][sendspin.text_sensor:016]: Sendspin 'Sendspin Album'
[09:14:59.185][C][i2s_audio.speaker:074]: Speaker:
[09:14:59.185][C][i2s_audio.speaker:074]: Pin: 1
[09:14:59.185][C][i2s_audio.speaker:074]: Buffer duration: 100
[09:14:59.185][C][i2s_audio.speaker:080]: Timeout: 500 ms
[09:14:59.185][C][i2s_audio.speaker:088]: Communication format: std
[09:14:59.204][C][captive_portal:118]: Captive Portal:
[09:14:59.223][C][wifi:1132]: WiFi:
[09:14:59.223][C][wifi:1132]: Connected: YES
[09:14:59.224][C][wifi:897]: Local MAC: 9C:13:9E:F4:02:54
[09:14:59.230][C][wifi:904]: IP Address: 172.16.0.168
[09:14:59.232][C][wifi:908]: SSID: [redacted]
[09:14:59.232][C][wifi:908]: BSSID: [redacted]
[09:14:59.232][C][wifi:908]: Hostname: 'sendspin-rx3'
[09:14:59.232][C][wifi:908]: Signal strength: -60 dB ▂▄▆█
[09:14:59.232][C][wifi:908]: Channel: 1
[09:14:59.232][C][wifi:908]: Subnet: 255.255.255.0
[09:14:59.232][C][wifi:908]: Gateway: 172.16.0.1
[09:14:59.232][C][wifi:908]: DNS1: 172.16.0.1
[09:14:59.232][C][wifi:908]: DNS2: 0.0.0.0
[09:14:59.240][C][esphome.ota:092]: Over-The-Air updates:
[09:14:59.240][C][esphome.ota:092]: Address: sendspin-rx3.local:3232
[09:14:59.240][C][esphome.ota:092]: Version: 2
[09:14:59.242][C][esphome.ota:099]: Password configured
[09:14:59.256][C][safe_mode:018]: Safe Mode:
[09:14:59.256][C][safe_mode:018]: Successful after: 60s
[09:14:59.256][C][safe_mode:018]: Invoke after: 10 attempts
[09:14:59.256][C][safe_mode:018]: Duration: 300s
[09:14:59.263][C][web_server.ota:241]: Web Server OTA
[09:14:59.277][C][api:211]: Server:
[09:14:59.277][C][api:211]: Address: sendspin-rx3.local:6053
[09:14:59.277][C][api:211]: Listen backlog: 4
[09:14:59.277][C][api:211]: Max connections: 8
[09:14:59.283][C][api:218]: Noise encryption: YES
[09:14:59.304][C][mdns:194]: mDNS:
[09:14:59.304][C][mdns:194]: Hostname: sendspin-rx3
[09:15:16.837][I][sendspin.websocket:132][httpd]: client opened a connection
[09:15:16.842][I][sendspin.hub:227][httpd]: Handshake done, a new connection was opened
[09:15:17.100][D][sendspin.hub:654]: Group update - state: stopped, id: 029e0054-6cf9-4bff-88ab-fda4d2ae2ba1, name:
[09:15:17.109][D][sendspin.hub:563][httpd]: Connected to server Music Assistant with id 197f3086a63a47a5a0a25606609acad8
[09:15:27.304][D][text_sensor:097]: 'Sendspin Track Title': Sending state 'Ministry Of Sound_Kandi Lounge_2010_05_01_qrip'
[09:15:27.308][D][text_sensor:097]: 'Sendspin Track Artist': Sending state 'Kandi Lounge'
[09:15:27.311][D][text_sensor:097]: 'Sendspin Album': Sending state 'Ministry Of Sound'
[09:15:27.335][D][sendspin.hub:654]: Group update - state: playing, id: 029e0054-6cf9-4bff-88ab-fda4d2ae2ba1, name:
[09:15:27.344][D][sendspin.hub:417][httpd]: Stream Started
[09:15:27.344][I][sendspin.hub:420][httpd]: Requesting high performance networking for playback
[09:15:27.346][D][media_player:096][httpd]: 'Sendspin Player' - Setting
[09:15:27.351][D][media_player:103][httpd]: Media URL: sendspin://test
[09:15:27.361][D][media_player:109][httpd]: Announcement: no
[09:15:27.369][D][sendspin_media_source:257]: Started generate task for pipeline 0
[09:15:27.384][D][sendspin_media_source:266]: Pipeline 0 starting
[09:15:27.384][D][sendspin_media_source:271]: Pipeline 0 running
[09:15:27.384][I][sendspin_media_source:725][Sendspin_0]: Processed new codec header
[09:15:27.388][D][speaker_source_media_player:303]: State changed to PLAYING
[09:15:28.149][D][i2s_audio.speaker:102]: Starting
[09:15:28.156][D][i2s_audio.speaker:106]: Started
[09:15:28.157][D][ring_buffer:034][speaker_task]: Created ring buffer with size 19200
INFO Processing unexpected disconnect from ESPHome API for sendspin-rx3 @ 172.16.0.168
WARNING Disconnected from API
INFO Successfully resolved sendspin-rx3 @ 172.16.0.168 in 0.000s
INFO Successfully connected to sendspin-rx3 @ 172.16.0.168 in 0.008s
INFO Successful handshake with sendspin-rx3 @ 172.16.0.168 in 0.055s
I have tried a number of power supplies, so it doesnt seem to be power related.
I have logger set to debug level.
here is the yaml for this device:
#########################
# External components (Sendspin + audio pipeline pieces)
#########################
external_components:
# Audio pipeline helpers used by speaker_source / media_source stacks
- source: github://pr#12253
components: [mixer]
refresh: 0s
- source: github://pr#12254
components: [resampler]
refresh: 0s
- source: github://pr#12256
components: [audio]
refresh: 0s
- source: github://pr#12258
components: [media_player]
refresh: 0s
# Sendspin itself (+ mdns for discovery)
- source: github://pr#12284
components: [mdns, sendspin]
refresh: 0s
# Media source + speaker_source media_player
- source: github://pr#12429
components: [file, http_request, media_source, speaker_source]
refresh: 0s
#########################
# I²S bus (PCM5102 wiring)
#########################
i2s_audio:
id: i2s_out
i2s_bclk_pin: GPIO2 # BCK
i2s_lrclk_pin: GPIO45 # LCK/WS
#########################
# Speaker (stereo) -> PCM5102
#########################
speaker:
- platform: i2s_audio
id: pcm5102_speaker
i2s_audio_id: i2s_out
dac_type: external
i2s_dout_pin: GPIO1 # DIN on PCM5102
channel: stereo
sample_rate: 48000
bits_per_sample: 32bit
buffer_duration: 100ms
#########################
# Sendspin hub + audio source
#########################
sendspin:
id: sendspin_hub
task_stack_in_psram: true
# Optional tuning (often shown in examples)
# kalman_process_error: 0.01
media_source:
- platform: sendspin
id: sendspin_source
#########################
# Media players
# 1) sendspin = group/transport control entity
# 2) speaker_source = the *actual* player that outputs audio to your I²S speaker
#########################
media_player:
# Optional: control a Sendspin group (play/pause/next/prev, etc.)
#- platform: sendspin
# id: sendspin_group
# name: Sendspin Group
# Required: actual audio playback endpoint
- platform: speaker_source
id: sendspin_player
name: Sendspin Player
media_speaker: pcm5102_speaker
sources:
- sendspin_source
# Optional guardrails:
# volume_min: 0.0
# volume_max: 1.0
#########################
# Metadata sensors (title/artist/album) from Sendspin
#########################
text_sensor:
- platform: sendspin
id: sendspin_title
name: "Sendspin Track Title"
type: title
- platform: sendspin
id: sendspin_artist
name: "Sendspin Track Artist"
type: artist
- platform: sendspin
id: sendspin_album
name: "Sendspin Album"
type: album
Can someone else try and see if they experience the same issue?
Edit:
esphome:
name: sendspin-rx3
friendly_name: Sendspin RX3
esp32:
board: esp32-s3-devkitc-1
framework:
type: esp-idf
psram:
mode: quad
speed: 80MHz
# Enable logging
logger:
level: DEBUG
Edit2:
I have tried on a second esp32-s3 unit, this time with a max98357a i2s amplifier module
and the same result.
[09:20:21.868][I][sendspin.websocket:132][httpd]: client opened a connection
[09:20:21.872][I][sendspin.hub:227][httpd]: Handshake done, a new connection was opened
[09:20:22.141][D][sendspin.hub:654]: Group update - state: stopped, id: fee5d06c-a298-4685-8cba-1ed69a3f649c, name:
[09:20:22.148][D][sendspin.hub:563][httpd]: Connected to server Music Assistant with id 197f3086a63a47a5a0a25606609acad8
[09:20:39.200][D][text_sensor:097]: 'Sendspin Track Title': Sending state 'Ministry Of Sound_Kandi Lounge_2010_05_01_qrip'
[09:20:39.202][D][text_sensor:097]: 'Sendspin Track Artist': Sending state 'Kandi Lounge'
[09:20:39.206][D][text_sensor:097]: 'Sendspin Album': Sending state 'Ministry Of Sound'
[09:20:39.241][D][sendspin.hub:654]: Group update - state: playing, id: fee5d06c-a298-4685-8cba-1ed69a3f649c, name:
[09:20:39.245][D][sendspin.media_player:050]: State changed to PLAYING
[09:20:39.252][D][sendspin.hub:417][httpd]: Stream Started
[09:20:39.252][I][sendspin.hub:420][httpd]: Requesting high performance networking for playback
[09:20:39.255][D][media_player:096][httpd]: 'Sendspin Player' - Setting
[09:20:39.259][D][media_player:103][httpd]: Media URL: sendspin://test
[09:20:39.264][D][media_player:109][httpd]: Announcement: no
[09:20:39.279][D][sendspin_media_source:257]: Started generate task for pipeline 0
[09:20:39.289][D][sendspin_media_source:266]: Pipeline 0 starting
[09:20:39.291][D][sendspin_media_source:271]: Pipeline 0 running
[09:20:39.297][I][sendspin_media_source:725][Sendspin_0]: Processed new codec header
[09:20:39.299][D][speaker_source_media_player:303]: State changed to PLAYING
[09:20:40.156][D][i2s_audio.speaker:102]: Starting
[09:20:40.168][D][i2s_audio.speaker:106]: Started
[09:20:40.170][D][ring_buffer:034][speaker_task]: Created ring buffer with size 19200
followed by the esp rebooting.
Edit again: I have tried an entirely different type of esp32-s3 dev board purchased over a year ago and the same thing. so I dont think its a bad batch