[How to do instruction] LCD/OLED display using pydPiper - Printable Version +- Moode Forum (https://moodeaudio.org/forum) +-- Forum: moOde audio player (https://moodeaudio.org/forum/forumdisplay.php?fid=3) +--- Forum: FAQ and Guides (https://moodeaudio.org/forum/forumdisplay.php?fid=9) +--- Thread: [How to do instruction] LCD/OLED display using pydPiper (/showthread.php?tid=461) |
LCD/OLED display using pydPiper - remy1961 - 09-06-2018 On the official pydPiper page there is a list of displays that can be controlled using pydPiper. I personnally have experimented with the following: 16x2 oled using parallel interface 20x4 LCD using i2c interface 128x64 oled using i2c interface The good thing with pydPiper is that it gives you complete control over the information to display and how to display it (font type and size, position on the screen, scroll direction and speed), and it can even display an image (yes, even on a 16x2 oled!). Here is the tutorial. Create your moode installation and add the ssh file. ssh to moode. Password is moodeaudio 1. Install the docker Code: cd /home/pi 2. Activate i2c interface: Code: sudo raspi-config 3. Configuration. You will have to answer a few questions depending on the display you use. Code: sudo python configure.py Code: [STARTUP] For the 20x4 lcd with i2c interface (system and source are the same as above) Code: [DISPLAY] For the 16x2 lcd with i2c interface (system and source are the same as above) Code: [DISPLAY] For the 128x64 pixels oled using i2c interface and ssd1306 driver: Code: [DISPLAY] 4. To test if it works Code: sudo /usr/bin/docker run --network=host --privileged -ti -v /var/log:/var/log:rw -v /home/pi/pydPiper:/app:rw dhrone/pydpiper:v0.31-alpha /bin/bash 5. To complete the installation: Code: cd pydPiper That's all. To customise the display you have to edit the page file used in your configuration. It is found in the directory /home/pi/pydPiper Take note that: For the i2c interface, use this command to detect your i2c adress: Code: sudo i2cdetect -y 1 If the display works but complains that there is no widget available, you have to edit your page file in order to get data from MPD: Code: cd pydPiper ctrl-x, yes, enter when finished. i2c interface is known to be slow. To improve the performance for a good refresh rate, you have to edit the configuration. Code: sudo nano /boot/config.txt Code: dtparam=i2c_arm_baudrate=400000 Remy RE: LCD/OLED display using pydPiper - remy1961 - 09-06-2018 A few pictures: How to wire a 16x2 oled using parallel interface. Use the wiring on the picture on the right pydPiper on a 16x2 oled: pydPiper on a 2.42 inches 128x64 using i2c: pydPiper on a 20x4 LCD: Remy RE: LCD/OLED display using pydPiper - DRONE7 - 09-07-2018 Thanks for such a detailed write up Remy ! I plan to try the 20x4 lcd version this weekend on a MoOde Radio player for our kitchen. Edit Tried with instructions for 20x4 lcd with i2c interface and nothing output to display. (oddly there is now no radio logo artwork displayed in the moode web interface!!) Must be something vital missing here...is it a complete a to z or are there other settings we need to configure within MoOde...lcd update engine, metadata, path to .py script ??? What needs configuring for the page file for the 20x4 lcd with i2c interface ? is there a sample we can use to get first output then modify to suit..? RE: LCD/OLED display using pydPiper - rh2018 - 09-10-2018 A big thanks to Remy1961 for his excellent tutorial. It’s great to see a well written and complete tutorial. After a couple of pm’s alerting me to details in the tutorial that in my enthusiasmI had missed, I have a fully working 16x2 lcd display operating. The steps that I overlooked were: Step 3: “Note that this is not actually a code. You answer manually line per line (copy and paste). “ and Step 5: “you have to edit the page file used in your configuration. It is found in the directory /home/pi/pydPiper” In the page file for your chosen display, change any instances of ‘stream’ to ‘encoding’ under “SEQUENCES > ‘canvases’ to avoid a “no active widgets” error message when playing a track. (Also included in remy1961’s “Notes” edit) [attachment=222] [attachment=223] RE: LCD/OLED display using pydPiper - DRONE7 - 09-10-2018 Reinstalled and reconfigured. Still no output to display... no welcome message. Rechecked wiring all ok. Any debugging I can run ? RE: LCD/OLED display using pydPiper - remy1961 - 09-11-2018 (09-10-2018, 08:52 PM)DRONE7 Wrote: Reinstalled and reconfigured. Hi DRONE7, It might help if we can we see the content of the file /home/pi/pydPiper/pydPiper.cfg Remy RE: LCD/OLED display using pydPiper - DRONE7 - 09-11-2018 Hi Remy.... [STARTUP] startup_msg_duration = 5 [DISPLAY] display_driver = hd44780_i2c display_width = 100 display_height = 32 display_enable_duration = 1 display_i2c_port = 1 display_i2c_address = 0x3f pagefile = pages_lcd_20x4.py animation_smoothing = 0.15 [SYSTEM] logfile = /var/log/pydPiper.log loglevel = info timezone = Pacific/Auckland time24hour = true temperature = celsius [SOURCE] source_type = moode mpd_server = localhost mpd_port = 6600 mpd_password = moodeaudio Looks as it should..... I checked /var/log/pydPiper.log but that is an empty file.. Running the test code after install starts docker and the app... seems to be running only no output.... I'm a bit lost from here... RE: LCD/OLED display using pydPiper - remy1961 - 09-11-2018 Hi, I guess the i2c adress 0x27 did not work, and that 0x3f was from sudo i2cdetect -y 1. Other than that everything in the configuration seems good for a 20x4 LCD with i2c interface. I assume the connections are correct (sda connected to physical pin 3 and scl connected to physical pin 5). What about the docker, I assume it was installed correctly, with towards the end of the installation several packages being downloaded and extracted. If nothing works, let me know, I will try to do again an installation from scratch since I happen to have the same display. Remy RE: LCD/OLED display using pydPiper - DRONE7 - 09-11-2018 correct for all.... unsure about docker packages as I was away from the screen and returned to find it at the prompt..... docker seems to start but i will rerun the install to check... Other variables here I see....1) running on a PiB ver2 (single core, 512Ram) 2) using 5v to vcc on the display and 3.3v to the backpack as per this advisory... https://www.instructables.com/id/Raspberry-Pi-Using-1-I2C-LCD-Backpacks-for-1602-Sc/ Edit.. OK! running now.....poor little PiB takes a lo-o-ong time to load and execute pydPiper.py. That was the problem....I didn't wait long enough = 5 Minutes+.... I went off for refreshments and when I returned it was starting !. Will finish the install and test a while but I might be returning to BryceJ's script which has a lesser overhead for this Pi. C P U L O A D CPU %usr %sys %idle all 66.32 14.74 18.42 0 66.32 14.74 18.42 P R O C E S S L O A D PRI RTPRIO COMMAND %MEM PSR %CPU 19 - python 5.1 0 65.2 29 - mpd 3.4 0 6.6 19 - sysinfo.sh 0.5 0 2.8 19 - dockerd 11.4 0 2.0 19 - docker-containe 5.6 0 1.1 19 - worker.php 2.5 0 1.0 19 - sudo 0.6 0 0.7 19 - systemd 1.2 0 0.4 19 - docker 5.4 0 0.3 BryceJ's script.... C P U L O A D CPU %usr %sys %idle all 11.11 5.56 82.32 0 11.11 5.56 82.32 P R O C E S S L O A D PRI RTPRIO COMMAND %MEM PSR %CPU 29 - mpd 5.5 0 6.6 19 - sysinfo.sh 0.5 0 4.5 19 - systemd 1.3 0 1.4 19 - sudo 0.6 0 1.2 19 - worker.php 2.4 0 1.1 19 - php-fpm7.0 2.3 0 1.0 19 - python 1.3 0 0.9 19 - php-fpm7.0 2.4 0 0.6 19 - systemd-journal 0.9 0 0.5 Docker and Python at 65% cpu vs BryceJ's script at 0.9%!!! Thanks for your help to get this running, I will use it on a Pi2 or a Pi3 but not for a PiB....lol Cheers, Bob. RE: LCD/OLED display using pydPiper - rh2018 - 09-11-2018 Hello Bob, I had a 20x4 display in addition to the 16x2. I have been testing on a Pi2B with Moode 3.8.4. Changed displays and repeated Step 3: sudo python configure.py and edited the "pages_lcd_20x4.py" file. No problems and works on address 0x27. I am also powering the display and backpack with 5 Volts only to the backpack without problems. pydPiper starts less than a minute after moOde boots. Next move is to install on Pi 3B+ with moOde 4.2 and using a level converter as described at: https://www.raspberrypi-spy.co.uk/2015/05/using-an-i2c-enabled-lcd-screen-with-the-raspberry-pi/ Richard. |