Issues with official Touchscreen on Pi 3b+
Describe the bug
On a fresh install of 64 bit Raspberry Pi OS bookworm on the Pi 3b+ the touchscreen image works fine but the touch controls are unresponsive. I have an older sd card that the touchscreen works (although isn't aligned with display orientation) so I know the hardware works but I've been unable to replicate what makes the touchscreen work in the other sd card (and the OS on the other sd card I tinkered with past the point of recoverability, it boots but isn't stable)
Steps to reproduce the behaviour
Fresh install of latest 64 bit bookworm but before booting for the first time go into the config.txt and add the line
dtparam=i2c_vc_baudrate=50000
Otherwise you get an atmel unknown firmware 0x1e error on boot occasionally (at least with my setup).
I also have a wm8960-soundcard so I do the following as well so I also uncomment the i2c and i2s lines as well as add this
dtoverlay=wm8960-soundcard
All pre first boot. I power the display and the pi separately and don't connect anything to the gpio. Post boot running sudo apt update and sudo apt full-upgrade doesn't seem to help
Device (s)
Raspberry Pi 3 Mod. B+
System
Raspberry Pi reference 2023-10-10 Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 962bf483c8f326405794827cce8c0313fd5880a8, stage4
Aug 10 2023 15:35:01 Copyright (c) 2012 Broadcom version 03dc77429335caee083e22ddc8eec09c07f12a7a (clean) (release) (start)
Linux officehub 6.1.0-rpi4-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.54-1+rpt2 (2023-10-05) aarch64 GNU/Linux
Logs
[ 14.714756] edt_ft5x06 10-0038: supply vcc not found, using dummy regulator [ 14.715297] edt_ft5x06 10-0038: supply iovcc not found, using dummy regulator [ 14.721392] edt_ft5x06 10-0038: touchscreen probe failed [ 14.722123] edt_ft5x06: probe of 10-0038 failed with error -5
Additional context
I've tried adding dtoverlay=rpi-ft5406 Both pre first boot and post I've also tried dtoverlay=edt-ft5405 disable_touchscreen=1 As well as dtoverlay=ft5406
The whole time the screen itself works but does not respond to touch at all
This sounds like the issue in https://github.com/raspberrypi/linux/issues/5619 - supposedly, running rpi-update pulls/5622 should provide a fix, but I have yet to get that to work with my touchscreen. The above errors from edt_ft5x06 still show up, and the touchscreen is unresponsive.
That made touch input work but now I'm unable to rotate the touch using the normal documented methods Like this from rpi documentation dtoverlay=rpi-ft5406,touchscreen-swapped-x-y=1,touchscreen-inverted-x=1
Which also seems to cause issues with the driver since it causes a lot of i2c errors for the display in dmesg
And this which seemed like a more up to date version
dtoverlay=edt-5406,invx=1,invy=1
I ended up having to revert back to X11 and then using a input matrix transformation to rotate the input to match.
rpi-ft5406 is the legacy driver - I'll get the docs updated.
There should be no need to change any configuration files manually in Wayfire. Use the Screen Configuration app in Wayfire to set the orientation correct the screen orientation. If you have also linked the touchscreen driver for "generic ft5x06 (79)" to the DSI-1 output, then touch will follow suit. Looking in ~/.config/wayfire.ini, you should see a couple of blocks
[output:DSI-1]
mode = 800x480@60049
position = 3840,0
transform = 180
"transform = 180" gives you the inversion. (position will depend on where relative to other screens you have the DSI screen positioned - I've got mine to the right of a 4k monitor)
[input-device:generic ft5x06 (79)]
output = DSI-1
[input-device:generic ft5x06 (80)]
output = DSI-1
associates the touch events from those two devices with the DSI-1 output.
You can check that that name matches your hardware using libinput list-devices | grep Device. eg
pi@bookworm64:~ $ libinput list-devices | grep Device
Device: Logitech USB Optical Mouse
Device: Dell KB216 Wired Keyboard
Device: Dell KB216 Wired Keyboard System Control
Device: Dell KB216 Wired Keyboard Consumer Control
Device: generic ft5x06 (79)
Device: vc4-hdmi-0
Device: vc4-hdmi-1
If your touch device doesn't match either of those names, then there is also a touchscreen option when you right-click the display in Screen Configuration, and you can manually associate the touch controller to the display. (Changing that setting does require a restart of Wayfire).
You can check that that name matches your hardware using
libinput list-devices | grep Device.
$ libinput list-devices | grep Device
Device: vc4-hdmi-0
Device: vc4-hdmi-1
Then again, I'm seeing this on boot:
Oct 27 14:17:03 schwartz kernel: edt_ft5x06 10-0038: supply vcc not found, using dummy regulator
Oct 27 14:17:04 schwartz kernel: edt_ft5x06 10-0038: supply iovcc not found, using dummy regulator
Oct 27 14:17:04 schwartz kernel: edt_ft5x06 10-0038: touchscreen probe failed
Oct 27 14:17:04 schwartz kernel: edt_ft5x06: probe of 10-0038 failed with error -5
This is the Raspberry Pi 7" touchscreen, and before I updated it to bookworm a few days ago, it was working under bullseye.
I've also used rpi-update as per https://github.com/raspberrypi/linux/issues/5619, but no dice - this error just persists.
I have a touchscreen issue as well but mine is slightly different: everything actually works for the raspberry pi 3 but I upgraded to 5 and now it reports everything listed here.
I tried every solution here to no avail, libinput never shows the touchscreen that's connected with USB and changing the drivers or rpi-update does nothing.
Actually by changing the drivers back to dtoverlay=rpi-ft5406 it just freezes on boot.
At first I though it was a power issue cause it complains that it doesn't have enough power to power the devices but I eventually got the official power adapter and the problem remains.
@PinkFreud I am having the EXACT same error, did you manage to solve it? Or @Pyrathar, were you able to find a solution?
@PinkFreud I am having the EXACT same error, did you manage to solve it? Or @Pyrathar, were you able to find a solution?
Hmmm. I posted that over a year and a half ago. If I recall, a kernel update fixed it. It's working for me now, and has been for quite some time.