I2S DAC settings gone with reboot

I have the ADAFRUIT I2S AUDIO BONNET on top of a pi zero w. I have selected “Adafruit UDA1334A” for I2S DAC in Volumio, yet every time the box is powered up or simply rebooted I get no playback with this error message: image

Now I have do disable and re-enable I2S DAC only to start getting the same error but “ALSA device softvolume” is failing. After I enable the software mixer, most of the time, we’re back in business…until the next time I have to reboot the pi box.

There’s gotta be a way around this?!

Nobody would venture a guess what’s going on?

To add some more detail, here’s the config file, which seems to be persistent upon restarts:

nitramfs volumio.initrd
gpu_mem=32
max_usb_current=1
#dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1

include userconfig.txt
dtoverlay=i2s-mmap
#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dac,i2s-mmap


#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dac,i2s-mmap

and here’s the log:

info: Adding Item to queue: http://opml.radiotime.com/Tune.ashx?id=s35273
info: CoreCommandRouter::executeOnPlugin: webradio , explodeUri
info: CorePlayQueue::saveQueue
info: CoreCommandRouter::volumioPushQueue
info: CoreStateMachine::updateTrackBlock
info: CorePlayQueue::getTrackBlock
info: CoreCommandRouter::volumioPlay
UNSET VOLATILE
info: CoreStateMachine::play index 50
info: CoreStateMachine::setConsumeUpdateService undefined
info: CoreStateMachine::stop
info: CoreStateMachine::setConsumeUpdateService undefined
UNSET VOLATILE
info: CoreStateMachine::play index undefined
info: CoreStateMachine::setConsumeUpdateService undefined
info: CorePlayQueue::getTrack 50
info: CoreStateMachine::startPlaybackTimer
info: CorePlayQueue::getTrack 50
info: [1595489936300] ControllerWebradio::clearAddPlayTrack

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState


info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update







info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CorePlayQueue::getTrack 50
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CorePlayQueue::getTrack 50
info: Received update from a service different from the one supposed to be playing music. Skipping notification.Current webradio Received mpd
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CorePlayQueue::getTrack 50
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CorePlayQueue::getTrack 50
info: Received update from a service different from the one supposed to be playing music. Skipping notification.Current webradio Received mpd
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CorePlayQueue::getTrack 50
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CorePlayQueue::getTrack 50
info: Received update from a service different from the one supposed to be playing music. Skipping notification.Current webradio Received mpd
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CoreStateMachine::pushState
info: CorePlayQueue::getTrack 50
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: CorePlayQueue::getTrack 50
info: Received update from a service different from the one supposed to be playing music. Skipping notification.Current webradio Received mpd
info: ------------------------------ 419ms
info: ------------------------------ 406ms
info: ------------------------------ 395ms
info: ------------------------------ 386ms
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
error: updateQueue error: null
info: ------------------------------ 419ms

error: ControllerMpd::pushError: TypeError: Cannot read property 'split' of undefined
info: ------------------------------ 598ms

error: updateQueue error: null
error: updateQueue error: null
error: updateQueue error: null
error: updateQueue error: null
info: ------------------------------ 407ms
info: ------------------------------ 399ms
info: ------------------------------ 392ms
info: ------------------------------ 380ms
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info: CoreStateMachine::setConsumeUpdateService mpd

info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info:
---------------------------- MPD announces system playlist update
info: Ignoring MPD Status Update
info: ------------------------------ 229ms
info: ------------------------------ 152ms
info: ------------------------------ 128ms
info: ------------------------------ 108ms
info: ------------------------------ 85ms
info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState
















info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

info:
---------------------------- MPD announces state update: player
info: ControllerMpd::getState

















info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ------------------------------ 1042ms
info: ------------------------------ 1023ms
info: ------------------------------ 974ms
info: ------------------------------ 959ms
info: ------------------------------ 942ms





info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ControllerMpd::pushState
info: CoreCommandRouter::servicePushState
info: CorePlayQueue::getTrack 50


info: CoreStateMachine::syncState   stateService pause
info: CoreStateMachine::syncState   currentStatus stop
info: CoreStateMachine::pushState
info: CoreCommandRouter::volumioPushState
info: CoreCommandRouter::executeOnPlugin: volumiodiscovery , saveDeviceInfo
info: ------------------------------ 1217ms
info: ------------------------------ 922ms
info: ------------------------------ 906ms
info: ------------------------------ 891ms
info: ------------------------------ 877ms
info: CoreCommandRouter::volumioGetState
info: CoreCommandRouter::volumioGetState
info: Listing playlists
info: Listing playlists
[Vollibrespot] : couldn't parse packet from V4(192.168.1.1:5353): type 47 is invalid

This makes no sense whatsoever! The only working option that lasts after a reboot and has the software mixer active is to have the I2S DAC actually turned off?! With settings like this I can reboot, everything plays fine and volume can be adjusted. How does this make sense?

In the meantime the /boot/config.txt content is exactly the same like when the I2S DAC is on and specified.

initramfs volumio.initrd
gpu_mem=32
max_usb_current=1
#dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1

include userconfig.txt
dtoverlay=i2s-mmap
#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dac,i2s-mmap


#### Volumio i2s setting below: do not alter ####
dtoverlay=hifiberry-dac,i2s-mmap

could you please try to apply following fix?

  1. enable SSH
  2. edit the file /boot//boot/cmdline.txt (type sudo pico /boot/cmdline.txt)
  3. at the end of the string, replace snd-bcm2835.enable_compat_alsa=0 with snd_bcm2835.enable_headphones=1
  4. press CTRL+x, then y and ENTER to save changes
  5. reboot

no luck :frowning:

Did that, rebooted, changed DAC to ON and selected the adafruit model, rebooted again.

Getting this with software mixer:

image

If I set thew mixer to “none”, then it’s this:

image

As soon as I turn off the I2S DAC altogether (with hifiberry dac automatically selected), no need to restart, and it’s all fine again. Pretty much the exact same thing as before.

Another thing - not sure if it’s related. It will play, say web radios, all day long and all of a sudden playback will get distorted, garbled and crackling. It’s not a matter of wifi connection as the access point reports high RSSI levels, also the same issue will be present while playing from internal storage. A reboot may or may not fox this. Have it idle or off for a while and then it will play fine again. Am I looking at a faulty DAC here?

Did you find a solution ?
I have exactly the same problem with an Octo audio-injector card under volumio 2.834. It worked fine with version 2.673.
Like you, I have to save the DAC in the General Playback Options for everything to work …