Moode Forum

Full Version: 128x64 OLED with Song Status and Spectrum Display on Raspberry Pi
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi Bob

The Pi specific code is probably all contained in the bcm2835 library https://www.airspayce.com/mikem/bcm2835/, but this "Works on all versions upt to and including RPI 4.", and so mpd_oled may also work on all Pis.

Adrian.
hi guys, I have become white hair
then with audio mode the display works perfectly with hifiberry dac + for 5122, it does not reproduce any sound unfortunately I also enabled manually: dtparam = audio = on, because via ssh it did not allow it but no audio, while with volume it is on the contrary everything works but just end one song and start the other the display freezes on the last image, if you have other suggestions I accept them thanks
(03-05-2020, 06:32 PM)DRONE7 Wrote: [ -> ]There are posts over at the hifiberry forum where LCD displays using i2c backpacks work....I have previously used an LCD Display without backpack with my  hifiberry Digi+.  
Curious, what happens if you build, skipping cava, and just try the oled without the spectrum analyser ?


Hmmm... just looking at another thread and saw this...

Quote:I'm using the OLD Pi1 Model B+ Rev. 2
Kindly regards
The Herb Guy


Adrii... does your oled script work on that  model ?

Hi, 
currently I have 2 Pis. 
The old one Pi 1 Model B Rev 2 and a Pi 4 Model B. 
I connected my Dac (Hifiberry Dac + Pro) via Jumperwires to my old Pi and the Display via Jumperwires to the Display  This works as described. The music plays and when you start the script for the display it will also show everything as expected  The only thing is that you cannot use the next, prev, play or pause. When you press one of these buttons on the web ui or via console (mpc toggle) the display freezes the player starts the next song but the audio stops  
Also there is no pin 27/28 on the old model.
On the Pi 4 I simply can use the 40 pin and build the DAC on top. The display is connected to DAC via jumperwires and here is the behavior a little bit different. 
When you start the display script you can use all the navigation and you hear the sound. But the display freeze after using the navigation.
Using pin 27/28 for the display slow it down as adrii described. 
This is the current status. 
I want to use the old Pi because the new one will be my media player for videos. The old one needs no active cooling and will do his job quite good  


The Herb Guy
Hi everybody,
update for the old PI version:
After testing the display over the DAC on my PI4 I reassemble the stuff to the old PI and found are malfunctioned jumperwire. Booting the PI shows the clock. After start playing internet radio the display will not start to work automatically. I had to restart the systemctl manually via the shell.
Then the display works as expected. But everytime you change the something (play, pause, change source) the display freezes and you have to manually restart the systemctl.

Any ideas?

The Herb Guy
I wrote to Suptronics, who make the X920 that ghera78 uses
Quote:I have developed an application to provide an OLED display with a music
player running on a Raspberry Pi.

    https://github.com/antiprism/mpd_oled

I have received a report that when a small SSD1306 I2C OLED is used
with your X920 DAC on Volumio, the OLED freezes every time that the
music starts or stops (presumably when the X920 is using the I2C bus).
If the mpd_oled application is restarted after the freeze the OLED works
correctly again until the music is started or stopped, which then freezes
the OLED again.

I wonder if you are aware of any issues running an I2C OLED with the
X920 DAC? I would be grateful for any help or suggestions, as I would
like to support the use of mpd_oled with your DAC.


Suptronics were kind enoght to reply with the following
Quote:The X920 used the same DAC chipset as other DAC board (PCM5122) so I think
this should be a common issue. The X920 also uses I2C and it connects to the
chipset directly.
Sorry that I have not received any feedback of this. the X920 was
discontinued at the end of 2018. And we have no plan to continue it.

The Herb Guy, have you written to Hifiberry, or do you plan to?

Adrian.
Hi Adrii,

unfortunately they will not help out here. As they clear statet here ( https://www.hifiberry.com/docs/hardware/...ry-boards/ )
> There is no support from us. You can ask questions in our community area. There are already interesting projects and other users might help you.

:-(
Currently there are 2 main problems that maybe are just one.
After booting the display will be initialized and shows the current time below it there is a line and below that the info that was shown before shutdown.
When start playing the display will not refreshed and stay showing the described output.
After manually call "sudo systemctl restart mpd_oled" the display will work as expected until you change something (pause, next, prev or change from or to internet radio stations)

The Herb Guy
Hi The Herb Guy

I suspect that that it is all the same issue, of the I2C devices interfering with each other.

I have put a message on the Hifiberry Community Board to ask for any thoughts

   https://support.hifiberry.com/hc/en-us/c...h-I2C-OLED

Adrian.
(03-10-2020, 06:38 PM)adrii Wrote: [ -> ]Hi The Herb Guy

I suspect that that it is all the same issue, of the I2C devices interfering with each other.

I have put a message on the Hifiberry Community Board to ask for any thoughts

   https://support.hifiberry.com/hc/en-us/c...h-I2C-OLED

Adrian.

Thanks
Interesting comments here re creating other i2s buss... would that sidestep the current clash ?

https://www.instructables.com/id/Raspber...c-Devices/


Quote:sudo nano config.txt

Add the following line of code, preferable in the section where spi and i2c is enabled.

dtoverlay=i2c-gpio,bus=4,i2c_gpio_delay_us=1,i2c_gpio_sda=23,i2c_gpio_scl=24

This line will create an aditional i2c bus (bus 4) on GPIO 23 as SDA and GPIO 24 as SCL (GPIO 23 and 24 is defaults)

Also add the following line to create i2c bus 3

dtoverlay=i2c-gpio,bus=3,i2c_gpio_delay_us=1,i2c_gpio_sda=17,i2c_gpio_scl=27

GPIO 17 will be the SDA and GPIO 27 will be the SCL for i2c bus 4.

Tipe control X to exit.

Note on the Bus Numbering and order:

Never use bus 0 and 2, it is use for other things in the board like eprom on hats etc
Hi Bob

It is a good suggestion, and should avoid the issue.

However, I have reviewed the library I use for I2C and unfortunately  I can't see any support for extra I2C buses. Also, the OLED initialisation and display library I use depends on this I2C library, and so any change to support extra I2C buses in the current code is probably not straightforward.

For the future, the U8G2 library has been ported to ARM and I have created a project that assembles this into a library package for Raspbian (but still needs some extra utility functions). It supports software I2C, but I am unsure of its speed or if it can take advantage of the i2c_gpio driver. I will ultimately switch to using this library for mpd_oled

   https://github.com/antiprism/libu8g2arm_test

Adrian.