Performance improvement Waveshar 7inch LCD with Raspi 3B+

Volumio 2.917 is installed.

Used plugins are:
IR Remote Controller 1.4.4
System Information 0.1.6
Remote Pi 1.1.7
Touch Display 1.3.0 (of course)
Virtual Keyboard 1.0.4
Backup & Restore Data 0.7.2

I temporarily disabled all of them (beside the Touch Display Plugin) but this didn’t improve the GUI performance.

BTW: Volumio is in idle mode not playing back any music!

I am running Volumio 2.917 on a somewhat similar setup:

Pi3 B (no “+”)
Raspberry Pi Foundation 7" touchscreen
RemotePi board

Plugins:
IR Remote Controller 1.4.4
Remote Pi 1.1.7
Touch Display 1.3.0
Virtual Keyboard 1.0.4

I know it doesn’t help, but I can report that this system runs without the laggyness you described.

Some questions:

Does the slowness also occur in a browser on a PC or smartphone? Or is the display of Volumio’s UI only on the Waveshare LCD slow?

I assume the Waveshare has a touchscreen (otherwise you probably wouldn’t have the Virtual Keyboard plugin installed). So could you check if it is the touchscreen that reacts slowly to touch events?

Also, please give some information on the exact model of the display, how the touch controller is connected to the Pi (GPIO, USB) and what additional software you possibly did install respectively what files of Volumio you might have altered and in what way.

gvolt, thanks for chiming in!

Performance of the GUI running in Firefox on the PC is fine. No issues here!

This is the Waveshare LCD im using:
https://www.waveshare.com/wiki/7inch_HDMI_LCD_(C)
https://www.waveshare.com/product/7inch-hdmi-lcd-c.htm

It’s touch controller is connected via additional USB to the Raspi. The USB connection is essential as it also powers the display. How can I check the responsiveness of the touch controller?

The difference to the Raspberry Pi Foundation 7" touchscreen you’re using is that it is connected via the display port, while the Waveshare uses the HDMI.

It’s a “stock” installation of volumio w/o any changes or additinal SW installed!

You could connect a mouse to one of the USB ports of the Pi and use that instead of touch to operate the UI. This way you should be able to compare the speed of response to clicks exectued with the mouse to clicks from the touch screens. You may enable the mouse pointer option on the Touch Display’s config page to have better visual control of the cursor’s position.

Yes, but display speed should not be much different.

That’s good :wink: OTOH, this leaves me without a concrete idea of what might be wrong…

To check disk space first, please post the output of

df -h

BTW: Is your Volumio system connected to the internet? And if so, is internet access possibly restricted, e.g. by a PiHole or the like?

First thing I did was activating the mouse pointer in the plugin settings and observe it’s behavior when moving my finger on the touch. The pointer follows instantly. Further on when selecting one of the three tabs at the bottom of the GUI they react immediatly by changing the colour.

Next I connected a mouse via USB. The mouse pointer is also following swiftly. No change in response of the GUI when operated by external mouse.

As the Raspi is connected via LAN (being shared with the USB ports) I disconnected the LAN cable and set up a WiFi connection. No changes. Still insufficient response time of the GUI.

→ I don’t consider the touch pannel controller causing the issue. From my observation it’s clearly the graphics that builds up slowly.

df -h

delivers:

Filesystem Size Used Avail Use% Mounted on
/dev/mmcblk0p2 2.2G 826M 1.3G 40% /imgpart
/dev/loop0 355M 355M 0 100% /static
overlay 27G 1.3G 25G 5% /
devtmpfs 471M 0 471M 0% /dev
tmpfs 485M 93M 393M 20% /dev/shm
tmpfs 485M 4.8M 481M 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 485M 0 485M 0% /sys/fs/cgroup
tmpfs 485M 0 485M 0% /var/spool/cups
tmpfs 485M 32K 485M 1% /tmp
tmpfs 20M 28K 20M 1% /var/log
tmpfs 485M 0 485M 0% /var/spool/cups/tmp
/dev/mmcblk0p1 61M 57M 3.4M 95% /boot
//192.168.178.24/music 2.7T 950G 1.8T 35% /mnt/NAS/DS213j
tmpfs 97M 0 97M 0% /run/user/1000

Volumio has internet access. There’s no such Software like PiHole etc. installed.

I agree.

df result looks normal.

What you could try next is stopping the Touch Display plugin, deleting the folder /data/volumiokiosk and starting the plugin again.

If that does not help you may uninstall and reinstall the Touch Display plugin.

Neither doesn’t help. I’m more and more convinced that this is a general performance issue!

I hooked up the Raspi to an ordinary LCD-TV by HDMI instead of the Wavshare. Same thing.

I discovered a much better response when directly accessing minimserver via the mediaserver button on the browse tab! So when the Raspi has to do the whole job (accessing it’s library, running the GUI in Chromium) it gets at it’s performance limit. And so far I didn’t playback any music yet!

Further on I observed the GUI becomming completely unresponsive over minutes from time to time.

I wonder why nobody else is repporting this.

Please consider that the Waveshare is operated at 1024x600@60Hz and HDMI, while the original Pi LCD is just 800x480 and DSI.

Maybe this is the game changer?!

This is quite possible. Chromium-browser can use up quite some resources - not only memory but also CPU related. Last weekend I ran top from Volumio’s CLI and watched it while navigating the music library which in my case resides on an SSD connected to the Pi by USB. It clearly showed CPU usage by chromium processes rising when using the search function or browsing artists and albums. But here high CPU load was not a permanent condition, but rather short-lived. The GUI was far from being unresponsive even more so for several minutes. Nevertheless, I took the trouble to replace the Chromium browser with Vivaldi, but I couldn’t notice any lower CPU usage of the browser, which wasn’t entirely unexpected since Vivaldi is based on Chromium.

Unfortunately I didn’t find the time to also check if the display’s resolution has a noticable impact on the performance. Did you have the chance to check this out?

gvolt, many thanks for the time and effort you’re spending on investigation of this issue. Highly appreciated!

I had another idea of a possible bottleneck. My setup is different to yours. All the files are stored on a NAS. No local storage attached.
I observed better responsibility when accessing the media server on the NAS (minimserver) directly. As the files itself are on the NAS volumio keeps a library on the µSD-card. I’m using a 32GB Transcend standard type. Maybe this is what causes the stuck? If I get hands on a top high speed µSD card I can check for an improvement.

The resolution of the Waveshare LCD is physically fixed to 1024*600@60Hz. I doesn’t work on other resolutions and even might get damaged if operated over longer times on the wrong resolution. This is why it is mandatory for the Waveshare to set the resolution in config.txt

Would be interesting. If you have another SD card already at hand flashing it with a fresh Volunio system could also be worth a try, even it’s not high speed. So you could at least rule out that the currently used card is faulty.

I did a fresh install with the same settings, plugins on a faster SD-Card UHS3 instead of UHS1. This works slightly better but didn’t solve the issue.

Scrolling/wiping through the artists, album libs still stucks when in thumbnail view.

Maybe I’ve to upgrade to an Raspi4?

Is this the case when accessing the minimserver through the “Media Server” button or when the location of your music library has been added as a network drive on Volumio’s “Sources” page?

How big is your music collection on the NAS and how is the speed when you access the minimserver from other devices with other software?

A Pi 4 will probably speed things up, but it’s hard to estimate by how much.

if you upgrade to pi4 i would say take a 5.1v 3 amp for your power that gives enough power for your screen.
( a orginal version of the power supply. usb-c )

Access by minimserver runs noticeably more smooth, than by mounted NAS share. My collection does have around 600-700 albums. No issues when accessing it with BubbleUPNP via tablet or smartphone.

What you could try is limiting the framebuffer size by adding e.g.

max_framebuffer_width=768
max_framebuffer_height=450

to /boot/userconfig.txt while leaving the hdmi_cvt setting as is. This should not pose any risk to the screen but will likely result in a blurry image of Volumio’s UI.

I did the proposed change. This improves the situation slightly, but on the other hand the GUI becomes upscaled (larger thumbnails, fonts, etc.)

BTW: I do not have the hdmi_cvt setting in my userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
max_framebuffer_width=768
max_framebuffer_height=450

#### RemotePi lirc setting below: do not alter ####
dtoverlay=gpio-ir,gpio_pin=17

Thanks for reporting back :slight_smile:

Yes, that’s why I was expecting the UI would become blurry.

Unfortunately ATM I have not idea how to speed your system up (apart from changing to Pi 4) :frowning:

Is Volumio and especially the Touchscreen plugin fully compatible with Raspi4?

On Pi 4 the backlight of HDMI displays might not be switched off when the screensaver is active. But IIRC when I tested it last time it worked: With hdmi_blanking=1 in “boot/userconfig.txt” the HDMI monitor I had connected powered off its backlight shortly after the plugin’s screensaver was activated.