Announcement

Collapse
No announcement yet.

Touch screen problem on PiCore (bug/ just some tslib setting?)

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • #46
    On the todo list, but I needed the RPI4 for another project for a bit. I'll get to it.
    piCorePlayer a small player for the Raspberry Pi in RAM.
    Homepage: https://www.picoreplayer.org

    Please donate if you like the piCorePlayer

    Comment


    • #47
      Tanks !

      Comment


      • #48
        Originally posted by paul-
        Its the Elecrow brand, as that was what I could get on Amazon.
        Just to say that I'm the one with teh Wimaxit version, not Paul ;-)

        PCP (always latest version) on RasPi 3 with PhatDac (player & server)
        PCP on several RasPis 2 +3
        2 Airplay speakers (Sony SA-NS510) integrated via Airplay Bridge Plugin

        Comment


        • #49
          Already posted this in another thread but will post here as well as this thread seems to be working towards a solution

          Have the QDtech MPI1001 Touchscreen and get the same issue as you all.
          In my setup I'm connecting the RPi to my receiver over HDMI to send the audio and from the receiver I use HDMI Out Port 2 to connect to the MPI1001

          Code:
          tc@woonkamer:~$ cat /proc/bus/input/devices
          I: Bus=0003 Vendor=0484 Product=5750 Version=0101
          N: Name="QDtech MPI1001 Touchscreen"
          P: Phys=usb-3f980000.usb-1/input0
          S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1:1.0/0003:0484:5750.0004/input/input5
          U: Uniq=
          H: Handlers=mouse0 event0
          B: PROP=0
          B: EV=1b
          B: KEY=400 0 0 0 0 0 0 0 0 0 0
          B: ABS=100 3
          B: MSC=10
          
          tc@woonkamer:~$ fbset
          
          mode "1280x800-0"
                  # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
                  geometry 1280 800 1280 800 16
                  timings 0 0 0 0 0 0 0
                  accel false
                  rgba 5/11,6/5,5/0,0/16
          endmode
          
          tc@woonkamer:~$ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_calibrate
          xres = 592, yres = 448
          Took 1 samples...
          Top left : X = 1280 Y =  800
          Took 1 samples...
          Top right : X = 1280 Y =  800
          Took 1 samples...
          Bot right : X = 1280 Y =  800
          Took 1 samples...
          Bot left : X = 1280 Y =  800
          Took 1 samples...
          Center : X = 1280 Y =  800
          ts_calibrate: determinant is too small -- 0.000000
          Calibration failed.
          
          ​
          config.txt
          Code:
          # For more options and information see
          # http://rpf.io/configtxt
          # Some settings may impact device functionality. See link above for details
          
          [PI0]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore.gz followkernel
          kernel kernel51535.img
          
          [PI02]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
          kernel kernel51535v7.img
          
          [PI1]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore.gz followkernel
          kernel kernel51535.img
          
          [PI2]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
          kernel kernel51535v7.img
          
          [PI3]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7.gz followkernel
          kernel kernel51535v7.img
          
          [PI4]
          initramfs rootfs-pCP-13.2.gz,modules-5.15.35-pcpCore-v7l.gz followkernel
          kernel kernel51535v7l.img
          
          [CM4]
          otg_mode=1
          
          [ALL]
          
          cmdline cmdline.txt
          
          # uncomment if you get no picture on HDMI for a default "safe" mode
          #hdmi_safe=1
          
          # uncomment this if your display has a black border of unused pixels visible
          # and your display can output without overscan
          #disable_overscan=1
          
          # uncomment the following to adjust overscan. Use positive numbers if console
          # goes off screen, and negative if there is too much border
          #overscan_left=16
          #overscan_right=16
          #overscan_top=16
          #overscan_bottom=16
          
          # uncomment to force a console size. By default it will be display's size minus
          # overscan.
          #framebuffer_width=1280
          #framebuffer_height=720
          
          # uncomment if hdmi display is not detected and composite is being output
          
          # uncomment to force a specific HDMI mode (this will force VGA)
          #hdmi_group=1
          #hdmi_mode=1
          
          # uncomment to force a HDMI mode rather than DVI. This can make audio work in
          # DMT (computer monitor) modes
          
          # uncomment to increase signal to HDMI, if you have interference, blanking, or
          # no display
          config_hdmi_boost=2
          
          # uncomment for composite PAL
          #sdtv_mode=2
          
          #----------------------------------------------------
          dtparam=i2c_arm=on,i2s=on
          
          #---pCP----------------------------------------------
          # pCP does not use graphics chip by default, free up most memory
          gpu_mem=16
          initial_turbo=60
          
          # onboard audio overlay
          dtparam=audio=on
          audio_pwm_mode=2
          
          # For Jivelite use with HDMI screens
          # Comment out the lines above
          #   gpu_mem=xx
          dtparam=audio=on
          # Then uncomment the following line.
          #dtoverlay=vc4-kms-v3d
          #
          
          #Disable Bluetooth on both rpi3 and rpi0W
          dtoverlay=disable-bt
          
          # uncomment to overclock the arm. 700 MHz is the default.
          #arm_freq=
          #gpu_freq=
          #core_freq=
          #sdram_freq=
          #over_voltage=
          #force_turbo=
          
          # Remove audio hiss
          # disable_audio_dither=1
          
          #If booting from USB or network, enable this option to reduce CPU load looking for a non-existing card.
          #dtparam=sd_poll_once
          
          # Screen rotation 0 => 0 degrees, 2 => 180 degrees
          lcd_rotate=0
          
          #Custom Configuration Area, for config settings that are not managed by pCP.
          #pCP will retain these settings during insitu-update
          #---Begin-Custom-(Do not alter Begin or End Tags)-----
          #---End-Custom----------------------------------------
          hdmi_drive=2
          hdmi_force_hotplug=1
          hdmi_force_edid_audio=1
          
          framebuffer_width=1280
          framebuffer_height=800
          hdmi_cvt=1280 800 60 6
          hdmi_group=2
          hdmi_mode=87
          hdmi_drive=2​
          Last edited by Izocad; 2023-05-25, 10:16.

          Comment


          • #50
            Will look into it further, just so busy with other development tasks.
            piCorePlayer a small player for the Raspberry Pi in RAM.
            Homepage: https://www.picoreplayer.org

            Please donate if you like the piCorePlayer

            Comment


            • #51
              No problem, just let me know if there is anything you need me to test.

              Comment


              • #52
                So the reason RaspiOS worked. Is that it detected the device being a multi touch device and switched to Multitouch mode. So the OEM claim of multitouch not working in Linux is wrong.
                • 【USB Touch Screen】Simply connect the screen to device via HD interface and power the USB touch port to achieve touch function and no need to install any driver, just plug and play! When used as a computer monitor, supports Win10/8/7, 5-point touch. When worked with Raspberry Pi, supports Raspbian, Ubuntu, Kali, Retropie, single touch. When worked with Jetson Nano, support Ubuntu, single touch.
                Multi touch is required and actually works (tested with ts_test_mt) Probably a translation error between drivers and function. As I don't think RaspiOS uses a multi touch function, but again, the multi touch driver is needed.

                So onto the good news, I was able to make it work nicely. Tested on piCorePlayer9 alpha in both 1024x800 and 800x480 but it should work fine on all pcp versions. This solution is only for the displays with the QDtech MPI1001 usb touchscreen.

                config.txt (note, the vc4 kms driver is NOT used) The only edits I made were.
                Code:
                hdmi_force_edid_audio=1
                max_usb_current=1
                hdmi_force_hotplug=1
                config_hdmi_boost=7
                hdmi_group=2
                hdmi_mode=87
                hdmi_drive=2
                display_rotate=0
                hdmi_cvt 1024 600 60 6 0 0 0
                #hdmi_cvt 800 480 60 5 0 0 0
                ​
                ts_conf - Only one change, enabling debounce module. Make sure to add usr/local/etc/ts.conf to your /opt/.filetool.lst for backups
                Code:
                --- /tmp/tcloop/libts/usr/local/share/libts/files/ts.conf
                +++ ts.conf
                @@ -17,7 +17,7 @@
                module pthres pmin=1
                
                # Uncomment if needed
                -# module debounce drop_threshold=40
                +module debounce drop_threshold=40
                
                # Uncomment if needed to filter spikes
                # module median depth=5
                ​
                load the multitouch module. Also do this in your jivelite.sh startup script
                Code:
                sudo modprobe hid-multitouch
                Then run calibration as normal.​
                Last edited by paul-; 2023-06-04, 12:27.
                piCorePlayer a small player for the Raspberry Pi in RAM.
                Homepage: https://www.picoreplayer.org

                Please donate if you like the piCorePlayer

                Comment


                • #53
                  Hello, I also have a Raspberry 3b new with a Waveshare Touch. The display is this one:

                  https://www.amazon.de/gp/product/B07...e=UTF8&psc=1&t ag=kodinerds04-21

                  I have a picture, but I can only operate it with keyboard. With touch there is always a mouse pointer. Therefore, the touch always ends up in a completely different place. Unfortunately, I can't get any further with your description. Does anyone have another idea? I have already formulated my questions here:

                  https://forums.slimdevices.com/forum...touch-probleme
                  Raspi 4, Picore 8, LMS;

                  Comment


                  • #54
                    This solution is only for the displays with the QDtech MPI1001 usb touchscreen. There are many waveshare guides on our documentation pages. https://docs.picoreplayer.org/projects/
                    Last edited by paul-; 2023-06-04, 12:11.
                    piCorePlayer a small player for the Raspberry Pi in RAM.
                    Homepage: https://www.picoreplayer.org

                    Please donate if you like the piCorePlayer

                    Comment


                    • #55
                      Originally posted by paul-
                      So the reason RaspiOS worked. Is that it detected the device being a multi touch device and switched to Multitouch mode. So the OEM claim of multitouch not working in Linux is wrong.

                      Multi touch is required and actually works (tested with ts_test_mt) Probably a translation error between drivers and function. As I don't think RaspiOS uses a multi touch function, but again, the multi touch driver is needed.

                      So onto the good news, I was able to make it work nicely. Tested on piCorePlayer9 alpha in both 1024x800 and 800x480 but it should work fine on all pcp versions. This solution is only for the displays with the QDtech MPI1001 usb touchscreen.

                      config.txt (note, the vc4 kms driver is NOT used) The only edits I made were.
                      Code:
                      hdmi_force_edid_audio=1
                      max_usb_current=1
                      hdmi_force_hotplug=1
                      config_hdmi_boost=7
                      hdmi_group=2
                      hdmi_mode=87
                      hdmi_drive=2
                      display_rotate=0
                      hdmi_cvt 1024 600 60 6 0 0 0
                      #hdmi_cvt 800 480 60 5 0 0 0
                      ​
                      ts_conf - Only one change, enabling debounce module. Make sure to add usr/local/etc/ts.conf to your /opt/.filetool.lst for backups
                      Code:
                      --- /tmp/tcloop/libts/usr/local/share/libts/files/ts.conf
                      +++ ts.conf
                      @@ -17,7 +17,7 @@
                      module pthres pmin=1
                      
                      # Uncomment if needed
                      -# module debounce drop_threshold=40
                      +module debounce drop_threshold=40
                      
                      # Uncomment if needed to filter spikes
                      # module median depth=5
                      ​
                      load the multitouch module. Also do this in your jivelite.sh startup script
                      Code:
                      sudo modprobe hid-multitouch
                      Then run calibration as normal.​
                      This is awesome! Will try to test on my 10" screen as soon as possible.

                      In my setup, I do want HDMI audio, is there anything else I would need to configure?

                      Thank you for this!

                      Comment


                      • #56
                        Since we are not using the vc4 driver, then the default HDMI port b1 should be available. It was on my system, but I have not mounted the speakers on my screen.
                        piCorePlayer a small player for the Raspberry Pi in RAM.
                        Homepage: https://www.picoreplayer.org

                        Please donate if you like the piCorePlayer

                        Comment


                        • #57
                          Originally posted by paul-
                          So the reason RaspiOS worked. Is that it detected the device being a multi touch device and switched to Multitouch mode. So the OEM claim of multitouch not working in Linux is wrong.

                          Multi touch is required and actually works (tested with ts_test_mt) Probably a translation error between drivers and function. As I don't think RaspiOS uses a multi touch function, but again, the multi touch driver is needed.

                          So onto the good news, I was able to make it work nicely. Tested on piCorePlayer9 alpha in both 1024x800 and 800x480 but it should work fine on all pcp versions. This solution is only for the displays with the QDtech MPI1001 usb touchscreen.

                          config.txt (note, the vc4 kms driver is NOT used) The only edits I made were.
                          Code:
                          hdmi_force_edid_audio=1
                          max_usb_current=1
                          hdmi_force_hotplug=1
                          config_hdmi_boost=7
                          hdmi_group=2
                          hdmi_mode=87
                          hdmi_drive=2
                          display_rotate=0
                          hdmi_cvt 1024 600 60 6 0 0 0
                          #hdmi_cvt 800 480 60 5 0 0 0
                          ​
                          ts_conf - Only one change, enabling debounce module. Make sure to add usr/local/etc/ts.conf to your /opt/.filetool.lst for backups
                          Code:
                          --- /tmp/tcloop/libts/usr/local/share/libts/files/ts.conf
                          +++ ts.conf
                          @@ -17,7 +17,7 @@
                          module pthres pmin=1
                          
                          # Uncomment if needed
                          -# module debounce drop_threshold=40
                          +module debounce drop_threshold=40
                          
                          # Uncomment if needed to filter spikes
                          # module median depth=5
                          ​
                          load the multitouch module. Also do this in your jivelite.sh startup script
                          Code:
                          sudo modprobe hid-multitouch
                          Then run calibration as normal.​
                          this worked on my 10.1 Hosyond: https://www.amazon.com/dp/B0BHQRSDZR

                          which apparently is using a QDtech MPI7003 - running piCorePlayer v8.2.0

                          Thank you kindly sir!
                          Last edited by lattugatartaruga; 2023-06-05, 16:23.

                          Comment


                          • #58
                            Hi Paul,

                            excellent work!

                            Running flawlessly on QDtech MPI 7003 (7 inch) touch screen.

                            Maybe just small notice - in the case the hid-multitouch module is started in jivelite.sh script, it is necessary to start module manually before calibration. I suppose, it would be possible to start module in Tweaks on Web GUI as well.

                            I propose to add the whole bunch of http://www.lcdwiki.com/7inch_HDMI_Display-H and http://www.lcdwiki.com/10.1inch_HDMI_Display-H screens in the https://docs.picoreplayer.org/projects/.


                            Many thanks!
                            Last edited by kjansik; 2023-06-06, 16:41.

                            Comment


                            • #59
                              Originally posted by paul-
                              Since we are not using the vc4 driver, then the default HDMI port b1 should be available. It was on my system, but I have not mounted the speakers on my screen.
                              Other question, do I also need to do other steps like described here: https://docs.picoreplayer.org/projec...lcd-spi-touch/
                              For instance, create custom jivelite.sh startup script?
                              • I've edited the config.txt
                              • Edited ts_conf
                              • added usr/local/etc/ts.conf to /opt/.filetool.lst
                              • did a pcp bu
                              • reboot
                              config.txt
                              Code:
                              hdmi_force_edid_audio=1
                              max_usb_current=1
                              hdmi_force_hotplug=1
                              config_hdmi_boost=7
                              hdmi_group=2
                              hdmi_mode=87
                              hdmi_drive=2
                              display_rotate=0
                              hdmi_cvt 1280 800 60 5 0 0 0​
                              Then I loaded the multitouch and did the calibration which works, I think, although I find the coordinates a bit weird

                              Code:
                              tc@woonkamer:~$ sudo modprobe hid-multitouch
                              tc@woonkamer:~$ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 /usr/local/bin/ts_calibrate
                              xres = 1280, yres = 800
                              Took 1 samples...
                              Top left : X = 1 Y = 0
                              Took 4 samples...
                              Top right : X = 1 Y = 0
                              Took 4 samples...
                              Bot right : X = 1279 Y = 0
                              Took 4 samples...
                              Bot left : X = 1279 Y = 799
                              Took 4 samples...
                              Center : X = 3 Y = 799
                              819.747986 0.070848 -0.676047
                              65.047394 0.479983 0.278202
                              Calibration constants: 53723004 4643 -44305 4262946 31456 18232 65536
                              tc@woonkamer:~$ pcp bu
                              [ INFO ] Backing up files to /mnt/mmcblk0p2/tce/mydata.tgz
                              Done.
                              [ OK ] Backup successful.
                              ​My /mnt/mmcblk0p2/tce/jivelite.sh contains

                              Code:
                              #!/bin/sh
                              
                              EVENTNO=$(cat /proc/bus/input/devices | awk '/QDtech MPI1001 Touchscreen/{for(a=0;a>=0;a++){getline;{if(/mo>
                              
                              #export JIVE_NOCURSOR=1
                              #export TSLIB_TSDEVICE=/dev/input/event0
                              #export SDL_MOUSEDRV=TSLIB
                              
                              sudo modprobe hid-multitouch
                              
                              while true; do
                                  /opt/jivelite/bin/jivelite
                                      sleep 3
                              done
                              ​
                              I'm not sure what needs to be in the jivelite.sh script, but it is not working like this
                              I see the mouse pointer about a 5cm to the left of my touch, so the calibration is not working as it should

                              Code:
                              tc@woonkamer:~$ cat /proc/bus/input/devices
                              I: Bus=0003 Vendor=0484 Product=5750 Version=0101
                              N: Name="QDtech MPI1001"
                              P: Phys=usb-3f980000.usb-1/input0
                              S: Sysfs=/devices/platform/soc/3f980000.usb/usb1/1-1/1-1:1.0/0003:0484:5750.0001/input/input2
                              U: Uniq=
                              H: Handlers=mouse0 event0
                              B: PROP=2
                              B: EV=1b
                              B: KEY=400 0 0 0 0 0 0 0 0 0 0
                              B: ABS=2738000 3
                              B: MSC=20
                              
                              tc@woonkamer:~$ fbset
                              
                              mode "1280x800-0"
                                      # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
                                      geometry 1280 800 1280 800 16
                                      timings 0 0 0 0 0 0 0
                                      accel false
                                      rgba 5/11,6/5,5/0,0/16
                              endmode
                              ​
                              running ts_test_mt, I see 5 touch conatcts supported.
                              I can see up till 5 touch points indeed.
                              Movement looks to be inverted, moving touch up moves the cursor to the right, move touch down moves the cursor to the left.
                              Move touch to the right, cursor goes up and vice versa

                              Let me know what you need to see to help me.
                              Last edited by Izocad; 2023-06-07, 08:58.

                              Comment


                              • #60
                                Check the resolution... Why 1280x800? what skin is set?

                                Comment

                                Working...
                                X
                                😀
                                🥰
                                🤢
                                😎
                                😡
                                👍
                                👎