[PLUGIN] MPD OLED - installation & configuration plugin

Hi guys,

This is exactly what I’ve been looking for - great job!
Where can I get this OLED module and is there an instruction how to add it to the RPI4?
Is there already a suitable case for the OLED available?

Cheers
Robert

1 Like

Many thanks guys!
i was looking for a OLED plugin that is working with OTA, especially for my DACBERRY boards (easy OLED integration)
Will the plugin selectable in plugins management in future?
@Josh2000 thanks. I will check your work and come back later :wink:
Thanks again.

1 Like

Well done, many thanks!

1 Like

Hi Robert

I’m glad you like it :smiley:

I got my OLED from eBay and paid about £4. You can get them on AliExpress too. The type of I2C display to get and instructions are all on the GitHub page <https://github.com/supercrab/volumio-p plugins/tree/master/plugins/miscellanea/mpd_oled>

If you google mpd_oled you should see lots of projects other people have made and get some ideas from them. There is nothing official at the moment.

Cheers
Mase

1 Like

Thanks @Darmur :smiley:

Hi @judydudi

You’re welcome! :smiley:

The plugin isn’t official yet and isn’t part of Volumio. I don’t know if the team plan to make it official yet, maybe you could ask them? I’m still waiting on one last thing before I make a pull request for my changes so the team won’t know anything about the plugin until I do that first…

Cheers
Mase

Well done ! I think it will help a lot of users.
But for me, the biggest thing concern mpd.conf
This solution will not work with service that not use mpd (Spotify, Spotify connect etc).
In a near future, Volumio based on buster will be out. It will provide a new alsa pipeline that allows to easily use a specific asound.conf. so I think the good way is to use this mechanism to make a universal plugin. This is not documented yet though… .
We already have plugin working that way. let us know :stuck_out_tongue_winking_eye:
And once again z good job!

2 Likes

I tried on volumio buster, it does not work

the issue is related to this command in your build script

PLAYER=VOLUMIO make

on buster-based systems, it should be changed to

PLAYER=MPD LDLIBS="-li2c" make

1 Like

Thanks for giving it a test @Darmur! I shall let Adrian know about that issue.

Cheers
Mase

1 Like

I think he is already aware, the correct command comes from his readme

1 Like

Thanks @balbuze :smiley:

The solution does work with non mpd players but it’s a bit of a faff. Lots of users want to see the visualiser work with Spotify, etc. There are currently 2 options to get around this: change alsa config in asound.conf to route the audio using loopback (hard to get right) or use mic in as the audio source but not all soundcards have mic in.

Mpd_oled uses a program called CAVA which takes mpd's FIFO output. I don’t know enough about Volumio, MPD, Buster, CAVA or linux to suggest how it would work, but I’m sure that are more intelligent people who can help!

Cheers
Mase

@Darmur ah right, I’ve updated my instal.sh to fix this so should be sorted now.

Cheers
Mase

2 Likes

well done, now it should handle both!

1 Like

I hope so @Darmur - I haven’t tested it fully but it should work. It’s a great issue to find because everything else has been tested and this is something I never thought of testing!

Hi,

I just checked my german translation and found it is looking kind of ugly on smaller displays because of too long text.

I will rework it and upload a better version soon - :slight_smile:

br
Josef

1 Like

Much appreicated thanks!

Here’s the last version I uploaded :slight_smile:

{
"PLUGIN_CONFIGURATION": "MPD OLED Konfiguration",
"PLUGIN_DESCRIPTION": "MPD OLED Display Ansteuerung",
"PLUGIN_TOOLS": "Tools",
"PLUGIN_LINKS": "Weiterführende Links",
"SETTINGS_SAVED": "MPD OLED Einstellungen erfolgreich gespeichert.",
"VALID_CONFIGURATION": "Gültige Konfiguration",
"INVALID_CONFIGURATION": "Ungültige Konfiguration",
"RESET_DC_ERROR": "I2C/SPI reset GPIO und SPI DC GPIO dürfen nicht gleich sein.",
"OLED_TYPE_ERROR": "Wählen Sie den OLED Display Typ.",
"CAVA_ERROR": "CAVA input method and source.",
"PROCESS_START_ERROR": "MPD OLED process konnte nicht gestartet werden. Fehler: <ERROR>",
"PROCESS_STOP_ERROR": "MPD OLED process konnte nicht gestoppt werden. Fehler: <ERROR>",
"GAP_BARS_ERROR": "Spectrum Graph Breite ist <SPECT_WIDTH>: Um <BARS> Graphen mit einer Breite der Zwischenräume von <GAP> anzuzeigen werden mindestens <MIN_WIDTH> benötigt. Verringern Sie die Anzahl der Graphen und/oder die Breite der Zwischenräume.",
"SAVE": "Speichern",
"OK": "O.K. verstanden",
"I2C_DEVICE_SCAN": "I2C Geräte Scan",
"I2C_NO_TOOLS": "Der I2C Geräte Scan konnte nicht durchgeführt werden, da die i2c-tools nicht installiert sind.",
"I2C_SCAN_ERROR": "Beim Scan des I2C Busses <I2C_BUS> trat folgender Fehler auf: <ERROR>",
"I2C_BUS_DISABLED": "<strong>Auf I2C bus <I2C_BUS> wurden keine Geräte gefunden.</strong>",
"I2C_DEVICE_LIST": "Auf I2C bus <I2C_BUS> wurden folgende Geräte gefunden:<br/><br/><strong><DEVICES></strong>",
"I2C_DEVICES_NONE": "Keine",
"OLED_TYPE": {
	"LABEL": "OLED Display Typ",
	"DOC": "Typ des angeschlossenen OLED displays.",
	"DEFAULT": "Auswahl",
	"ITEM1": "1. Adafruit SPI 128x64",
	"ITEM3": "3. Adafruit I2C 128x64",
	"ITEM4": "4. Seeed I2C 128x64",
	"ITEM6": "6. SH1106 I2C 128x64",
	"ITEM7": "7. SH1106 SPI 128x64"
},
"NUMBER_OF_BARS": {
	"LABEL": "Anzahl der Graphen",
	"DOC": "Anzahl der Graphen des Spectrum Analysers.",
	"DEFAULT": "16 (default)"
},
"GAP_BETWEEN_BARS": {
	"LABEL": "Breite der Zwischenräume zwischen den Graphen",
	"DOC": "Breite der Zwischenräume (in Pixel).",
	"DEFAULT": "1 (default)"
},
"FRAME_RATE": {
	"LABEL": "Frame rate (Bildwiederholrate)",
	"DOC": "Wählen Sie die Bildwiederholrate (in Hz)<br/><br/>Das Plugin setup erhöht die I2C Busgeschwindigkeit auf 800 Kbit/s - jedoch erst nach dem nächsten Neustart Ihres Raspberry Pi.<br/><br/>Empfehlung: Ein Raspberry Pi 3 erzielt erfahrungsgemäß mit 50Hz das beste Ergebnis.",
	"DEFAULT": "15 (default)"
},
"SCROLL_RATE": {
	"LABEL": "Scroll rate (Rollgeschwindigkeit)",
	"DOC": "Stellen Sie die scroll rate  ein (Pixel/Sekunde).",
	"DEFAULT": "8 (default)"
},
"SCROLL_DELAY": {
	"LABEL": "Scroll delay (Zeit bis das Scrollen beginnt)",
	"DOC": "Stellen Sie die Zeit ein ab wann das Scrollen beginnt (Verzögerung in Sekunden).",
	"DEFAULT": "5 (default)"
},
"CLOCK_FORMAT": {
	"LABEL": "Zeitformat",
	"DOC": "Zeitformat.",
	"DEFAULT": "24h mit führender 0 (default)",
	"ITEM1": "24h ohne führende 0",
	"ITEM2": "12h mit führender 0",
	"ITEM3": "12h ohne führende 0"
},
"PAUSE_SCREEN_TYPE": {
	"LABEL": "Anzeige während einer Pause",
	"DOC": "Anzeige während einer Pause.",
	"DEFAULT": "Play (default)",
	"ITEM1": "Stop"
},
"CAVA_INPUT_METHOD_AND_SOURCE_ENABLED": {
	"LABEL": "CAVA Konfiguration",
	"DOC": "CAVA input method und source settings (advanced)."
},
"CAVA_INPUT_METHOD_AND_SOURCE": {
	"LABEL": "CAVA input method und source settings (advanced)",
	"DOC": "CAVA input method und source.<br/><br/>Examples:<br/><br/>fifo,/tmp/mpd_oled_fifo (default)<br/>fifo,/tmp/my_fifo<br/>alsa,hw:5,0<br/>pulse"
},
"ROTATE_DISPLAY": {
	"LABEL": "Display drehen",
	"DOC": "Display um 180 Grad drehen."
},
"INVERT_DISPLAY_ENABLED": {
	"LABEL": "Anzeige invertieren",
	"DOC": "Schwarz/Weiß invertieren."
},
"INVERT_DISPLAY_PERIOD": {
	"LABEL": "Invertierungsintervall",
	"DOC": "Zeitspanne nach der das Display periodisch invertiert wird um ein Einbrennen zu verhindern.",
	"DEFAULT": "Disabled (default)",
	"ITEM1": "1 Minute",
	"ITEM2": "2 Minuten",
	"ITEM3": "3 Minuten",
	"ITEM4": "6 Minuten",
	"ITEM5": "12 Minuten",
	"ITEM6": "24 Minuten",
	"ITEM7": "48 Minuten",
	"ITEM8": "1 Stunde",
	"ITEM9": "2 Stunden",
	"ITEM10": "3 Stunden",
	"ITEM11": "6 Stunden"
},
"I2C_ADDRESS": {
	"LABEL": "I2C Adresse",
	"DOC": "I2C Adresse des Displays.",
	"DEFAULT": "Default for display"
},
"I2C_BUS": {
	"LABEL": "I2C bus",
	"DOC": "I2C Bus - abhängig vom Modell Ihres RasPi's.<br/><br/>/dev/i2c-1 für Model A, B Rev 2 or B+ Pi oder neuer<br>/dev/i2c-0 für das alte Model B Rev 1.",
	"ITEM0": "/dev/i2c-0",
	"ITEM1": "/dev/i2c-1",
	"DEFAULT": "/dev/i2c-1 (default)"
},
"SPI_RESET_GPIO_NUMBER": {
	"LABEL": "I2C/SPI reset GPIO number",
	"DOC": "GPIO port, der mit dem Reset Pin Ihres Displays verbunden ist (falls verfügbar).",
	"DEFAULT": "25 (default)"
},
"SPI_DC_GPIO_NUMBER": {
	"LABEL": "SPI DC GPIO number",
	"DOC": "GPIO port, der mit dem DC Pin Ihres Displays verbunden ist (SPI)",
	"DEFAULT": "24 (default)"
},
"SPI_CS": {
	"LABEL": "SPI CS line",
	"DOC": "Wählen den CS Kanal für Ihr Displays (SPI)",
	"DEFAULT": "0 (default)"
},
"I2C_SCAN": {
	"LABEL": "I2C Gerätesuche (Scan)",
	"DESC": "Gerätesuche auf I2C bus"
},
"I2C_WIRING_LINK": {
	"LABEL": "I2C OLED Anschlußbelegung",
	"DESC": "Anschlussbelegung für I2C OLED displays."
},
"SPI_WIRING_LINK": {
	"LABEL": "SPI OLED Anschlussbelegung",
	"DESC": "Anschlussbelegung für SPI OLED Displays."
},
"MPD_OLED_LINK": {
	"LABEL": "MPD OLED auf GitHub",
	"DESC": "MPD OLED Projektseite auf GitHub."
}

}

1 Like

Thanks @Josh2000. I’ve updated the translation file and package :smiley:

Hi Mase,

I’ve found it on Alibaba and will order it:

Thanks
Robert

Hi @ImmersiveBit

That’s the one! There’s also a 2.4 inchhversion too - if you like bigger screens but they cost about $20.

Hope it come soon!

Cheers
Mase