Waveshare DSI LCD displays

Yes. Exactly

I have the exact same problem

Used to work perfectly with the patched drivers on older Volumio versions from wave share but now it doesn’t with the new way of doing things

Did you ever solve this? mine does the same

Hello

A small problem with Plugin “Touch Display 3.4.0” & “Waveshare DSI LCD 7.9inch”…no matter what I “touch”, it doesn’t work, either another window opens or the display doesn’t respond at all… Plugin current version…no other plugins installed at the moment (except “Now Playing”)

Otherwise the display works… (image)

On other systems (Bullseye, Bookworm, other Linux) the display works perfectly…

RaspiPi 4, 8GB, Eeprom is the latest version
Waveshare DSI LCD 7.9inch
USB stick Sandisk 512GB
LAN
Current Volumio 3.703 (newly installed)…

I had the same problem with the beta versions

Kind Regards

Camelot631

what is the output of

cat /boot/config.txt
cat /boot/userconfig.txt

If the touch is rotated by 90 degress, have a look here:

Hello @Weathen

I did it like this…

The results are attached… I installed the modified “waveshare_*.dtbo” and it is in the /boot/overlays directory

NO display entry in the “cmdline.txt” (video=DSI-1:400x1280e). I don’t know whether this additional entry is absolutely necessary… it has no effect anyway (I’ve tested it)…

The touch only works with difficulty and not where I put my finger/pen… and if it does, the wrong menu opens…

Results:

login as: volumio
volumio@192.168.1.157’s password:
┌──────────────────────────────────────────────────────────────────────────────────┐
│ • MobaXterm Personal Edition v24.1 • │
│ (SSH client, X server and network tools) │
│ │
│ ⮞ SSH session to volumio@192.168.1.157
│ • Direct SSH : ✓ │
│ • SSH compression : ✓ │
│ • SSH-browser : ✓ │
│ • X11-forwarding : ✗ (disabled or not supported by server) │
│ │
│ ⮞ For more info, ctrl+click on help or visit our website. │
└──────────────────────────────────────────────────────────────────────────────────────┘


/_ \ __
__ __ //\ \ __ __ ___ ___ /_\ ___
/\ /\ \ / __\\ \ \ /\ \/\ \ /' __ __\/\ \ / __
\ \ _/ |/\ \L\ \
\ _\ \ _\ /\ /\ /\ /\ /\ \L\
\ _
/ \ _//_\ _/\ _\ _\ _\ _/
// // // /////////___/

Free Audiophile Linux Music Player - Version 3.0

© 2015-2021 Michelangelo Guarise - Volumio Team - Volumio.org

Volumio Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Welcome to Volumio for Raspberry Pi (6.1.77-v7l+ armv7l)
volumio@volumio:~$ cat /boot/config.txt

DO NOT EDIT THIS FILE

APPLY CUSTOM PARAMETERS TO userconfig.txt

initramfs volumio.initrd
gpu_mem=128
gpu_mem_256=32
gpu_mem_512=32
gpu_mem_1024=128
max_usb_current=1
[pi5]
usb_max_current_enable=1
[all]
include volumioconfig.txt
include userconfig.txt

Volumio i2s setting below: do not alter

volumio@volumio:~$ cat /boot/userconfig.txt

Add your custom config.txt options to this file, which will be preserved during updates

dtoverlay=vc4-kms-v3d
#DSI1 Use
#dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch
dtoverlay=vc4-kms-dsi-waveshare-panel-fixed,7_9_inch
#DSI0 Use
#dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch,dsi0

Touch Display rotation setting below: do not alter

display_lcd_rotate=1
display_hdmi_rotate=1

Uncomment some or all of these to enable the optional hardware interfaces

dtparam=i2c_arm=on
dtparam=i2s=on
dtparam=spi=on

[all]
force_turbo=1
enable_uart=1

#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
over_voltage=6
arm_freq=2000
gpu_freq=750
volumio@volumio:~$

Kind regards

Camelot631

Small addendum…

I also tested this with a “Waveshare DSL LCD 7inch (C)”…

Works perfectly…

I could not get the Waveshare 7-inch display to work with Volumio and pi 5, the display works perfectly if I connect it to a Pi 3 with the same card . can someone help me in configuring it?

please show the ouput of:
cat /boot/userconfig.txt

And read this topic, it will help you moving forward.

Does the display show Volumio’s boot screen and after that a login prompt?

Please check if the DSI cable is connected properly.

Hi @gvolt

Need your help again.
Bought a crappy LCD from Amazon for testing, but can’t get it to work.
All have so far is either full white or full black.

Display in question:

Instructions: K-0403 - 52Pi Wiki

git clone https://github.com/lcdgogo/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show
sudo ./MHS35-show

Since this will break volumio as it will replace config.txt, I did modify the script as follows:

#!/bin/bash

if [ -f /etc/X11/xorg.conf.d/40-libinput.conf ]; then
sudo rm -rf /etc/X11/xorg.conf.d/40-libinput.conf
fi
if [ ! -d /etc/X11/xorg.conf.d ]; then
sudo mkdir -p /etc/X11/xorg.conf.d
fi
sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/
sudo cp ./usr/mhs35-overlay.dtb /boot/overlays/mhs35.dtbo


sudo echo "dtparam=i2c_arm=on" >> ./boot/userconfig.txt
sudo echo "dtparam=spi=on" >> ./boot/userconfig.txt
sudo echo "enable_uart=1" >> ./boot/userconfig.txt
sudo echo "dtoverlay=mhs35:rotate=90" >> ./boot/userconfig.txt
sudo echo "hdmi_group=2" >> ./boot/userconfig.txt
sudo echo "hdmi_mode=1" >> ./boot/userconfig.txt
sudo echo "hdmi_mode=87" >> ./boot/userconfig.txt
sudo echo "hdmi_cvt 480 320 60 6 0 0 0" >> ./boot/userconfig.txt
sudo echo "hdmi_drive=2" >> ./boot/userconfig.txt


sudo cp -rf ./usr/99-calibration.conf-mhs35-90  /etc/X11/xorg.conf.d/99-calibration.conf
sudo cp -rf ./usr/99-fbturbo.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf

#sudo cp ./usr/inittab /etc/
#sudo cp ./boot/config-mhs35.txt /boot/config.txt
sudo touch ./.have_installed
echo "gpio:resistance:mhs35:90:480:320" > ./.have_installed

sudo apt-get update
#FBCP install
wget --spider -q -o /dev/null --tries=1 -T 10 https://cmake.org/
if [ $? -eq 0 ]; then
sudo apt-get install cmake -y 2> error_output.txt
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "^E:" ./error_output.txt
type cmake > /dev/null 2>&1
if [ $? -eq 0 ]; then
sudo rm -rf rpi-fbcp
wget --spider -q -o /dev/null --tries=1 -T 10 https://github.com
if [ $? -eq 0 ]; then
sudo git clone https://github.com/tasanakorn/rpi-fbcp
if [ $? -ne 0 ]; then
echo "download fbcp failed, copy native fbcp!!!"
sudo cp -r ./usr/rpi-fbcp .
fi
else
echo "bad network, copy native fbcp!!!"
sudo cp -r ./usr/rpi-fbcp .
fi
sudo mkdir ./rpi-fbcp/build
cd ./rpi-fbcp/build/
sudo cmake ..
sudo make
sudo install fbcp /usr/local/bin/fbcp
cd - > /dev/null
type fbcp > /dev/null 2>&1
if [ $? -eq 0 ]; then
sudo cp -rf ./usr/99-fbturbo-fbcp.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf
sudo cp -rf ./etc/rc.local /etc/rc.local
fi
else
echo "install cmake error!!!!"
fi
else
echo "bad network, can't install cmake!!!"
fi

sudo cp -rf ./usr/99-fbturbo-fbcp.conf  /usr/share/X11/xorg.conf.d/99-fbturbo.conf

#evdev install
#nodeplatform=`uname -n`
#kernel=`uname -r`
version=`uname -v`
#if test "$nodeplatform" = "raspberrypi";then
#echo "this is raspberrypi kernel"
input_result=0
version=${version##* }
#version=${version#*#}
echo $version
if test $version -lt 2017;then
echo "reboot"
else
echo "need to update touch configuration"
wget --spider -q -o /dev/null --tries=1 -T 10 http://mirrors.zju.edu.cn/raspbian/raspbian
if [ $? -ne 0 ]; then
input_result=1
else
sudo apt-get install xserver-xorg-input-evdev  2> error_output.txt
dpkg -l | grep xserver-xorg-input-evdev > /dev/null 2>&1
if [ $? -ne 0 ]; then
input_result=1
fi
fi
if [ $input_result -eq 1 ]; then 
if [ $hardware_arch -eq 32 ]; then
sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-1+b1_armhf.deb 2> error_output.txt
elif [ $hardware_arch -eq 64 ]; then
sudo dpkg -i -B ./xserver-xorg-input-evdev_1%3a2.10.6-2_arm64.deb 2> error_output.txt
fi
fi
result=`cat ./error_output.txt`
echo -e "\033[31m$result\033[0m"
grep -q "error:" ./error_output.txt && exit
sudo cp -rf /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf
#echo "reboot"
#else
#echo "this is not raspberrypi kernel, no need to update touch configure, reboot"
fi

echo "reboot now"
#sudo reboot

And ran it after the installation of “Touch Display”

user-config.txt:

# Add your custom config.txt options to this file, which will be preserved during updates

dtparam=i2c_arm=on
dtparam=spi=on
enable_uart=1
dtoverlay=mhs35:rotate=90
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2

/boot/config.txt:

### DO NOT EDIT THIS FILE ###
### APPLY CUSTOM PARAMETERS TO userconfig.txt ###
initramfs volumio.initrd
#GPU_MEM=128
#GPU_MEM_256=32
#GPU_MEM_512=32
#GPU_MEM_1024=128
max_usb_current=1
[pi5]
usb_max_current_enable=1
[all]
include volumioconfig.txt
include userconfig.txt

#### Touch Display gpu_mem setting below: do not alter ####
gpu_mem=128

cat /var/log/Xorg.0.log:

volumio@rpi4-dsi:~$ cat /var/log/Xorg.0.log
[    58.750]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[    58.750] Build Operating System: Linux 5.4.0-109-generic armv8l Raspbian
[    58.750] Current Operating System: Linux rpi4-dsi 6.1.69-v7l+ #1710 SMP Thu Dec 21 13:17:38 GMT 2023 armv7l
[    58.750] Kernel command line: coherent_pool=1M 8250.nr_uarts=1 snd_bcm2835.enable_headphones=0 snd_bcm2835.enable_headphones=1 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=480 bcm2708_fb.fbheight=320 bcm2708_fb.fbswap=1 smsc95xx.macaddr=E4:5F:01:24:81:F9 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  splash plymouth.ignore-serial-consoles dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 quiet console=ttyS0,115200 console=tty1 imgpart=UUID=bd25db3a-79a0-4347-a360-dd9983daa4a1 imgfile=/volumio_current.sqsh bootpart=UUID=CB9F-1CDF datapart=UUID=4c0a45e1-1ede-46ab-add4-24c23a168fb5 uuidconfig=cmdline.txt pcie_aspm=off pci=pcie_bus_safe rootwait bootdelay=7 logo.nologo vt.global_cursor_default=0 net.ifnames=0 snd-bcm2835.enable_compat_alsa= snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 loglevel=0 nodebug use_kmsg=no
[    58.751] Build Date: 04 April 2023  07:50:56AM
[    58.751] xorg-server 2:1.20.4-1+rpt4+deb10u9 (https://www.debian.org/support)
[    58.751] Current version of pixman: 0.36.0
[    58.751]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    58.751] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    58.751] (==) Log file: "/var/log/Xorg.0.log", Time: Sat Jul 13 22:43:06 2024
[    58.755] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    58.755] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    58.762] (==) No Layout section.  Using the first Screen section.
[    58.762] (==) No screen section available. Using defaults.
[    58.762] (**) |-->Screen "Default Screen Section" (0)
[    58.762] (**) |   |-->Monitor "<default monitor>"
[    58.766] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    58.766] (**) |   |-->Device "Allwinner A10/A13/A20 FBDEV"
[    58.766] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    58.766] (==) Automatically adding devices
[    58.766] (==) Automatically enabling devices
[    58.766] (==) Automatically adding GPU devices
[    58.770] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    58.774] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    58.774]    Entry deleted from font path.
[    58.779] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/100dpi/:unscaled,
        /usr/share/fonts/X11/75dpi/:unscaled,
        /usr/share/fonts/X11/Type1,
        /usr/share/fonts/X11/100dpi,
        /usr/share/fonts/X11/75dpi,
        built-ins
[    58.779] (==) ModulePath set to "/usr/lib/xorg/modules"
[    58.779] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    58.779] (II) Loader magic: 0x1fdf80
[    58.779] (II) Module ABI versions:
[    58.779]    X.Org ANSI C Emulation: 0.4
[    58.779]    X.Org Video Driver: 24.0
[    58.779]    X.Org XInput driver : 24.1
[    58.779]    X.Org Server Extension : 10.0
[    58.781] (--) using VT number 2

[    58.781] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    58.782] (II) no primary bus or device found
[    58.782] (II) LoadModule: "glx"
[    58.783] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    58.807] (II) Module glx: vendor="X.Org Foundation"
[    58.807]    compiled for 1.20.4, module version = 1.0.0
[    58.807]    ABI class: X.Org Server Extension, version 10.0
[    58.808] (II) LoadModule: "fbturbo"
[    58.809] (WW) Warning, couldn't open module fbturbo
[    58.809] (EE) Failed to load module "fbturbo" (module does not exist, 0)
[    58.809] (EE) No drivers available.
[    58.809] (EE)
Fatal server error:
[    58.809] (EE) no screens found(EE)
[    58.809] (EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
[    58.809] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[    58.809] (EE)
[    58.809] (EE) Server terminated with error (1). Closing log file.

volumio@rpi4-dsi:~$ systemctl status -l volumio-kiosk
● volumio-kiosk.service - Volumio Kiosk
   Loaded: loaded (/lib/systemd/system/volumio-kiosk.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2024-07-13 22:43:21 CEST; 3min 21s ago
  Process: 1392 ExecStart=/usr/bin/startx /etc/X11/Xsession /opt/volumiokiosk.sh -- -nocursor (code=exited, status=1/FAILURE)
 Main PID: 1392 (code=exited, status=1/FAILURE)

Jul 13 22:43:06 rpi4-dsi startx[1392]:          at http://wiki.x.org
Jul 13 22:43:06 rpi4-dsi startx[1392]:  for help.
Jul 13 22:43:06 rpi4-dsi startx[1392]: (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
Jul 13 22:43:06 rpi4-dsi startx[1392]: (EE)
Jul 13 22:43:06 rpi4-dsi startx[1392]: (EE) Server terminated with error (1). Closing log file.
Jul 13 22:43:21 rpi4-dsi startx[1392]: xinit: giving up
Jul 13 22:43:21 rpi4-dsi startx[1392]: xinit: unable to connect to X server: Connection refused
Jul 13 22:43:21 rpi4-dsi startx[1392]: xinit: server error
Jul 13 22:43:21 rpi4-dsi systemd[1]: volumio-kiosk.service: Main process exited, code=exited, status=1/FAILURE
Jul 13 22:43:21 rpi4-dsi systemd[1]: volumio-kiosk.service: Failed with result 'exit-code'.

Only need visuals, touch screen is not mandatory.

image

Only during boot I see a fast flash of the Volumio logo.

If the linked wiki is correct you probably are using the wrong overlay. AFAIK “tft35a” is needed instead of “mhs35”. For non-Pi5 systems the following steps worked in the past:

sudo apt-get -y install xserver-xorg-video-fbturbo

sudo apt-get -y install xserver-xorg-input-evdev

sudo cp /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf

sudo curl -L https://github.com/goodtft/LCD-show/raw/master/usr/tft35a-overlay.dtb -o /boot/overlays/tft35a.dtbo

sudo curl -L https://raw.githubusercontent.com/goodtft/LCD-show/master/usr/99-calibration.conf-35-90 -o /etc/X11/xorg.conf.d/99-calibration.conf

sudo curl -L https://raw.githubusercontent.com/goodtft/LCD-show/master/usr/99-fbturbo.conf -o /usr/share/X11/xorg.conf.d/99-fbturbo.conf

cat >> /boot/userconfig.txt <<EOL

dtparam=spi=on
dtoverlay=tft35a
EOL

I shows a little more life, the error is gone and get a white square moving fast form bottom to top.
I think it;s smarter to start from a factory reset.

The wiki seems the correct one, as it got the same instructions as the Chinese paper that came with it.
image

Hm, the linked wiki under “Install LCD driver” contains

sudo rm -rf LCD-show
git clone https://github.com/goodtft/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show/
sudo ./LCD35-show

and “LCD35-show” refers to “tft35a” overlay. :thinking:

BTW: What’s the Pi model in use?

rpi4-8gb.

it’s confusing,
The paper shows:

git clone https://github.com/lcdgogo/LCD-show.git
chmod -R 755 LCD-show
cd LCD-show
sudo ./MHS35-show

and for some reason all kind of HDMI settings are added to config.txt for a DSI screen…

I should have learned by now to stay away from this cheap stuff…

Indeed!

Before starting from scratch, you may try executing

sudo apt-get -y install xserver-xorg-video-fbturbo

for the display to work and

sudo apt-get -y install xserver-xorg-input-evdev

sudo cp /usr/share/X11/xorg.conf.d/10-evdev.conf /usr/share/X11/xorg.conf.d/45-evdev.conf

for the touch screen.

too late…
Will do it for my 2nd run, mid way installing the touch display and I will leave the LCD-SHow crap out of the equation.

:laughing: While we’re at it, the entries

enable_uart=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 480 320 60 6 0 0 0
hdmi_drive=2

the “MHS35-show” script wants to write to “/boot/config.txt” are neither necessary for the display nor the touch screen - but at least they would not prevent the display from functioning and are just superfluous …

Had to start from scratch again, the plugin got looping between install and uninstall. (network hiccup broken packages)
I will leave everything else out for now, just the thinsg you gave me. Once there is light I can do some additional tuning.

Only ran the first set of instructions and there is light.
Need to figure out how to rotate the thing.
Seems it accepts, dtoverlay=tft35a:rotate=90
Darn, he did it again.

image