Posts: 34
Threads: 1
Joined: May 2019
Reputation:
0
If I move /etc/asound.conf and restart mpd, then all works fine, also the files that previously gave me the error.
If i put /etc/asound.conf back and restart mpd, then the issues as described start.
I'm not sure if that means it's related to the bug you mention though...
JB
Posts: 434
Threads: 10
Joined: Apr 2018
Reputation:
28
Hi JB
The configuration file is clearly involved, but I am not sure what is causing the issue. I know very little about configuring ALSA, but I notice that the lookback device is described as "Loopback PCM", and the file is DSF, with your DAC able to handle native DSD. Could it be that you are sending DSD to the DAC and the Loopback device can't handle it and so the hw:1,0 device, which has the loopback device as a slave, can't be opened?
Adrian.
Posts: 434
Threads: 10
Joined: Apr 2018
Reputation:
28
Hi Paul
If you can run other projects then it sounds like your display is connected correctly, and the mpd_oled command you are running should be using default values that are correct for your display.
The issue could well be with mpd_oled. I only recently added command line support for SPI, and it has not been widely tested. I am not sure if there is a report of an SPI SSD1306 display working with mpd_oled, although there is a report for the compatible SPI SSD1309 working with the SSD1306 code.
However, there is a specific potential for there being issues with the SPI support. The communications library that mpd_oled uses appears to talk the the RPi hardware directly, rather than using the Linux devices. I updated this library to be compatible with the RPi4 recently and this led to issues with I2C devices that were sharing a bus. It turned out that the original library I was using had been customised to use the Linux /dev/i2c* devices, and when I added this code back in to the updated library this fixed the issue. However, the same is also true of SPI, as the library does not use the /dev/spidev* devices, but the original library was never customised to use these devices and so there is no code I can add back in to use them instead.
If you are running any other SPI devices it may be there is some kind of conflict that is making the mpd_oled initialisation fail. Otherwise, if you are able to add print statements to the mpd_oled code you could try to track down the innermost function that is failing during the initialisation, and it might suggest where the issue lies.
Adrian.
Posts: 10
Threads: 1
Joined: May 2018
Reputation:
2
Hello Adrian
Thank you for the reply.
I had my SPI SSD1306 display working with mpd_oled a few weeks back. It looked really good. This was before the rpi4 code update.
I am not using any other SPI devices. Just 1 OLED screen.
Looks like im going to have to learn a bit of python. I'm afraid don't know how to add print statments to code.
Always the way. Just as soon as i get something working. It stops working.
Thanks again
Paul
Posts: 10
Threads: 1
Joined: May 2018
Reputation:
2
Hello Adrian
I'll definitely give that a go. Its just not the same without the little graphic equaliser bouncing around.
By going down this route does that mean when you update mpd_oled I wouldn't be able to go beyond the above version (unless the SPI lib is fixed)? Say when Moode has been updated.
Thank you
Paul
Posts: 434
Threads: 10
Joined: Apr 2018
Reputation:
28
Hi Paul
The updates to mpd_oled in response to updates to Moode have generally just been changes to the instructions for setting up the copy of the audio, with a new patch for Moode if necessary. So you could just build and install the older version of mpd_oled, and refer to the latest version of mpd_oled for the instructions to make the audio copy and to grab the current patch for Moode.
I would be interested to hear if your display still works with the older version of mpd_oled.
Adrian.
Posts: 10
Threads: 1
Joined: May 2018
Reputation:
2
Hi Adrian
Unfortunately it didn't work.
From a clean install of Moode, I followed the guide then ran the additional code you posted.
I now have 2 directories - mpd_oled and mpd_oled_oled
mpd_oled shows the same 'could not initialise' error.
mpd_oled_oled shows no errors in terminal but nothing on the screen.
Have I done this correctly? Should I have substituted in your new code into the guide rather than doing one then the other?
Thank you
Paul