On the todo list, but I needed the RPI4 for another project for a bit. I'll get to it.
Announcement
Collapse
No announcement yet.
Touch screen problem on PiCore (bug/ just some tslib setting?)
Collapse
X
-
piCorePlayer a small player for the Raspberry Pi in RAM.
Homepage: https://www.picoreplayer.org
Please donate if you like the piCorePlayer👍 1 -
-
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 PluginComment
-
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.
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
-
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👍 1Comment
-
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.
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
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
Code:sudo modprobe hid-multitouch
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👍 1Comment
-
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-problemeRaspi 4, Picore 8, LMS;Comment
-
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 piCorePlayerComment
-
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
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
Code:sudo modprobe hid-multitouch
In my setup, I do want HDMI audio, is there anything else I would need to configure?
Thank you for this!Comment
-
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👍 1Comment
-
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
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
Code:sudo modprobe hid-multitouch
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
-
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
-
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
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
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.
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 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
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
Comment