MHS-3.5inch Display! Touch Screen does not work

Good evening!
I have a problem to make the Touch Screen work. I will show you the step I took for how the procedure went if someone has an idea where I went that I went wrong
Sorry, my english is from Brazil.

Dados:
Volumio Information
Volumio Version: 2.873
Hardware: Raspberry Pi 3
Display MHS-3.5inch Display For RaspberryPi - SPI 125Mhz Support 480x320 Pixels
Imagen Display

New clean installation of Volumio

My procedure for installing Display

volumio# apt update
volumio# apt install git
volumio# git clone https://github.com/goodtft/LCD-show
volumio# cp -rf LCD-show/usr/mhs35-overlay.dtb /boot/overlays/
volumio# cp -rf LCD-show/usr/mhs35-overlay.dtb /boot/overlays/mhs35.dtbo
volumio# mkdir -p /usr/share/X11/xorg.conf.d/
volumio# cp -rf LCD-show/usr/99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf
volumio# mkdir -p /etc/X11/xorg.conf.d
volumio# cp -rf LCD-show/usr/99-calibration.conf-35-90 /etc/X11/xorg.conf.d/99-calibration.conf

Config-1

volumio# nano usr/share/X11/xorg.conf.d/99-fbturbo.conf

# This is a minimal sample config file, which can be copied to
# /etc/X11/xorg.conf in order to make the Xorg server pick up
# and load xf86-video-fbturbo driver installed in the system.
#
# When troubleshooting, check /var/log/Xorg.0.log for the debugging
# output and error messages.
#
# Run "man fbturbo" to get additional information about the extra
# configuration options for tuning the driver.

Section "Device"
        Identifier      "Allwinner A10/A13 FBDEV"
        Driver          "fbturbo"
        Option          "fbdev" "/dev/fb1"

        Option          "SwapbuffersWait" "true"
EndSection

volumio# nano /etc/X11/xorg.conf.d/99-calibration.conf

Section "InputClass"
        Identifier      "calibration"
        MatchProduct    "ADS7846 Touchscreen"
        Option  "Calibration"   "3936 227 268 3880"
        Option  "SwapAxes"      "1"
        Driver  "evdev"
EndSection

Config-2
volumio# nano /boot/userconfig.txt

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

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

Install the TouchVolumio Plugin from the control panel

volumio# reboot

Starting the Tests … Display gave the picture perfectly, but the Touch screem nothing.

volumio# stat /dev/fb1

          File: '/dev/fb1'
          Size: 0               Blocks: 0          IO Block: 4096   character special file
        Device: 6h/6d   Inode: 12862       Links: 1     Device type: 1d,1
        Access: (0660/crw-rw----)  Uid: (    0/    root)   Gid: (   44/   video)
        Access: 2021-03-21 20:41:32.159999999 +0000
        Modify: 2021-03-21 20:42:58.382202868 +0000
        Change: 2021-03-21 20:42:58.382202868 +0000
         Birth: -

volumio# dmesg | grep -i ADS7846

        [   12.505517] ads7846 spi0.1: spi0.1 supply vcc not found, using dummy regulator
        [   12.505605] ads7846 spi0.1: Linked as a consumer to regulator.0
        [   12.506441] ads7846 spi0.1: touchscreen, irq 166
        [   12.509511] input: ADS7846 Touchscreen as 
         /devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0

volumio# cat /proc/bus/input/devices

            I: Bus=0000 Vendor=0000 Product=0000 Version=0000
            N: Name="ADS7846 Touchscreen"
            P: Phys=spi0.1/input0
            S: Sysfs=/devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0
            U: Uniq=
            H: Handlers=mouse0 event0
            B: PROP=0
            B: EV=b
            B: KEY=400 0 0 0 0 0 0 0 0 0 0
            B: ABS=1000003

volumio# cat /proc/interrupts | grep ads7846

 `   166:          0          0          0          0  pinctrl-bcm2835  17 Edge      ads7846`

volumio# evtest

        No device specified, trying to scan all of /dev/input/event*
        Available devices:
        /dev/input/event0:      ADS7846 Touchscreen
        Select the device event number [0-0]: 0
        Input driver version is 1.0.1
        Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
        Input device name: "ADS7846 Touchscreen"
        Supported events:
          Event type 0 (EV_SYN)
          Event type 1 (EV_KEY)
            Event code 330 (BTN_TOUCH)
          Event type 3 (EV_ABS)
            Event code 0 (ABS_X)
              Value      0
              Min        0
              Max     4095
            Event code 1 (ABS_Y)
              Value      0
              Min        0
              Max     4095
            Event code 24 (ABS_PRESSURE)
              Value      0
              Min        0
              Max      255
        Properties:
        Testing ... (interrupt to exit)

I did all these procedures but even so the touch screen does not work at all …
Would anyone have any idea where I’m going wrong?
I am very grateful for the attention

Att: Ezaul Zillmer

@gvolt maybe you can help him with it…

@Ezaul

In “/boot/userconfig.txt” try removing

dtoverlay=ads7846

so you only use

dtoverlay=mhs35:rotate=90

Don’t know if it matters, but maybe you also have to move dtoverlay=mhs35:rotate=90 after
dtparam=spi=on.

Good Night @gvolt

Unfortunately it doesn’t work!
to get rid of conscience I took an old screen that had 3.2inch plugged in Raspberry commented the lines

I added
dtoverlay=tft9341:rotate=90

I added
hdmi_cvt=320 240 60 1 0 0 0

I changed 99-calibration.conf para 3.2inch

/etc/X11/xorg.conf.d/99-calibration.conf
    Section "InputClass"
            Identifier      "calibration"
            MatchProduct    "ADS7846 Touchscreen"
            Option  "Calibration"   "115 3700 3865 155"
            Option  "SwapAxes"      "1"
    EndSection

userconfig.txt

##dtoverlay=mhs35:rotate=90
dtoverlay=tft9341:rotate=90
hdmi_drive=2
hdmi_group=2
hdmi_mode=87
hdmi_cvt=320 240 60 1 0 0 0
##hdmi_cvt=480 320 60 6 0 0 0

#### Touch Display rotation setting below: do not alter ####
display_lcd_rotate=1
display_hdmi_rotate=1

So I restarted with the old 3.2inch screen that I had kept in a shovel and it worked perfectly so I contacted the supplier of the MHS 3.5inch screen, he will send another one because I have tried everything I can think of! I honestly don’t know what else to do!

1 Like

Good luck! :smiley:

1 Like

Hi, does it work yet? I also have an MHS-3.5 and don’t get the touchscreen to work…

i would say try the settings above…

Some more information required: What is your Pi model and the Volumio version?

Are you on a fresh Volumio system or did you already take some steps to get the MHS-3.5 working? From your post I can only assume that you probably have installed the Touch Display plugin and now the display is showing Volumio’s UI but touch is not working. Please describe in detail what you did to get the display working. If you should have experienced error messages: What did they say?

1 Like

I tried that off course… It’s just the touchscreen that doesn’t work, screen works
I did these steps and 100 of variations of it.

install the TouchScreen plugin

git clone GitHub - goodtft/LCD-show: 2.4" 2.8"3.2" 3.5" 5.0" 7.0" TFT LCD driver for the Raspberry PI 3B+/A/A+/B/B+/PI2/ PI3/ZERO/ZERO W
cd LCD-show/
sudo mkdir /etc/X11/xorg.conf.d
cd usr/
sudo cp mhs35-overlay.dtb /boot/overlays/
sudo cp mhs35-overlay.dtb /boot/overlays/mhs35.dtbo
sudo cp -rf 99-calibration.conf-mhs35-90 /etc/X11/xorg.conf.d/99-calibration.conf
sudo mkdir -p /usr/share/X11/xorg.conf.d/
sudo cp -rf ./99-fbturbo.conf /usr/share/X11/xorg.conf.d/99-fbturbo.conf

sudo nano /etc/X11/xorg.conf.d/99-calibration.conf
=> add rule ‘Driver “evdev”’ before EndSection

sudo nano /boot/config.txt => or user config
add dtoverlay=mhs35:rotate=270

sudo apt update
sudo apt install lightdm
sudo apt install xserver-xorg-input-evdev
sudo nano /etc/lightdm/lightdm.conf
=>autologin-user=volumio

reboot

best is to wait till @gvolt is here he knows a lot of those settings but some of it is not set yet …
morning gvolt … but light dm is not needed … evdev is not set yet.

Please post the results of

cat /boot/config.txt

cat /boot/userconfig.txt

ls -al /usr/share/X11/xorg.conf.d

ls -al /etc/X11/xorg.conf.d

and

ls -al /dev/input

P.S. What is the purpose of lightdm? It is not needed to have kiosk mode if you use the Touch Display plugin and should not be installed IMHO.

Hi, I didn’t got an error message. I’m using a RPi4 2GB with version volumio-2.882-2021-04-24-pi

The version volumio-2.773-2020-05-05-pi didn’t work with my RPi4 2GB, something about the bootloader.

I also did these steps with an RPi1B+ (I think) and it didn’t work for now.

If someone can tell me which steps they actually took to get it working, would be nice. Only with an MHS3.5inch screen!

Thx

1 Like

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

include userconfig.txt

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

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

dtparam=spi=on

dtoverlay=mhs35:rotate=90

hdmi_drive=2

hdmi_group=2

hdmi_mode=87

hdmi_cvt 480 320 60 6 0 0 0

ls -al /dev/input

total 0

drwxr-xr-x 3 root root 120 Jul 8 21:57 .

drwxr-xr-x 15 root root 3860 Jul 8 21:57

drwxr-xr-x 2 root root 60 Jul 8 21:57 by-path

crw-rw---- 1 root input 13, 64 Jul 8 21:57 event0

crw-rw---- 1 root input 13, 63 Jul 8 21:57 mice

crw-rw---- 1 root input 13, 32 Jul 8 21:57 mouse0

Yes, I didn’t use LightDM at first and you are right, it isn’t necessary, but others got it working with that included… So I tried it. But I will remove it again.

1 Like

ls -al /usr/share/X11/xorg.conf.d

total 36

drwxr-xr-x 2 root root 4096 Jul 8 21:04 .

drwxr-xr-x 1 root root 4096 Jul 8 21:45

-rw-r–r-- 1 root root 1099 Sep 24 2016 10-evdev.conf

-rw-r–r-- 1 root root 1350 Nov 11 2016 10-quirks.conf

-rw-r–r-- 1 root root 788 Sep 30 2016 40-libinput.conf

-rw-r–r-- 1 root root 2747 Oct 28 2016 70-wacom.conf

-rw-r–r-- 1 root root 605 Jul 8 21:41 99-fbturbo.conf

ls -al /etc/X11/xorg.conf.d

total 24

drwxr-xr-x 2 root root 4096 Jul 9 06:43 .

drwxr-xr-x 1 root root 4096 Jul 8 21:47

-rw-r–r-- 1 root root 316 Jul 9 06:43 95-touch_display-plugin.conf

-rwxr-xr-x 1 root root 227 Jul 8 21:43 99-calibration.conf

As a next step try executing

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

and reboot.

1 Like

still no improvement

Is the output of

ls -al /dev/input

the same?

1 Like

looks like

ls -al /dev/input

total 0

drwxr-xr-x 3 root root 120 Jul 9 06:55 .

drwxr-xr-x 15 root root 3800 Jul 9 06:55

drwxr-xr-x 2 root root 60 Jul 9 06:55 by-path

crw-rw---- 1 root input 13, 64 Jul 9 06:55 event0

crw-rw---- 1 root input 13, 63 Jul 9 06:55 mice

crw-rw---- 1 root input 13, 32 Jul 9 06:55 mouse0

If you run

cat /dev/input/event0

and then touch the screen, do you get any ouptut?

no events what so ever… it doesn’t detect it, so still the driver isn’t working

1 Like