Loud static burst on reboot of a Muse Luxe running Squeezelite

I currently have the latest Squeezelite-esp32 loaded on a couple MUSE Luxe speakers. Whenever I reboot these speakers or play a track after nothing has been playing recently, I get a loud burst of static noise.
The static is so jarring the wife is refusing to use these speakers if I can’t find a solution… Anybody want to buy a couple Muse Luxe speakers?

Here is my current NVS Config:

{
  "a2dp_ctmt": "1000",
  "a2dp_ctrld": "500",
  "a2dp_dev_name": "Studio Speaker",
  "a2dp_sink_name": "SMSL BT4.2",
  "a2dp_spin": "0000",
  "actrls_config": "buttons",
  "airplay_name": "Studio Speaker",
  "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": "Studio Speaker",
  "autoexec": "1",
  "autoexec1": "squeezelite -o I2S -b 500:2000 -d all=info -C 30 -W -n \"Studio Speaker\"",
  "bat_config": "channel=5,scale=7.48,atten=3,cells=1",
  "bt_name": "Studio Speaker",
  "bt_sink_pin": "1234",
  "bt_sink_volume": "127",
  "buttons": "[{\"gpio\":32, \"pull\":true, \"debounce\":10, \"normal\":{\"pressed\":\"ACTRLS_VOLDOWN\"}}, {\"gpio\":19, \"pull\":true, \"debounce\":40, \"normal\":{\"pressed\":\"ACTRLS_VOLUP\"}}, {\"gpio\":12, \"pull\":true, \"debounce\":40, \"long_press\":1000, \"normal\":{\"pressed\":\"ACTRLS_TOGGLE\"},\"longpress\":{\"pressed\":\"ACTRLS_POWER\"}}]",
  "bypass_wm": "0",
  "cspot_config": "{\t\"deviceName\":\t\"Studio Speaker\",\t\"bitrate\":\t160}",
  "dac_config": "model=I2S,bck=5,ws=25,do=26,di=35,i2c=16,sda=18,scl=23,mck",
  "dac_controlset": "{\"init\":[ {\"reg\":0,\"val\":128}, {\"reg\":0,\"val\":0}, {\"reg\":25,\"val\":4}, {\"reg\":1,\"val\":80}, {\"reg\":2,\"val\":0},\t{\"reg\":8,\"val\":0}, {\"reg\":4,\"val\":192},\t{\"reg\":0,\"val\":18}, {\"reg\":1,\"val\":0}, {\"reg\":23,\"val\":24}, {\"reg\":24,\"val\":2}, {\"reg\":38,\"val\":9}, {\"reg\":39,\"val\":144}, {\"reg\":42,\"val\":144}, {\"reg\":43,\"val\":128}, {\"reg\":45,\"val\":128}, {\"reg\":27,\"val\":0}, {\"reg\":26,\"val\":0}, {\"reg\":2,\"val\":240}, {\"reg\":2,\"val\":0},\t{\"reg\":29,\"val\":28}, {\"reg\":4,\"val\":48}, {\"reg\":25,\"val\":0}, {\"reg\":46,\"val\":33}, {\"reg\":47,\"val\":33} ]}",
  "dhcp_tmout": "8",
  "display_config": "",
  "enable_airplay": "N",
  "enable_bt_sink": "Y",
  "enable_cspot": "N",
  "equalizer": "0,0,0,0,0,0,0,0,0,0",
  "eth_config": "",
  "ethtmout": "8",
  "gpio_exp_config": "",
  "host_name": "Studio Speaker",
  "i2c_config": "",
  "jack_mutes_amp": "n",
  "led_brightness": "",
  "lms_ctrls_raw": "n",
  "metadata_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": "https://github.com/sle118/squeezelite-esp32/releases",
  "rotary_config": "",
  "set_GPIO": "",
  "spdif_config": "",
  "spi_config": "mosi=15,miso=2,clk=14",
  "stats": "N",
  "target": "muse",
  "telnet_block": "500",
  "telnet_buffer": "40000",
  "telnet_enable": "Y"
}

The only other data point I have is the MnCast doesn’t seem to have the same issue during reboots with the same firmware.

Given the lack of responses on this specific issue I’m going to presume it’s a design flaw at the hardware level. I’d trade both speakers for one Mn Cast if I could.

Hi Snubber,
Are you experiencing this issue with the last version of Squeezelite loaded from a chrome browser here?
https://sle118.github.io/squeezelite-esp32-installer/

If yes please give me guidance to duplicate the issue in our office, are you controlling the Luxe using Home Assistant or the LMS web interface?

thx

Yes, running the latest firmware via the web installer, Muse.16.2.1254.master-v4.3.

The easiest way to reproduce the issue is to turn on the muse, visit the web interface and click the ‘reboot’ button at the bottom of the webpage. Both of my speakers emit a loud blast of static during every reboot.

just an idea, maybe you could try to add in th config the use of GPIO21 that is used to enable the amp. I have not tried just a guess, I could give it a try soon too :

“dac_config”: “model=I2S,bck=5,ws=25,do=26,di=35,i2c=16,sda=18,scl=23,mck,mute=21:0”,

I gave that a shot and it doesn’t seem to make a difference. I’ve randomly had some reboots not make a noise, but it continues to do it even with that dac_config change.

I connected to telnet and pull the dac_config to verify the value, then tell it to restart.
I’ve also realized the speaker will only emit a burst of static if it was currently playing audio at the time of reboot.

If you look at the logs of the reboot however, it shows this line below:

[03:45:55.858320] output_init_i2s:319 I2S DAC using I2S bck:5, ws:25, do:26, mute:-1:0 (res:0)

I wonder if the other message during reboot “configuration has some uncommitted entries” could relate to this in some way. It seems to say this on every reboot regardless.

squeezelite-esp32> nvs_get dac_config str
nvs_get dac_config str

I (40802) messaging: String associated with key 'dac_config' is model=I2S,bck=5,ws=25,do=26,di=35,i2c=16,sda=18,scl=23,mck,mute=21:0

squeezelite-esp32>

squeezelite-esp32> restart
restart

W (42822) messaging:

Performing a simple restart to the currently active partition.
W (42822) messaging:

Performing a simple restart to the currently active partition.
I (1782) esp_app_main: Setting up config subsystem.
W (1852) nvs_utilities: Configuration memory usage.  Heap internal:224499 (min:224371) (used:200) external:4057759 (min:4045023) (used:13660)
I (1852) esp_app_main: Registering default values
I (1852) system_api: Base MAC address is not set
I (1852) system_api: read default base MAC address from EFUSE
W (1862) config: Waiting for config commit ...
I (2852) config: configuration has some uncommitted entries
I (2852) config: Committing configuration to nvs. Locking config object.
I (2852) config: Done Committing configuration to nvs.
I (2852) config: Config committed!
I (2852) esp_app_main: Configuring services
I (2852) services: Configuring I2C sda:18 scl:23 port:1 speed:400000
I (2852) services: Configuring SPI mosi:15 miso:2 clk:14 host:1 dc:-1
W (2862) services: No DC GPIO set, SPI display will not work
W (2862) led: LED GPIO -1 ignored
W (2862) led: LED GPIO -1 ignored
I (2862) led: Configuring LEDs green:-1 (active:0 -1%), red:-1 (active:0 -1%)
I (2862) battery: Battery measure channel: 5, scale 7.000000, atten 3, cells 1, avg 4.20V
I (2862) monitor: Initializing monitoring
I (2862) monitor: Adding jack (low) detection GPIO 34
I (2862) buttons: Creating button using GPIO 34, type 0, pull-up/down 0, long press 0 shifter -1
I (2862) buttons: starting button tasks
I (2862) monitor: Heap internal:224303 (min:224211) external:4040707 (min:4040687) dma:216107 (min:216027)
I (2862) esp_app_main: Initializing display
I (2862) display: Trying to configure display with N/A
W (2862) display: No display driver
I (2862) muse: Initializing for Muse 4.201709
I (2862) esp_app_main: Checking if certificates need to be updated
I (2862) esp_app_main: About to check if certificates need to be updated in flash
I (2862) esp_app_main: Running partition [ota_0] type 0 subtype 16 (offset 0x00150000)
I (2862) esp_app_main: Running version: Muse.16.2.1254.master-v4.3
I (2862) esp_app_main: Certificate version: Muse.16.2.1254.master-v4.3
I (2862) esp_app_main: Checking for update url
W (2862) config: Value not found for key fwurl
I (2862) buttons: Creating button using GPIO 32, type 0, pull-up/down 1, long press 0 shifter -1
I (2862) buttons: Creating button using GPIO 19, type 0, pull-up/down 1, long press 0 shifter -1
I (2872) buttons: Creating button using GPIO 12, type 0, pull-up/down 1, long press 1000 shifter -1
I (2872) esp_app_main: Starting Network Manager
W (2872) config: Value not found for key apdelay
I (2872) uart: queue free spaces: 3
I (2872) network_handlers: Network manager configuration: polling max 10176, polling min 15000, ap delay 20000, dhcp timeout 8000, eth timeout 8000
W (2872) network_wifi: No known access point found
I (2872) network_wifi: Adding legacy/active wifi connection to the known list
I (2872) http_server: Initializing HTTP Server
I (2882) network_ethernet: Attempting to initialize Ethernet
I (2882) network_ethernet: No Ethernet configuration, or configuration invalid
I (2892) wifi:wifi driver task: 3ffdfc1c, prio:23, stack:6656, core=0
I (2892) wifi:wifi firmware version: eb52264
I (2892) wifi:wifi certification version: v7.0
I (2892) wifi:config NVS flash: enabled
I (2892) wifi:config nano formating: disabled
I (2892) wifi:Init data frame dynamic rx buffer num: 40
I (2892) wifi:Init management frame dynamic rx buffer num: 40
I (2892) wifi:Init management short buffer num: 32
I (2902) wifi:Init static tx buffer num: 12
I (2902) wifi:Init tx cache buffer num: 32
I (2902) wifi:Init static rx buffer size: 1600
I (2902) wifi:Init static rx buffer num: 12
I (2902) wifi:Init dynamic rx buffer num: 40
I (2902) wifi_init: tcpip mbox: 32
I (2902) wifi_init: udp mbox: 32
I (2902) wifi_init: tcp mbox: 32
I (2902) wifi_init: tcp tx win: 8192
I (2902) wifi_init: tcp rx win: 32768
I (2902) wifi_init: tcp mss: 1440
I (2902) wifi_init: WiFi/LWIP prefer SPIRAM
I (2902) network_wifi: Starting wifi
I (2902) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07
I (2992) wifi:mode : sta (0c:b8:15:e8:08:a8)
I (2992) wifi:enable tsf
I (2992) network_handlers: Existing wifi config found. Attempting to connect.
I (2992) network: Starting DHCP client
I (2992) network_wifi: Wifi Connecting to Redacted-AP...

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 (3022) console: Processing autoexec commands while network manager active.  Wifi related commands will be ignored.
I (3022) console: autoexec is set to perform auto-process
I (3022) console: Running command autoexec1 = squeezelite -o I2S -b 500:2000 -d all=info -C 30 -W -n "Studio Speaker"
W (3022) config: Value not found for key autoexec2
squeezelite-esp32> I (3022) squeezelite_cmd: Calling squeezelite
[03:45:55.843784] stream_init:387 init stream
[03:45:55.845145] sb_controls_init:244 initializing audio (buttons/rotary/ir) controls (raw:0)
[03:45:55.845400] sb_displayer_init:318 no display or led visualizer for LMS
[03:45:55.845580] output_init_embedded:70 init device: I2S
[03:45:55.846673] equalizer_init:42 initializing equalizer
[03:45:55.847511] output_init_common:433 supported rates: 192000 176400 96000 88200 48000 44100 32000 24000 22050 16000 12000 11025 8000
[03:45:55.847852] output_init_embedded:92 init I2S/SPDIF
I (3032) DAC core: Configuring MCLK on GPIO0
I (3032) DAC core: DAC uses I2C port:0, sda:18, scl:23
I (3032) DAC external: DAC on I2C @16
I (3032) I2S: DMA Malloc info, datalen=blocksize=2048, dma_buf_count=12
I (3042) I2S: APLL: Req RATE: 44100, real rate: 44099.988, BITS: 16, CLKM: 1, BCK_M: 8, MCLK: 11289597.000, SCLK: 1411199.625000, diva: 1, divb: 0
[03:45:55.858320] output_init_i2s:319 I2S DAC using I2S bck:5, ws:25, do:26, mute:-1:0 (res:0)
[03:45:55.858740] output_init_i2s:339 Initializing I2S mode normal with rate: 44100, bits per sample: 16, buffer frames: 512, number of buffers: 12
[03:45:55.859214] output_init_i2s:358 setting amplifier GPIO 21 (active:1)
[03:45:55.859633] output_thread_i2s:463 Output state is -1
[03:45:55.859868] output_visu_init:75 Initialize VISUEXPORT 512 16 bits samples
[03:45:55.860320] output_thread_i2s:467 switching off amp GPIO 21
[03:45:55.860479] output_init_embedded:100 init completed.
[03:45:55.860699] decode_init:153 init decode
[03:45:55.860874] register_alac:547 using alac to decode alc
[03:45:55.861060] register_helixaac:686 using helix-aac to decode aac
[03:45:55.861236] register_vorbis:387 using vorbis to decode ogg
[03:45:55.861410] register_opus:332 using opus to decode ops
[03:45:55.861574] register_flac:332 using flac to decode ogf,flc
[03:45:55.861757] register_pcm:468 using pcm to decode wav,aif,pcm
[03:45:55.861926] register_mad:417 using mad to decode mp3
[03:45:55.865266] discover_server:828 sending discovery
[03:45:55.865813] discover_server:832 error sending discovery
I (5042) wifi:new:<6,0>, old:<1,0>, ap:<255,255>, sta:<6,0>, prof:1
I (5592) wifi:state: init -> auth (b0)
I (5602) wifi:state: auth -> assoc (0)
I (5602) wifi:state: assoc -> run (10)
I (5612) wifi:connected with Redacted-AP, aid = 11, channel 6, BW20, bssid = xx:xx:xx:xx:xx:xx
I (5612) wifi:security: WPA2-PSK, phy: bgn, rssi: -44
I (5612) wifi:pm start, type: 1

I (5632) network: Got an IP address from interface Wifi. IP=10.0.1.197, Gateway=10.0.1.1, NetMask=255.255.255.0, Address was changed
I (5632) esp_netif_handlers: sta ip: 10.0.1.197, mask: 255.255.255.0, gw: 10.0.1.1
I (5632) esp_app_main: Network connected and mDNS initialized with Studio Speaker
I (5682) wifi:AP's beacon interval = 102400 us, DTIM period = 1
[03:46:00.861777] discover_server:828 sending discovery

It’s logic if you think about it, when there is an unexpected reboot while it is playing the DAC is getting unexpected data resulting into a burst. Even if we modify Squeezelite to turn off audio before a reset it will not fix it for system crash.

The real question is why does the system reboot or crash in your case.

Could you leave it plugged on the USB serial console to see the logs after it crashed you can use the console from here : Squeezelite-ESP32 Installer until you here the burst and check logs.

I have noticed the same issue on the Luxe I just got. I will try to post back with logs.

I’m also experiencing this. I feel like it also is happening when the file format changes, like switching between recorded audio and Google generated text to speech. I will see if I can reproduce this with logs…