[PLUGIN] Touch Display

Please try adding

framebuffer_aspect=-1

to the framebuffer settings in /boot/userconfig.txt.

I cannot see any difference.

Strange thing is, that whatever I use within (1-6)
hdmi_cvt 1024 600 60 6 0 0 0
there is no change…? Might there be any additional .cfg overruling these settings? But why does the resolution change perfectly?

Does leaving out the aspect ratio value in hdmi_cvt, i.e. using

hdmi_cvt 1024 600 60

possibly help?

No, not at all. Im really confused by the fact, that changing the ratio value doesn’t change a thing. I also tried

hdmi_ignore_edid=0xa5000080

but no success. Im done for today. Thank you so much for your patience.

Edit: Ok one more thing. The HDMI status does change, but the actual result does not:

hdmi_cvt 1024 600 60 6 0 0 0
state 0x6 [DVI DMT (88) RGB full 16:9], 1024x600 @ 60.00Hz, progressive

hdmi_cvt 1024 600 60 2 0 0 0
state 0x6 [DVI DMT (88) RGB full 14:9], 1024x600 @ 60.00Hz, progressive

hdmi_cvt 1024 600 60 1 0 0 0
state 0x6 [DVI DMT (87) RGB full 4:3], 1024x600 @ 60.00Hz, progressive

All look the same. (No worries, I tried hdmi_mode=87 and 88)

It seems to me as if the GUI does only react to the resolution despite any aspect ratio.

Found one weird behaviour, the rotation for the touch part.
Volumio: V3.153
Touch-Display: V3.0.1 & 3.3.1
Screen: using the waveshare 7.9inch HDMI LCD screen.

Another weird behavior is the display rotating.
For me I need to rotate the display 270 deg., so the display is correct, however the the touchscreen get stuck at 90 deg. I can’t modify “95-touch_display-plugin.conf” as it gets overwritten by the plugin on every reboot. So I needed to create a 2nd file, to add the 180 deg for the touch screen, so the total rotation (summary of both files) is correct to operate the touch screen.

/etc/X11/xorg.conf.d/40-libinput.conf:

Section “InputClass”
Identifier “libinput touchscreen catchall”
MatchIsTouchscreen “on”
Option “CalibrationMatrix” “-1 0 1 0 -1 1 0 0 1”
MatchDevicePath “/dev/input/event*”
Driver “libinput”
EndSection

With rotation set to 270 deg. on the Touch Display’s config page please post the results of

cat /etc/X11/xorg.conf.d/95-touch_display-plugin.conf

and

cat /var/log/Xorg.0.log

Also please post the output of

cat /boot/config,txt

and

cat /boot/userconfig,txt

If you have this display there should be a button on the backside labeled “Rotate Touch”. If you use this, does the effect survive powering down?

Pressing the button doesn’t do anything.

Did you press the button 5 seconds? The wiki states

Rotate by button

In some special systems, when you cannot rotate by modifying the software, you can press and hold the “Rotate Touch” button for 5 seconds to rotate touch. And you may need to test multi times for the correct orientation.

/boot/userconfig.txt
max_usb_current=1
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
display_rotate=3

Touch Display rotation setting below: do not alter

display_lcd_rotate=3
display_hdmi_rotate=3

cat /boot/config,txt
initramfs volumio.initrd
#GPU_MEM=32
max_usb_current=1
dtparam=audio=on
audio_pwm_mode=2
dtparam=i2c_arm=on
disable_splash=1
hdmi_force_hotplug=1
force_eeprom_read=0

include userconfig.txt

Touch Display gpu_mem setting below: do not alter

gpu_mem=48

Section “InputClass”
Identifier “Touch rotation”
Option “TransformationMatrix” “0 -1 1 1 0 0 0 0 1”
MatchIsTouchscreen “on”
MatchDevicePath “/dev/input/event*”
MatchDriver “libinput|evdev”
EndSection

[ 661.931]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[ 661.931] Build Operating System: Linux 5.10.17-v8+ aarch64 Raspbian
[ 661.931] Current Operating System: Linux volumio 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l
[ 661.931] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=1280 bcm2708_fb.fbheight=400 bcm2708_fb.fbswap=1 smsc95xx.macaddr=DC:A6:32:FC:A6:42 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=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh rootwait bootdelay=5 elevator=noop logo.nologo vt.global_cursor_default=0 net.ifnames=0 snd-bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 loglevel=0
[ 661.931] Build Date: 19 April 2021 03:23:36PM
[ 661.931] xorg-server 2:1.20.4-1+rpt3+deb10u3 (Debian -- Support)
[ 661.931] Current version of pixman: 0.36.0
[ 661.931] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 661.931] Markers: (–) probed, () from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 661.932] (==) Log file: “/var/log/Xorg.0.log”, Time: Thu Nov 25 23:46:58 2021
[ 661.932] (==) Using config directory: “/etc/X11/xorg.conf.d”
[ 661.932] (==) Using system config directory “/usr/share/X11/xorg.conf.d”
[ 661.933] (==) No Layout section. Using the first Screen section.
[ 661.933] (==) No screen section available. Using defaults.
[ 661.933] (
) |–>Screen “Default Screen Section” (0)
[ 661.933] (**) | |–>Monitor “”
[ 661.933] (==) No monitor specified for screen “Default Screen Section”.
Using a default monitor configuration.
[ 661.933] (==) Automatically adding devices
[ 661.933] (==) Automatically enabling devices
[ 661.933] (==) Automatically adding GPU devices
[ 661.933] (==) Max clients allowed: 256, resource mask: 0x1fffff
[ 661.934] (WW) The directory “/usr/share/fonts/X11/cyrillic” does not exist.
[ 661.934] Entry deleted from font path.
[ 661.934] (==) 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
[ 661.934] (==) ModulePath set to “/usr/lib/xorg/modules”
[ 661.934] (II) The server relies on udev to provide the list of input devices.
If no devices become available, reconfigure udev or disable AutoAddDevices.
[ 661.934] (II) Loader magic: 0x1fdf80
[ 661.934] (II) Module ABI versions:
[ 661.934] X.Org ANSI C Emulation: 0.4
[ 661.934] X.Org Video Driver: 24.0
[ 661.934] X.Org XInput driver : 24.1
[ 661.934] X.Org Server Extension : 10.0
[ 661.936] (–) using VT number 2

[ 661.936] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[ 661.937] (II) no primary bus or device found
[ 661.937] (II) LoadModule: “glx”
[ 661.937] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[ 661.940] (II) Module glx: vendor=“X.Org Foundation”
[ 661.940] compiled for 1.20.4, module version = 1.0.0
[ 661.940] ABI class: X.Org Server Extension, version 10.0
[ 661.940] (==) Matched modesetting as autoconfigured driver 0
[ 661.940] (==) Matched fbdev as autoconfigured driver 1
[ 661.940] (==) Assigned the driver to the xf86ConfigLayout
[ 661.940] (II) LoadModule: “modesetting”
[ 661.941] (II) Loading /usr/lib/xorg/modules/drivers/modesetting_drv.so
[ 661.941] (II) Module modesetting: vendor=“X.Org Foundation”
[ 661.941] compiled for 1.20.4, module version = 1.20.4
[ 661.941] Module class: X.Org Video Driver
[ 661.941] ABI class: X.Org Video Driver, version 24.0
[ 661.941] (II) LoadModule: “fbdev”
[ 661.941] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 661.942] (II) Module fbdev: vendor=“X.Org Foundation”
[ 661.942] compiled for 1.20.3, module version = 0.5.0
[ 661.942] Module class: X.Org Video Driver
[ 661.942] ABI class: X.Org Video Driver, version 24.0
[ 661.942] (II) modesetting: Driver for Modesetting Kernel Drivers: kms
[ 661.942] (II) FBDEV: driver for framebuffer: fbdev
[ 661.946] (WW) Falling back to old probe method for modesetting
[ 661.946] (EE) open /dev/dri/card0: No such file or directory
[ 661.946] (WW) Falling back to old probe method for fbdev
[ 661.946] (II) Loading sub module “fbdevhw”
[ 661.946] (II) LoadModule: “fbdevhw”
[ 661.947] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 661.947] (II) Module fbdevhw: vendor=“X.Org Foundation”
[ 661.947] compiled for 1.20.4, module version = 0.0.2
[ 661.947] ABI class: X.Org Video Driver, version 24.0
[ 661.947] (II) FBDEV(0): using default device
[ 661.947] (II) FBDEV(0): Creating default Display subsection in Screen section
“Default Screen Section” for depth/fbbpp 24/32
[ 661.947] (==) FBDEV(0): Depth 24, (==) framebuffer bpp 32
[ 661.947] (==) FBDEV(0): RGB weight 888
[ 661.947] (==) FBDEV(0): Default visual is TrueColor
[ 661.947] (==) FBDEV(0): Using gamma correction (1.0, 1.0, 1.0)
[ 661.947] (II) FBDEV(0): hardware: BCM2708 FB (video memory: 2000kB)
[ 661.947] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[ 661.947] (II) FBDEV(0): checking modes against framebuffer device…
[ 661.947] (II) FBDEV(0): checking modes against monitor…
[ 661.947] (II) FBDEV(0): Virtual size is 1280x400 (pitch 1280)
[ 661.947] () FBDEV(0): Built-in mode “current”
[ 661.947] (==) FBDEV(0): DPI set to (96, 96)
[ 661.947] (II) Loading sub module “fb”
[ 661.947] (II) LoadModule: “fb”
[ 661.948] (II) Loading /usr/lib/xorg/modules/libfb.so
[ 661.948] (II) Module fb: vendor=“X.Org Foundation”
[ 661.948] compiled for 1.20.4, module version = 1.0.0
[ 661.948] ABI class: X.Org ANSI C Emulation, version 0.4
[ 661.948] (
) FBDEV(0): using shadow framebuffer
[ 661.948] (II) Loading sub module “shadow”
[ 661.948] (II) LoadModule: “shadow”
[ 661.949] (II) Loading /usr/lib/xorg/modules/libshadow.so
[ 661.950] (II) Module shadow: vendor=“X.Org Foundation”
[ 661.950] compiled for 1.20.4, module version = 1.1.0
[ 661.950] ABI class: X.Org ANSI C Emulation, version 0.4
[ 661.950] (II) UnloadModule: “modesetting”
[ 661.950] (II) Unloading modesetting
[ 661.952] (==) FBDEV(0): Backing store enabled
[ 661.952] (==) FBDEV(0): DPMS enabled
[ 661.952] (II) Initializing extension Generic Event Extension
[ 661.953] (II) Initializing extension SHAPE
[ 661.954] (II) Initializing extension MIT-SHM
[ 661.956] (II) Initializing extension XInputExtension
[ 661.956] (II) Initializing extension XTEST
[ 661.957] (II) Initializing extension BIG-REQUESTS
[ 661.958] (II) Initializing extension SYNC
[ 661.958] (II) Initializing extension XKEYBOARD
[ 661.959] (II) Initializing extension XC-MISC
[ 661.960] (II) Initializing extension SECURITY
[ 661.961] (II) Initializing extension XFIXES
[ 661.961] (II) Initializing extension RENDER
[ 661.962] (II) Initializing extension RANDR
[ 661.963] (II) Initializing extension COMPOSITE
[ 661.964] (II) Initializing extension DAMAGE
[ 661.964] (II) Initializing extension MIT-SCREEN-SAVER
[ 661.965] (II) Initializing extension DOUBLE-BUFFER
[ 661.965] (II) Initializing extension RECORD
[ 661.966] (II) Initializing extension DPMS
[ 661.967] (II) Initializing extension Present
[ 661.967] (II) Initializing extension DRI3
[ 661.967] (II) Initializing extension X-Resource
[ 661.968] (II) Initializing extension XVideo
[ 661.968] (II) Initializing extension XVideo-MotionCompensation
[ 661.968] (II) Initializing extension SELinux
[ 661.968] (II) SELinux: Disabled on system
[ 661.968] (II) Initializing extension GLX
[ 661.969] (II) AIGLX: Screen 0 is not DRI2 capable
[ 662.063] (II) IGLX: Loaded and initialized swrast
[ 662.063] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[ 662.063] (II) Initializing extension XFree86-VidModeExtension
[ 662.063] (II) Initializing extension XFree86-DGA
[ 662.064] (II) Initializing extension XFree86-DRI
[ 662.064] (II) Initializing extension DRI2
[ 662.200] (II) config/udev: Adding input device Pro-Ject Pre Box S2 Digital (/dev/input/event0)
[ 662.200] () Pro-Ject Pre Box S2 Digital: Applying InputClass “libinput keyboard catchall”
[ 662.200] (
) Pro-Ject Pre Box S2 Digital: Applying InputClass “libinput keyboard catchall”
[ 662.201] (II) LoadModule: “libinput”
[ 662.201] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[ 662.211] (II) Module libinput: vendor=“X.Org Foundation”
[ 662.211] compiled for 1.20.3, module version = 0.28.2
[ 662.211] Module class: X.Org XInput Driver
[ 662.211] ABI class: X.Org XInput driver, version 24.1
[ 662.211] (II) Using input driver ‘libinput’ for ‘Pro-Ject Pre Box S2 Digital’
[ 662.211] () Pro-Ject Pre Box S2 Digital: always reports core events
[ 662.211] (
) Option “Device” “/dev/input/event0”
[ 662.212] () Option “_source” “server/udev”
[ 662.222] (II) event0 - Pro-Ject Pre Box S2 Digital: is tagged by udev as: Keyboard
[ 662.222] (II) event0 - Pro-Ject Pre Box S2 Digital: device is a keyboard
[ 662.223] (II) event0 - Pro-Ject Pre Box S2 Digital: device removed
[ 662.271] (
) Option “config_info” “udev:/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.1/1-1.1:1.3/0003:2772:0230.0001/input/input0/event0”
[ 662.271] (II) XINPUT: Adding extended input device “Pro-Ject Pre Box S2 Digital” (type: KEYBOARD, id 6)
[ 662.271] () Option “xkb_model” “pc105”
[ 662.271] (
) Option “xkb_layout” “us”
[ 662.279] (II) event0 - Pro-Ject Pre Box S2 Digital: is tagged by udev as: Keyboard
[ 662.279] (II) event0 - Pro-Ject Pre Box S2 Digital: device is a keyboard
[ 662.283] (II) config/udev: Adding input device WaveShare WaveShare (/dev/input/event1)
[ 662.283] () WaveShare WaveShare: Applying InputClass “libinput touchscreen catchall”
[ 662.283] (
) WaveShare WaveShare: Applying InputClass “libinput touchscreen catchall”
[ 662.283] () WaveShare WaveShare: Applying InputClass “Touch rotation”
[ 662.283] (II) Using input driver ‘libinput’ for ‘WaveShare WaveShare’
[ 662.283] (
) WaveShare WaveShare: always reports core events
[ 662.283] () Option “Device” “/dev/input/event1”
[ 662.283] (
) Option “_source” “server/udev”
[ 662.293] (II) event1 - WaveShare WaveShare: is tagged by udev as: Touchscreen
[ 662.293] (II) event1 - WaveShare WaveShare: device is a touch device
[ 662.293] (II) event1 - WaveShare WaveShare: device removed
[ 662.340] () Option “CalibrationMatrix” “-1 0 1 0 -1 1 0 0 1”
[ 662.340] (
) Option “config_info” “udev:/sys/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:0712:0009.0002/input/input2/event1”
[ 662.340] (II) XINPUT: Adding extended input device “WaveShare WaveShare” (type: TOUCHSCREEN, id 7)
[ 662.340] () Option “AccelerationScheme” “none”
[ 662.340] (
) WaveShare WaveShare: (accel) selected scheme none/0
[ 662.340] () WaveShare WaveShare: (accel) acceleration factor: 2.000
[ 662.340] (
) WaveShare WaveShare: (accel) acceleration threshold: 4
[ 662.340] (**) Option “TransformationMatrix” “0 -1 1 1 0 0 0 0 1”
[ 662.349] (II) event1 - WaveShare WaveShare: is tagged by udev as: Touchscreen
[ 662.349] (II) event1 - WaveShare WaveShare: device is a touch device
[ 662.354] (II) config/udev: Adding input device WaveShare WaveShare (/dev/input/mouse0)
[ 662.354] (II) No input driver specified, ignoring this device.
[ 662.354] (II) This device may have been added with another device file.

For testing purposes please

  1. set the rotation on the plugins config page to 0 deg.,
  2. remove the line display_rotate=3 from /boot/userconfig.txt and
  3. rename /etc/X11/xorg.conf.d/40-libinput.conf to e.g. /etc/X11/xorg.conf.d/40-libinput.conf.bak.

Then reboot and check if display and touch orientiation are properly aligned. If that’s the case set the desired rotation angle on the plugin’s config page, reboot and check again.

  1. image
  2. Removed display_rotate=3
  3. ls -al
    -rw-r–r-- 1 root root 1486 Nov 25 23:18 40-libinput.conf.bak
    -rw-r–r-- 1 root root 375 Nov 25 23:36 95-touch_display-plugin.conf

After reboot the screen is rotated by 90 deg. touch by 180deg.

So I re-flashed the SD, started over.
That seems to do the trick. So prob something got broken/weird during the OS updates…

So after re-flashing Volumio the misalignment of display and touch is gone?

Do still need to rotate by 270 deg. and is that working now?

Yes it is!!!
So I guess somewhere a residue was left from previous attempts. As i recalled it was working earlier. But with multiple OS upgrades, plugin updates on the same SD something went wrong. Not sure what happened with the first clean install (failed first install of the plugin as mentioned in Volumio 3 RC1 - Open Beta Testing)

Thanks for your feedback!

Hello there, new to the board, but not to Volumio.

I built a stand-alone headphone music server with a Raspberry Pi 4 and a DSI monitor (WaveShare 4.3" capacitive touch display) using the latest build of Volumio (2.917) and the Touch Display plugin (1.3.0), and no other plugins. Everything works just fine except for the Screensaver Setting - it won’t turn off.

This was a rebuild of an earlier project using the same RPi but with a different screen. The screensaver worked fine on the older screen, but sadly died a while ago, so ordered a different / larger screen to replace it. That build ran an older version of Volumio and the Touch Display plugin (sorry, I don’t know what version either was, but I think it was one of the later 2.8 versions): there are no other plugins installed. When I plugged in the new screen it worked with the old settings fine, but then noticed the screen wouldn’t turn off when it was suppose to.

I then saw there was an update for Volumio, so I updated that and the new plugin, too - but then the RPi wouldn’t reboot and I had to manually turn it off and on again and it booted back up but still no screensaver function. I then did a fresh wipe / reinstall of the mSD card with the latest Volumio and touch display plugin - rebooting from Volumio now works again, but still no screensaver.

As this RPi is a dedicated headphone music server and is on 24/7, I’d really like the screen to turn off when it’s (mostly) not in use so would like to get this function back if at all possible. Any help would be appreciated! Thanks in advance

Hi Buma,

what are your screensaver settings (i.e. “Screensaver timeout” and “No screensaver while playing”)?

Also please connect to Volumio via SSH and post the output of

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