Touchpad randomly stops working

Hey folks,

I have the problem, that my Touchpad on my Framework 16 randomly stops working while using the Laptop. I mainly run Win 11 and dual booting Ubuntu 24.04 but the issue appears on both OS.

So what happens is that sometimes the touchpad starts to not recognize all finger movements and after a few seconds stops working completely. At that point keyboard still works like normal. Rebooting (either to the same OS or switching OS) doesn’t help. I have to reseat the touchpad and then it works again.

As of today I also found a way to reproduce this issue: On Win 11, I run prime95 to stress test the CPU, then after roughly 2 minutes the touchpad stops working (Laptop was plugged in).

I have the suspicion that maybe the battery slightly expanding or so might play a role here, but that is just a guess.

Before I contact framework’s support: Do you guys have an idea what I could try?

I have the touchpad and the keyboard both centered.

Thank you in advance! :slight_smile:

Try reconnecting the input module cable.

I had an issue where my trackpad wasn’t working and it turned out to be an issue with the cable.

Also, try cleaning the contact pins on the board and contact pads on the trackpad with a cloth or an alcohol pad if it is powered off and battery disconnected.

2 Likes

I tried that just now. I completely took off the midplate as well and cleaned the contact pins. I then run 30 minutes of prime95 and the touchpad is still working as expected.

I will test it a bit more over the coming days but I am hopeful that it is now fixed. Thank you so much!

3 Likes

I have the same issue on Arch Linux. It only started happening lately (probably after an update a week ago). It seems to be related to the “idle” mode, when the laptop is about to lock the screen and go to sleep; once it happened after waking up too (though, I can’t be sure whether it happened after the wake up, or right before going to sleep).

I was able to click on the touchpad, but not move the cursor, and no multitouch gestures worked, so it it safe to assume that the whole touch area was disabled while the physical buttons kept working.

I found these two entries in the dmesg kernel journal, however I’m not sure if they are actually related:

[150269.114380] usb 1-4.1: reset full-speed USB device number 8 using xhci_hcd
[150269.304349] usb 1-4.1: reset full-speed USB device number 8 using xhci_hcd

and my lsusb --tree looks like this (only expansion cards are connected):

❯ sudo lsusb --tree
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/5p, 480M
    |__ Port 002: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 001: Dev 010, If 0, Class=Billboard, Driver=[none], 12M
        |__ Port 001: Dev 010, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 003: Dev 004, If 0, Class=Hub, Driver=hub/3p, 480M
        |__ Port 002: Dev 006, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 006, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 006, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 006, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 004: Dev 005, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 001: Dev 008, If 0, Class=Vendor Specific Class, Driver=[none], 12M
        |__ Port 002: Dev 009, If 0, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 009, If 1, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 009, If 2, Class=Human Interface Device, Driver=usbhid, 12M
        |__ Port 002: Dev 009, If 3, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 005: Dev 007, If 0, Class=Wireless, Driver=btusb, 480M
    |__ Port 005: Dev 007, If 1, Class=Wireless, Driver=btusb, 480M
    |__ Port 005: Dev 007, If 2, Class=Wireless, Driver=btusb, 480M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 10000M
    |__ Port 002: Dev 002, If 0, Class=Hub, Driver=hub/3p, 10000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 005.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
    |__ Port 001: Dev 002, If 0, Class=Billboard, Driver=[none], 12M
    |__ Port 001: Dev 002, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 006.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M
/:  Bus 007.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 480M
/:  Bus 008.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/1p, 10000M

I’m pretty sure I did not setup touchpad on/off shortcut, and everything went back to normal after reconnecting the touchpad input module anyway.