Waveshare DSI LCD displays

Hi, Guys!

As most of you know, “standard resolution” 800x480 Waveshare DSI displays work great with Volumio. I have tested 7" and 5" versions both work straight from the box.

But what about 1280x400 and 1024x600 ones? Does anyone knows how to properly setup them?

I had no luck making them work. I tried installing driver, copying overlays and some lines from config.txt from working Raspberry Pi OS version, but so far - no result.

Any advises or possible solutions would be highly appreciated. :slight_smile:

1 Like

nano /boot/userconfig.txt

and add the following lines

hdmi_group=2
hdmi_mode=87
hdmi_timings=400 0 100 10 140 1280 10 20 20 2 0 0 0 60 0 43000000 3
hdmi_blanking=1

@Aiello If I understand correctly @Lyzards looks for information about making two Waveshare DSI displays work. Assuming @Lyzards refers to this and this display the settings in post #2 won’t help.

@Lyzards:
For the 7inch DSI LCD (C) you find setup instructions here. Be aware that the instructions in the link are for a Pi 4. In case you want to install on Pi 3 the URLs in the curl commands have to be adapted.

If you have already tried to install drivers etc. I recommend to start from scratch i.e.with a freshly installed Volumio system.

Regarding the 7.9inch DSI LCD as far as I can see there is currently no driver fitting the kernel version (5.10.92) Volumio 3.324 uses available from Waveshare.

1 Like

@gvolt , these displays exactly and you guessed right - I am using Pi 4.

OK, that it is all about kernel version…

Will try to get 7" display working. Pretty sure it will (as it did for other members).

Thanks on noting to start studying that script. :slight_smile:

@gvolt
Your instruction is correct, however, in userconfig.txt one more line should be added:
dtoverlay=vc4-kms-v3d

After adding, it worked for me.

1 Like

Congrats and thanks for reporting back.

So without adding dtoverlay=vc4-kms-v3d the display did not work? I ask, because I don’t own that display and @keko123 didn’t report he needed that entry in his thread.

@keko123 you also had to add dtoverlay=vc4-kms-v3d to your “/boot/userconfig.txt”?

@gvolt Nope, without it didn’t even turn back-light on…
I double checked by commenting it out.

I found it in the script (line 42), that’s why I added:

Thanks, good to know.

I know the script (and line 42 :wink: ) but wasn’t sure if adding that particular overlay was really necessary since there have been some installation scripts (for other displays) in Wavshare’s LCD-show repo putting unnecessary entries to config files…

hello @gvolt, thank you for this. I have unfortunately bought the 7.9inch DSI LCD before reading this and have been tinkering to get it to work without any success, so I believe you’ve confirmed it’s going to be hard to get working.

From what I understand my only options are to try to get WaveShare to build more drivers (for the specific kernel that Volumio currently uses) or that Volumio changes its kernel to suit the screen.

I’ve reached out to WaveShare and hope I hear back soon. Unfortunately their drivers are not open source.

For volumio, I’ve looked into making a custom build that uses kernel 5.10.103 as it’s the closest to the current volumio version. However I’m trying to use docker to do the build and it fails when trying to mount to chroot.

I just wanna check before putting more time into it, is building a custom volumio-os at kernel version 5.10.103 feasible to get this to work? I’m hoping based on this commit that it may be as simple as adding a hash for 5.10.103 on line 146 and then changing the value of KERNEL_VERSION to 5.10.103, and proceeding with a usual build.

What are my chances of success?

1 Like

Very much interested if it works @Mark_Bastard, as I have same display laying around.
I wont have time to tinker around with this in near future, but, please, let me know, if you make some progress. :slight_smile:

1 Like

I’m building it right now using the pi itself rather than docker. If it works I’ll upload the img and link it for you.

@Tomala also contacted Waveshare. Don’t know if he has heard back yet.

I have not yet built Volumio myself, so unfortunately I can contribute little to this. But if you manage to create a runnable Volumio system with kernel 5.10.103, I would expect Waveshare’s drivers for the 7.9" DSI display made for that kernel version would make the display work.

1 Like

Excellent, just a progress update. I built a custom image and installed / booted successfully. I then installed the drivers as per the instructions in the waveshare wiki https://www.waveshare.com/wiki/7.9inch_DSI_LCD and rebooted. The screen actually started and is showing the CLI login screen! I haven’t installed the volumio plugin yet so I’ll give that a go, but it looks like the hard part is done!

Perhaps I celebrated too early, the volumio doesn’t have an area to login to ‘my volumio’ and I need to do that to be able to install the plugin. Sigh…

Okay, I have some success!

Waveshare ended up getting back to me very quickly and provided me a zip file with drivers for the kernel that Volumio uses. I used SCP to transfer them onto volumio, then installed them following the guide here: https://www.waveshare.com/wiki/7.9inch_DSI_LCD

The rotation didn’t work however. The only way I’ve been able to rotate it is to SSH in once it’s already booted and run:

export DISPLAY=:0
xrandr --output DSI-1 --rotate left

However this doesn’t persist on a reboot. Putting it in config.txt or userconfig.txt isn’t working, likely because the command runs too soon if it’s in that file. Does anyone know where the touch screen plugin writes its commands to rotate, what they are, and when they’re run?

I have asked the permission of Waveshare to share the drivers with you guys. If they approve I’ll upload them here.

2 Likes

Then put this in a shell script which you can call as a startup service?
(I expect it will works like given below, but did it out the top of my head, untested)

mkdir ~/scripts
cd scripts
nano startuplcd.sh

Copy Paste:

#!/bin/bash
export DISPLAY=:0
xrandr --output DSI-1 --rotate left

chmod 777 startuplcd.sh

Create startup service
sudo nano /lib/systemd/system/startuplcd.service

Copy Paste:

[Unit]
Description=startuplcd
After=network-online.target
Wants=network-online.target

[Service]
ExecStart=/bin/bash /home/volumio/scripts/startuplcd.sh

[Install]
WantedBy=multi-user.target
sudo chmod 644 /lib/systemd/system/startuplcd.service
sudo systemctl daemon-reload
sudo systemctl enable startuplcd.service

Reboot and see the magic happen :joy:

These lines are optional, i put them in al off my services as I don’t want anything to happen when the network is not connected yet.:

After=network-online.target
Wants=network-online.target
1 Like

Thanks, I’ll give that a go

Please report back if it did the trick

1 Like

Waveshare replied for email:
I’m sorry that the DSI LCD is not compatible with the Volumio display.
How about using HDMI display instead?
I brought 7.9" HDMI and currently waiting for delivery. Waveshare offered to me cool discount. :sunglasses:
Folks, if you get DSI to work with Volumio I will probably try it and then HDMI display I will give to my son for his desktop.

@Tomala I got it working, see above. If they dont give me permission to share the drivers broadly I could at least share them privately if you DM me