Skip to content

Atom Echo S3R - Help required #542

@MrGcGamer

Description

@MrGcGamer

I want to get my Atom Echo S3R working under Squeezelite.
I have sucessfully built Squeezelite for the ESP32-S3 and got it installed, but now I am struggeling to get the software set up properly.

Preliminary Information

  1. Firmware Version: build-number-1717
  2. Plugin Version: Mention the version of the plugin installed on your LMS (Logitech Media Server).

Hardware Details

Please describe your hardware setup:

  • ESP32 Module: ESP32-S3 (Atom Echo S3R)
  • Board Type: ESP32 audio kit
  • DAC Chip: ES8311
  • Additional Hardware: NS4150B

NVS Settings

Follow these steps to share your NVS settings:

  1. Open the web UI of your device.
  2. Click on the "Credit" tab.
  3. Enable the "Show NVS Editor" checkbox. This allows you to view or change the NVS configuration even when not in recovery mode.
  4. Navigate to the "NVS Editor" tab.
  5. Scroll to the bottom and click "Download Config".
  6. Share the downloaded content here.
Details

  {
  "a2dp_spin": "0000",
  "actrls_config": "",
  "airplay_name": "ESP32-AirPlay-bd1c58",
  "airplay_port": "5000",
  "ap_channel": "1",
  "ap_ip_address": "192.168.4.1",
  "ap_ip_gateway": "192.168.4.1",
  "ap_ip_netmask": "255.255.255.0",
  "ap_pwd": "squeezelite",
  "ap_ssid": "squeezelite-bd1c58",
  "autoexec": "1",
  "autoexec1": "squeezelite -o I2S -b 500:2000 -d all=info -C 30 -W -n squeezelite-bd1c58",
  "bat_config": "",
  "bypass_wm": "0",
  "cspot_config": "{\"deviceName\":\"squeezelite-bd1c58\",\"bitrate\":160,\"zeroConf\":1}",
  "dac_config": "model=I2S,bck=17,ws=3,do=48,sda=45,scl=0",
  "dac_controlset": "",
  "dhcp_tmout": "8",
  "display_config": "",
  "enable_airplay": "1",
  "enable_cspot": "1",
  "equalizer": "",
  "eth_config": "",
  "ethtmout": "8",
  "gpio_exp_config": "",
  "host_name": "squeezelite-bd1c58",
  "i2c_config": "",
  "jack_mutes_amp": "n",
  "led_brightness": "",
  "led_vu_config": "",
  "lms_ctrls_raw": "n",
  "loudness": "0",
  "metadata_config": "",
  "model_config": "",
  "ota_erase_blk": "249856",
  "ota_prio": "6",
  "ota_stack": "10240",
  "pollmin": "15",
  "pollmx": "600",
  "rel_api": "https://api.github.com/repos/sle118/squeezelite-esp32/releases",
  "release_url": "CONFIG_SQUEEZELITE_ESP32_RELEASE_URL",
  "rotary_config": "",
  "set_GPIO": "",
  "sleep_config": "",
  "spdif_config": "",
  "spi_config": "",
  "stats": "n",
  "target": "",
  "telnet_block": "500",
  "telnet_buffer": "40000",
  "telnet_enable": "",
  "volume_rotary": ""
}

Logs

To share logs:

  1. Connect your player to a computer using a USB cable. Use a built-in Serial-USB adapter if your player has one, or an external USB adapter otherwise.
  2. Go to the web installer.
  3. Click "Connect to Device".
  4. Select the appropriate serial port.
  5. Click "Logs And Console".
  6. Download the logs and share them here. Please remove any sensitive information like Wi-Fi passwords or MAC addresses.
  • If the problem occurs soon after booting: Share the full log until the issue occurs.
  • If the problem occurs later during playback: Trim the logs to include information just before and after the problem occurs.
Details

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x38 (SPI_FAST_FLASH_BOOT)
Saved PC:0x421500aa
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x16c8
load:0x403c9700,len:0xbd4
load:0x403cc700,len:0x2fb0
entry 0x403c9954
I (24) boot: ESP-IDF v4.4.7 2nd stage bootloader
I (24) boot: compile time 21:07:26
I (25) boot: Multicore bootloader
I (26) boot: chip revision: v0.2
I (30) boot.esp32s3: Boot SPI Speed : 80MHz
I (35) boot.esp32s3: SPI Mode       : DIO
I (40) boot.esp32s3: SPI Flash Size : 8MB
I (45) boot: Enabling RNG early entropy source...
I (50) boot: Partition Table:
I (54) boot: ## Label            Usage          Type ST Offset   Length
I (61) boot:  0 nvs              WiFi data        01 02 00009000 00004000
I (68) boot:  1 otadata          OTA data         01 00 0000d000 00002000
I (76) boot:  2 phy_init         RF data          01 01 0000f000 00001000
I (83) boot:  3 recovery         factory app      00 00 00010000 00140000
I (91) boot:  4 ota_0            OTA app          00 10 00150000 002a0000
I (98) boot:  5 settings         WiFi data        01 02 003f0000 00010000
I (106) boot: End of partition table
I (110) esp_image: segment 0: paddr=00150020 vaddr=3c160020 size=af4f0h (718064) map
I (247) esp_image: segment 1: paddr=001ff518 vaddr=3fc971b0 size=00b00h (  2816) load
I (248) esp_image: segment 2: paddr=00200020 vaddr=42000020 size=15beech (1425132) map
I (509) esp_image: segment 3: paddr=0035bf14 vaddr=3fc97cb0 size=044dch ( 17628) load
I (513) esp_image: segment 4: paddr=003603f8 vaddr=40374000 size=131b0h ( 78256) load
I (532) esp_image: segment 5: paddr=003735b0 vaddr=600fe000 size=0002ch (    44) load
I (540) boot: Loaded app from partition at offset 0x150000
I (540) boot: Disabling RNG early entropy source...
I (552) cpu_start: Multicore app
I (553) opi psram: vendor id : 0x0d (AP)
I (553) opi psram: dev id    : 0x02 (generation 3)
I (555) opi psram: density   : 0x03 (64 Mbit)
I (560) opi psram: good-die  : 0x01 (Pass)
I (565) opi psram: Latency   : 0x01 (Fixed)
I (569) opi psram: VCC       : 0x01 (3V)
I (574) opi psram: SRF       : 0x01 (Fast Refresh)
I (580) opi psram: BurstType : 0x01 (Hybrid Wrap)
I (585) opi psram: BurstLen  : 0x01 (32 Byte)
I (590) opi psram: Readlatency  : 0x02 (10 cycles@Fixed)
I (596) opi psram: DriveStrength: 0x00 (1/1)
I (601) MSPI Timing: PSRAM timing tuning index: 4
I (606) spiram: Found 64MBit SPI RAM device
I (611) spiram: SPI RAM mode: sram 80m
I (616) spiram: PSRAM initialized, cache is in normal (1-core) mode.
I (623) cpu_start: Pro cpu up.
I (626) cpu_start: Starting app cpu, entry point is 0x40375854
I (0) cpu_start: App cpu up.
I (1052) spiram: SPI SRAM memory test OK
I (1061) cpu_start: Pro cpu start user code
I (1061) cpu_start: cpu freq: 240000000
I (1061) cpu_start: Application information:
I (1064) cpu_start: Project name:     Squeezelite-ESP32
I (1070) cpu_start: App version:      local.500.cmake-master
I (1076) cpu_start: Compile time:     Jan 19 2026 21:21:51
I (1083) cpu_start: ELF file SHA256:  0000000000000000...
I (1089) cpu_start: ESP-IDF:          v4.4.7
I (1094) cpu_start: Min chip rev:     v0.0
I (1098) cpu_start: Max chip rev:     v0.99 
I (1103) cpu_start: Chip rev:         v0.2
I (1108) heap_init: Initializing. RAM available for dynamic allocation:
I (1116) heap_init: At 3FCB18B8 len 00037E58 (223 KiB): D/IRAM
I (1122) heap_init: At 3FCE9710 len 00005724 (21 KiB): STACK/DIRAM
I (1129) heap_init: At 3FCF0000 len 00008000 (32 KiB): DRAM
I (1135) heap_init: At 600FE02C len 00001FD4 (7 KiB): RTCRAM
I (1142) spiram: Adding pool of 8192K of external SPI memory to heap allocator
I (1150) spi_flash: detected chip: gd
I (1154) spi_flash: flash io: dio
I (1160) sleep: Configure to isolate all GPIO pins in sleep state
I (1165) sleep: Enable automatic switching of GPIO sleep configuration
I (1172) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (1182) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations
I (1192) esp_app_main: Reset reason is: 0
I (1202) esp_app_main: Reboot counter=1

I (1202) esp_app_main: Starting app_main
I (1212) nvs_utilities: Initializing flash nvs
I (1232) nvs_utilities: Initializing nvs partition settings
I (1252) esp_app_main: Setting up telnet.
I (1252) telnet: Telnet support disabled
I (1252) esp_app_main: Setting up config subsystem.
W (1302) nvs_utilities: Configuration memory usage. Heap internal:260647 (min:260507) (used:0) external:8370327 (min:8363083) (used:13716)
I (1302) esp_app_main: Registering default values
I (1312) system_api: Base MAC address is not set
I (1312) system_api: read default base MAC address from EFUSE
W (1322) config: Waiting for config commit ...
I (2302) config: configuration has some uncommitted entries
I (2302) config: Committing configuration to nvs. Locking config object.
I (2302) config: Done Committing configuration to nvs.
I (2302) config: Config committed!
I (2312) esp_app_main: Configuring services
I (2312) services: Configuring I2C sda:-1 scl:-1 port:1 speed:400000
W (2322) services: no I2C configured
I (2322) services: Configuring SPI mosi:-1 miso:-1 clk:-1 host:1 dc:-1
W (2332) services: no SPI configured
W (2342) led: LED GPIO -1 ignored
W (2342) led: LED GPIO -1 ignored
I (2342) led: Configuring LEDs green:-1 (on:0 rmt:-1 -1% ), red:-1 (on:0 rmt:-1 -1% )
I (2352) battery: No battery
I (2362) monitor: Initializing monitoring
I (2362) monitor: Heap internal:260507 (min:260475) external:8353667 (min:8353651) dma:252739 (min:252707)
I (2372) esp_app_main: Initializing display
I (2382) display: Trying to configure display with N/A
W (2382) display: No display driver
I (2392) esp_app_main: Initializing led_vu
I (2392) led_vu: led_vu configuration invalid
I (2392) esp_app_main: Checking for update url
W (2402) config: Value not found for key fwurl
W (2412) config: Value not found for key
I (2412) esp_app_main: Starting Network Manager
W (2422) config: Value not found for key apdelay
I (2422) uart: queue free spaces: 3
I (2422) network_handlers: Network manager configuration: polling max 10176, polling min 15000, ap delay 20000, dhcp timeout 8000, eth timeout 8000
I (2432) http_server: Initializing HTTP Server
I (2442) network_ethernet: Attempting to initialize Ethernet
I (2442) network_ethernet: No Ethernet configuration, or configuration invalid
I (2452) pp: pp rom version: e7ae62f
I (2452) net80211: net80211 rom version: e7ae62f
I (2472) wifi:wifi driver task: 3fcf71f0, prio:23, stack:6656, core=0
I (2472) wifi:wifi firmware version: 1fd20f4
I (2472) wifi:wifi certification version: v7.0
I (2482) wifi:config NVS flash: enabled
I (2482) wifi:config nano formating: disabled
I (2482) wifi:Init data frame dynamic rx buffer num: 40
I (2492) wifi:Init static rx mgmt buffer num: 5
I (2492) wifi:Init management short buffer num: 32
I (2492) wifi:Init static tx buffer num: 12
I (2512) wifi:Init tx cache buffer num: 32
I (2512) wifi:Init static tx FG buffer num: 2
I (2512) wifi:Init static rx buffer size: 1600
I (2522) wifi:Init static rx buffer num: 12
I (2522) wifi:Init dynamic rx buffer num: 40
I (2522) wifi_init: tcpip mbox: 32
I (2532) wifi_init: udp mbox: 32
I (2532) wifi_init: tcp mbox: 32
I (2532) wifi_init: tcp tx win: 8192
I (2542) wifi_init: tcp rx win: 32768
I (2542) wifi_init: tcp mss: 1440
I (2542) wifi_init: WiFi/LWIP prefer SPIRAM
I (2552) network_wifi: Starting wifi
I (2552) phy_init: phy_version 640,cd64a1a,Jan 24 2024,17:28:12
I (2602) wifi:mode : sta
I (2602) wifi:enable tsf

I (2602) network_handlers: Existing wifi config found. Attempting to connect.
I (2602) network: Starting DHCP client
I (2622) network_wifi: Wifi Connecting to [REDACTED]...
Type 'help' to get the list of commands.
Use UP/DOWN arrows to navigate through command history.
Press TAB when typing command name to auto-complete.

To automatically execute lines at startup:
Set NVS variable autoexec (U8) = 1 to enable, 0 to disable automatic execution.
Set NVS variable autoexec[1~9] (string)to a command that should be executed automatically


Your terminal application does not support escape sequences.
Line editing and history features are disabled.
On Windows, try using Putty instead.


W (2672) console: Processing autoexec commands while network manager active. Wifi related commands will be ignored.
I (2682) console: autoexec is set to perform auto-process
I (2692) console: Running command autoexec1 = squeezelite -o I2S -b 500:2000 -d all=info -C 30 -W -n squeezelite-bd1c58
W (2702) config: Value not found for key autoexec2
squeezelite-esp32> I (2702) squeezelite_cmd: Calling squeezelite
[00:03:31.257] sb_controls_init:249 initializing audio (buttons/rotary/ir) controls (raw:0)
[00:03:31.259] sb_displayer_init:327 no display or led visualizer for LMS
[00:03:31.271] stream_init:539 init stream
[00:03:31.272] output_init_embedded:78 init device: I2S
[00:03:31.274] output_init_common:433 supported rates: 192000 176400 96000 88200 48000 44100 32000 24000 22050 16000 12000 11025 8000
[00:03:31.286] output_init_embedded:100 init I2S/SPDIF
I (2752) DAC core: DAC uses I2C port:0, sda:45, scl:0
I (2762) DAC external: DAC on I2C @0
W (2762) DAC external: no i2c controlset found
[00:03:31.312] output_init_i2s:382 configuring MCLK on GPIO -1
I (2772) I2S: DMA Malloc info, datalen=blocksize=2048, dma_buf_count=12
[00:03:31.316] output_init_i2s:395 I2S DAC using I2S bck:17, ws:3, do:48, mute:-1:0 (res:0)
[00:03:31.328] output_init_i2s:415 Initializing I2S mode normal with rate: 44100, bits per sample: 16, buffer frames: 512, number of buffers: 12
[00:03:31.340] equalizer_set_samplerate:122 equalizer sample rate 44100
[00:03:31.352] output_thread_i2s:537 Output state is -1
[00:03:31.352] output_visu_init:75 Initialize VISUEXPORT 512 16 bits samples
[00:03:31.355] output_thread_i2s:541 switching off amp GPIO -1
[00:03:31.355] output_init_embedded:108 init completed.
[00:03:31.367] decode_init:153 init decode
[00:03:31.378] register_alac:547 using alac to decode alc
[00:03:31.379] register_helixaac:686 using helix-aac to decode aac
[00:03:31.380] register_vorbis:526 using vorbis to decode ogg
[00:03:31.391] register_opus:458 using opus to decode ops
[00:03:31.392] register_flac:338 using flac to decode ogf,flc
[00:03:31.404] register_pcm:468 using pcm to decode wav,aif,pcm
[00:03:31.406] register_mad:417 using mad to decode mp3
[00:03:31.407] register_external:469 Initializing AirPlay sink
[00:03:31.419] register_external:480 Initializing CSpot sink
[00:03:31.423] discover_server:844 sending discovery 25
[00:03:31.425] discover_server:848 error sending discovery
I (5032) wifi:new:<3,0>, old:<1,0>, ap:<255,255>, sta:<3,0>, prof:1
I (5032) wifi:state: init -> auth (b0)
I (5742) wifi:state: auth -> assoc (0)
I (5752) wifi:Association refused temporarily, comeback time 1000 (TUs)
I (6772) wifi:state: assoc -> assoc (0)
I (6902) wifi:state: assoc -> run (10)
I (6912) wifi:connected with [REDACTED]
I (6912) wifi:security: WPA3-SAE, phy: bgn, rssi: -81
I (6912) wifi:pm start, type: 1

I (6922) wifi:set rx beacon pti, rx_bcn_pti: 0, bcn_timeout: 0, mt_pti: 25000, mt_time: 10000
I (6932) network: Got an IP address from interface Wifi. IP=192.168.1.200, Gateway=192.168.1.1, NetMask=255.255.255.0, Address was changed
I (6952) esp_netif_handlers: sta ip: 192.168.1.200, mask: 255.255.255.0, gw: 192.168.1.1
I (6952) esp_app_main: Network connected and mDNS initialized with squeezelite-bd1c58
[00:03:35.505] raop_sink_start:178 starting Airplay for ip 192.168.1.200 with servicename ESP32-AirPlay-bd1c58
[00:03:35.508] raop_create:201 starting mDNS with B43A45BD1C58@ESP32-AirPlay-bd1c58
I (6992) cspot: starting Spotify on host squeezelite-bd1c58
I (7002) wifi:AP's beacon interval = 102400 us, DTIM period = 2
[00:03:35.548] I Shim.cpp:354: CSpot instance service name squeezelite-bd1c58 (id 142137fd329622137a1490160000002651035807)
[00:03:35.561] I Shim.cpp:341: ZeroConf mode (port 80)
I (7802) httpd_handlers: serving /status.json to peer 192.168.1.165 port 25068
[00:03:36.433] discover_server:844 sending discovery 24
I (10072) httpd_handlers: serving /status.json to peer 192.168.1.165 port 26092
[00:03:41.433] discover_server:844 sending discovery 23
[00:03:46.433] discover_server:844 sending discovery 22
[00:03:51.433] discover_server:844 sending discovery 21

Issue Description

I am struggeling to get my device set up.. Networking (Airplay / Spotify-Connect) works fine, but the audio output isn't setup properly yet.
Sadly I don't really know what I am missing here.
It would be great, if you could help me out here <3

Relevant sources, from which I picked pieces together:
https://docs.m5stack.com/en/core/Atom_EchoS3R
https://github.com/m5stack/esphome-yaml/blob/main/common/atom-echos3r-satellite-base.yaml
https://github.com/78/xiaozhi-esp32/blob/main/main/boards/atom-echos3r/config.h

Any help would be greatly appreciated

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions