Touch Problems
Touch Not Working
Section titled “Touch Not Working”Verify Touch Controller Detection
Section titled “Verify Touch Controller Detection”-
Check kernel messages
Terminal window dmesg | grep -i goodixShould show GT9271 initialization.
-
Check input devices
Terminal window cat /proc/bus/input/devices | grep -A5 "Goodix"Should show “Goodix Capacitive TouchScreen”.
-
List input events
Terminal window ls /dev/input/event* -
Test touch input
Terminal window sudo apt install evtestsudo evtest# Select touch device, then tap screen
Touch Controller Not Found
Section titled “Touch Controller Not Found”If GT9271 isn’t detected:
-
Check I2C bus
Terminal window i2cdetect -y 10Should show device at
0x14or0x5D. -
Power cycle display
- Disconnect 5V power cable
- Wait 5 seconds
- Reconnect power
- Reboot Pi
-
Reseat DSI cable
- Touch uses I2C lines in DSI cable
- Poor connection causes touch failure
-
Check for I2C errors
Terminal window dmesg | grep -i "i2c\|error"
Touch Calibration Issues
Section titled “Touch Calibration Issues”Touch Offset from Display Position
Section titled “Touch Offset from Display Position”When you tap a spot but the cursor appears elsewhere, you need calibration:
# Create udev rulesudo nano /etc/udev/rules.d/99-waveshare-touch.rulesAdd the appropriate matrix for your rotation:
# 0° (no rotation)ENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="1 0 0 0 1 0"
# 90° rotationENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 -1 1 1 0 0"
# 180° rotationENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="-1 0 1 0 -1 1"
# 270° rotationENV{ID_INPUT_TOUCHSCREEN}=="1", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"Reboot after saving.
Touch Inverted/Mirrored
Section titled “Touch Inverted/Mirrored”| Symptom | Matrix to Try |
|---|---|
| X inverted | -1 0 1 0 1 0 |
| Y inverted | 1 0 0 0 -1 1 |
| Both inverted | -1 0 1 0 -1 1 |
Touch Works But Wrong Direction
Section titled “Touch Works But Wrong Direction”The rotation matrix must match the display rotation. If display is rotated 90° but touch isn’t calibrated:
- Touch at top → registers as right side
- Touch at left → registers as top
Apply the matching calibration matrix.
Multitouch Issues
Section titled “Multitouch Issues”Only Single Touch Works
Section titled “Only Single Touch Works”-
Check touch mode
- Open Screen Configuration
- Go to Touchscreen tab
- Enable “Multitouch” mode
-
OS limitation
- Some applications only support single touch
- Web browsers may limit touch points
Gestures Not Working
Section titled “Gestures Not Working”Multitouch gestures require:
- Multitouch mode enabled
- Compatible application
- Proper libinput configuration
# Check libinput settingslibinput list-devices | grep -A10 "Goodix"Touch Sensitivity
Section titled “Touch Sensitivity”Touch Requires Hard Press
Section titled “Touch Requires Hard Press”The capacitive touch should respond to light touches. If it requires pressure:
- Screen protector interfering (remove or use compatible type)
- Gloves preventing capacitive detection
- Touch IC firmware issue (rare)
Ghost Touches / Random Inputs
Section titled “Ghost Touches / Random Inputs”Causes:
- Poor grounding
- EMI from nearby electronics
- Static discharge
- Hardware defect
Solutions:
- Ensure proper grounding through GPIO
- Move away from EMI sources
- Contact Waveshare if persistent
Touch Lag
Section titled “Touch Lag”Delayed Response
Section titled “Delayed Response”Touch should respond within ~10ms. Lag indicates:
-
High CPU load
Terminal window top# Check for processes using high CPU -
I2C bus issues
- Other I2C devices causing conflicts
- Long I2C cable runs
-
Driver issues
- Update to latest Raspberry Pi OS
- Try Waveshare pre-built image
Testing Touch
Section titled “Testing Touch”Using evtest
Section titled “Using evtest”sudo apt install evtestsudo evtest /dev/input/event0 # Adjust numberTouch the screen and observe coordinates. You should see:
ABS_MT_POSITION_XABS_MT_POSITION_YABS_MT_TRACKING_ID
Using xinput (X11)
Section titled “Using xinput (X11)”xinput listxinput test "Goodix Capacitive TouchScreen"Graphical Test
Section titled “Graphical Test”# Install mtdev-toolssudo apt install mtdev-tools
# Run graphical testmtview /dev/input/event0