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?

2 Likes

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