-
-
Notifications
You must be signed in to change notification settings - Fork 39.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug] RP2040 keyboard can't work on Thinkpad T420, T440 #19593
Comments
also tested with other rp2040 keyboard, same issue,also can't recognize on BIOS mode |
Exactly what I'm experiencing but with newers ThinkPads (E14 and E15), the keyboards work fine with my Desktop PC (Intel + Asus MoBo), my Macs (Intel or M1) and my personal laptops from other vendors. |
I guess I have to bring out my USB analyzer once more. |
Worth mentioning that I have tried enabling and disabling With my MacBooks, the keyboard momentarily hangs (the RGB and OLED animations stop) but once macOS has booted it works just fine. |
I'm having this exact issue with my Scylla with a Splinky v3. Tested with a onekey firmware on a T480 (Arch Linux) and a P14s G2 (Windows 11). On both not detected on boot. |
I also experience this on a Thinkpad X1 9th gen |
I have the same problem on a Thinkpad T14 Gen 2 (AMD) laptop. See also #18511 (comment) |
Same problem on Tkinkpad L16 Gen2 (AMD) |
IDK how useful this will be, but I have a Keychron K1 which has exactly the same kind of problem as my Pi Pico. It's also got an ARM MCU: SN32F248BF. I am using the https://github.com/SonixQMK/qmk_firmware fork on the K1, but since the problem is the same, I guess it's got nothing to do with the fork. It is seemingly unrecognized by my Thinkpad until I reconnect the power. An interesting difference is that it seems the K1 goes into some kind of reset loop with the backlight flashing and nothing works until I reset the power. |
Same problem on Thinkpad t480s. |
A while ago @KarlK90 talked me through collecting some info from a Pico hooked up to GDB through the SWD interface, but the results are buried on a discord server. Here are the results:
So it looks to me like the epc array is not initialized, only EP0 is present. But |
One customer reported having the same issue while using a Liatris microcontroller, which is also on RP2040. I have no diagnostics on it yet as I'm unable to reproduce it myself (don't have the requisite hardware nor tools), so I'm just adding this data point. |
Alright, the reason for this hardfault (thanks @george-norton!) is pretty clear. And I've posted a fix in this PR ChibiOS/ChibiOS-Contrib#375 along with an explanation. Please test if this fixes your problems. |
QMK already picked up these changes in the |
@KarlK90 I can confirm, my keyboard works now in the BIOS. Seems like it's working now as expected. Thanks! Would you be able to update us when it gets merged into master? How would I follow that? |
@KarlK90 I stuck a build on my Kyria with KB2040`s and I am seeing a little oddness, but I am not sure it is related. Overall, the behavior seems better. Previously when booting the laptop the OLED would begin redrawing then then just hang as the keyboard took a fault. Now the keyboard does not hang, the OLED draws correctly, the OLED state updates as expected when pressing modifier keys, but I cannot use the keyboard to enter my bitlocker password or access the BIOS. It doesn't seem to receive any keypresses, resetting/replugging the keyboard also doesn't fix it. Once windows is booted, they keyboard works normally. This might be some weirdness due to the lack of VBUS detection (I am using SPLIT_USB_DETECT). |
Next breaking changes merge from |
@george-norton that is at least some progress. It might be that bitlocker isn't compatible with nkro if you have forced this to be active. For split detection I also recommend switching to the watchdog implementation for connection detection, either by defining |
Basing this branch off of qmk/develop, because it has a fix I need[1]. [1] qmk#19593
Can confirm that this fixes the issue on my Thinkpad X1 Carbon. Thanks a ton @KarlK90! |
Thanks so much for this, also confirming here that this fixes the issue with my ThinkPad P14s. I have a KBDFans TET keyboard that wouldn't work on bootup (at the bitlocker screen), and would also become unresponsive after waking the laptop from sleep. |
Same issue with ThinkPad P15 Gen 1 running Linux. After reboot or sleep I need to reset the board for it to work. |
Same here with ThinkPad T15 and a with a Lenovo ThinkCentre M720 Tiny. Tried the |
I got the same / a similar issue with my own handwired build. I previously used elite-c controllers for my build but made a new revision with a rp2040 based controller (Pro Micro RP2040). I do not use
Now the keyboard behaves the same as if I would connect it to a power bank or USB charger. The OLED displays on both halves render the logo as if they were the "secondary" half (Logo displayed centered). Similarly, this happens with my Lenovo T480 laptop. Additionally, when I unplug the keyboard and reconnect it, sometimes it does not work and the main half seems to boot nothing (OLED does not display anything, second half shows logo centered, input via keyboard is not possible). If I repeat the unplug and reconnect, everything starts to work as intended. When I unplug/reconnect the keyboard, it starts working and I can use it to get into the BIOS, navigate the BIOS or the bootloader and use it as normal after a successful boot. This also does not happen on reboots (with the The older revision with the elite-c does not have this issue. I tested the same scenarios with both connected simultaneously and the elite-c version worked as expected. Any help would be very appreciated. I can provide further information. Show the schematics. Hop onto a discord/mumble/jitsi call, etc. @KarlK90? Thanks in advance. |
I have the exact same issue with my RP2040-zero based custom split. It seems to be related to split keyboards as this problem is fixed when I set |
RP2040 is an ARM target. To hopefully clarify, The symptoms you describe with the OLEDs indicate your keyboard cannot figure out which half is master, which may be solvable in firmware by setting Another option would be to modify the hardware so you can set a VBUS pin. The easiest way to accomplish this would be to replace your Sparkfun dev boards with alternatives which already incorporate this feature, i.e. those which utilize the Community Edition pinout. Long story short: neither of your problems with splits are related to the hardfault uncovered by this issue (and subsequently patched). |
Thanks for the quick reply. After reading some issues I thought I "disable" it by using The next build will be with two of the liatris boards I got. If this resolves the issue, even better. |
I can confirm that the Note: For future readers, make sure to flash the firmware with the watchdog option onto both halves. Otherwise it won't work correctly, till it is running on both halves. (So make sure to have a reset option for both individual halves) |
Oh great, |
I use |
My solution was switching to KMK instead of using QMK. But I hope this will be fixed soon. |
If you are not using the current |
@juru1234 @kwmlodozeniec pinging again as I'm not sure if pings added in edits are propagated. |
@KarlK90 I have since switched to using Vial, which also has this issue, and no longer have a lenovo laptop to even test it out. |
@KarlK90 I tried it again with the current master (I think your patches are merged now) and the problem still exists on my ThinkPad T15 Gen2. I'm not able to to enter my LUKS password when booting. I have to unplug the keyboard and plug it in again to enter the password. I would love to switch back from KMK to QMK..... |
@juru1234 Do you happen to use a split keyboard? If so please try enabling the split watchdog feature (don't forget to flash both sides). |
@KarlK90 Yes, I'm using a Corne v3 Split Keyboard with RP2040. I use the default layout and defined SPLIT_WATCHDOG_ENABLE in |
Describe the Bug
hardware:pico raspberry
firmware: handwired/onekey/rp2040
reboot or boot from shutdown ,can't recognize the keyboard.
Keyboard Used
handwiared/onekey/rp2040
Link to product page (if applicable)
No response
Operating System
windows11
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
No response
Additional Context
No response
The text was updated successfully, but these errors were encountered: