New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OLED SSD1309 Display will not work on Volumio #34
Comments
Hi Benjamin Thank you for your message. There are no command line SPI options (I only had an I2C display until recently and so could no test them). The code itself supports SPI, but using it requires changing the code. See the following issue (success not confirmed): #15 (you would need to specify your particular pins and also use OLED_SPI_CS0). The following issue confirms a working SPI display (but includes extra changes for the SSH1106 controller): #14 As I now have an SSD1306 SPI display I can look at providing an option for it. I'll take a look at what is involved and then post an update (probably within a couple of days). Adrian. |
Dear Adrian, thank you for your fast feedback. Excellent. |
Hi Benjamin I have got my SPI display up and running! Initially it looked like image 2A in the following thread, but with some text writng and flashing on the top line: https://forum.arduino.cc/index.php?topic=265557.0 After reading the thread, I checked what I had bought on eBay. There was a 0.96" and 1.3" SPI display in the listing, which I thought differed only in size, but the smaller one had a SSD1306 controller and the larger one, which I bought, had a SH1106 controller! I set up a new mpd_oled -o setting for the SPI SH1106 128x64 display and added in the code mentioned in #14, and the display is working. I need to test the changes before updating the repository. However, if you have an SSD1306/9 controller, you should be able to get it working now if you edit the init_display function in display.cpp and make the following change
And run mpd_oled with -o 1 (Adafruit SPI 128x64), e.g. I'll add options to mpd_oled to specify DC and CS. Adrian. |
Dear Adrian Thank you.
May You could approve point 1-4 and 6-7 and clarify point 5. In that case I could test this tomorrow with the Raspi DAC and my SSD1309 OLED I will try it tomorrow when I have access to my Raspi DAC. Thank you so far. I let you now the results. Good evening Benjamin |
Hi Benjamin
I'll post when I have updated the repository. Adrian. |
Dear Adrian, thank you for your patience with me
`bool init_display(ArduiPi_OLED &display, int oled, unsigned char i2c_addr, // SPI display.begin();
What could I do? To give you all information Thank you in advance |
Hi Benjamin I believe your setup is fine. I didn't specifically say to run 'PLAYER=VOLUMIO make' after changing the source code, but it needs to be run, and I wonder if that was the issue. If you didn't run it then sorry for not mentioning it. I have now updated the mpd_repository with changes that should support both your SPI OLEDs. You should be able to start from: After you have built the program, if your DC and CS pins are as before they are default values and so don't need to be specified, in which case test mpd_oled with SPI SSD1309: sudo ./mpd_oled -o 1 -b 21 -g 1 -f 20 Something should be displayed on the OLED within a couple of seconds. If nothing is playing a clock screen will display, and this turns to the screen with the spectrum display when music is playing. See this video: https://youtu.be/Jl63Dt5A0Jo Adrian. |
Dear Adrian, We installed "sudo apt install raspi-config" as before to install the configuration menu and enabled SPI interface, but we also tried out your style to enable the SPI: nano /boot/userconfig.txt
we also configured the file as before:
then we played a simple mp3 No Function - black display. We tried it with SPI Mode for the following displays SSD1106 and SSD 1309. we also play with execute "sudo bash install.sh" and "sudo systemctl start mpd_oled" No success I there something more which we could test. If you want we could upload the image from the SD-Card Kind regards Benjamin |
Hi Benjamin I am running Volumio 2.703, from about a week ago. You could check that SPI is available
What is mpd_oled doing when it is running and the screen is dark? Normally, it should be busier when music is playing on Volumio through MPD, e.g. a radio station (but only if the copy of the audio has been configured correctly).
Run top when music is playing through a Volumio radio station. For me mpd_ole=13.8% CPU, cava=6.1% CPU
This is my OLED (1.3", SSH1106) I cloned the mpd_oled repository from fresh, built the program, and ran it with Here are a couple of photos of my setup (the extra card is an I2S sound card). If you are able to follow the wires they should be connected the same was yours. Adrian. |
Dear Adrian, thank you for to much help ;-) Here are the results from my pi currently with the onboard sound card and fresh system
with No Music and no"sudo ./mpd_oled -o 1 -b 10 -g 1 -f 20"
with No Music and execute "sudo ./mpd_oled -o 1 -b 10 -g 1 -f 20"
with Music on and execute "sudo ./mpd_oled -o 1 -b 10 -g 1 -f 20"
We did find "mpd_oled" with 100% CPU. CPU is realy warm what should I check next? Kind Regards Benjamin |
Hi Benjamin I don't know if it will help, but I have updated the library code that handles the I2C and SPI communication. The version I was using seems to be several years old, and the library has received a lot of updates since then (maybe the old version has compatibility issues with newer Pis) . I recommend cloning a fresh copy of the mpd_oled repository. Then, run "PLAYER=VOLUMIO make" and then try running a test command with the new mpd_oled program. Regarding your results, mpd_oled shouldn't run at 100%. It looks like it is encountering some kind of problem before it launches 'cava', most likely when trying to initialise the display. If you can get someone who knows C or C++ to help you track down where in the code the issue is occurring, I might be able to suggest something. Adrian. |
Hi Adrian! Meanwhile I've investigated in the code "Volumio-OledUi" and have made some steps forward in understanding the code. Greetings! |
Hi I have only added support for SPI screens with SSD1306/9 and SSH1106 chips, and if the SSD1322 needs specific controller code then the newer version of the SPI library probably won't help. Volumio-OledUI looks like a cool project! Adrian. |
Dear Adrian, thank you I will give it a hopefully trail tomorrow. |
Dear Adrian, you are my man of the hour! Current Setup is All works perfect Thank you so much for your realy good support |
Hi Benjamin That is great! I am really pleased your displays are now working. Thanks for all your feedback and patience while troubleshooting the issue! Adrian. |
Dear Adrian, I use an Raspi 4 with Volumio. All is working on the latest software. Now I found your really cool project. Unfortunately I am not so deep into Linux, but copy and paste is working well :-). I bought the following Display: 1,54 ZOLL OLED128X64 SSD1309 which should be compatible with SSD1306
https://www.ebay.de/itm/253369133648
The display will not work, after several days of work. I think I need your help.
I read all forum content in the different platforms, but without success.
I cannot use I2S because the port is already booked and running with a RTC. I checked the 1.54 SSD1309 OLED Display function with an Arduino project from my coffee machine and the display is working there when I exchanged it from its old 0.96 SSD1306 OLED from the first moment.
Ok, back to the Volumio DAC:
I activated the SPI function in the config.
I configured the display as following on the Raspi GPIO (Pin No is mentioned not GPIO No.)
OLED Pin - Raspi Pin
1: GND - 14: GND
2: VCC - 9: 3,3V
3: SCL - 23: SPI SCLK
4: SDA - 19: SPI MOSI
5: RES - 22: GPIO 25
6: DC - 18: GPIO 24
7: CS - 24: SPI CS0
I set your code to Adafruit SPI 128x64.
"sudo ./mpd_oled -o 3 -b 10 -g 1 -f 20
The Installation guide from you did work fine until the following lines:
"If you have a reset pin connected, specify the GPIO number with mpd_oled -r, e.g. mpd_oled -o6 -r 24 .... (For, SPI OLEDs, edit display.cpp to include your connection details, if this works out I will provide options for these parameters.)"
Please can you support me?
I have no clue how to configure the last needed settings.
Your manual is wonderfull for a rooky like me until the last lines. Please, can you write on the end of your manual clear commands?
Is my Pin setting on the GPIO wrong?
Where and How can I configure these settings in your code?
Did you try out the SPI display or did anyone tried this out with success?
What further data do you need for support?
Currently my display is completely blank and there is not poping up only one pixel :-)
Thank you in advance and best regards
Benjamin from Frankfurt
The text was updated successfully, but these errors were encountered: