Closed subrezon closed 1 year ago
GRUB used to be problematic when using nkro, maybe it's still the case. see https://github.com/kiibohd/configurator/issues/134
I only have 6KRO enabled.
BIOS also seems to trigger this behavior. If I turn my PC on, press Delete to get into BIOS, and exit BIOS without rebooting, keyboard is not detected even when booting into Windows without GRUB.
Using KMK on the same board or AVR Pro Micros does not result in the same issue. Is there any way I can extract some debugging information out of the keyboard while the PC is booting?
@subrezon there have been several fixes to the USB driver of the RP2040 which are currently only available on develop
, could you please rebase to develop
and see if this has been fixed?
@KarlK90 cloned official repo, checked out develop
and built my keymap using that. The issue seems to still occur, I will do a more detailed test later.
@KarlK90 did more extensive testing using the develop
branch, and it does indeed fix some of the issues. When connecting directly to the host without using a USB hub, the issue does not occur in any scenario - booting through GRUB into both Linux and Windows does not require replugging the keyboard anymore.
However, when connecting through the USB hub everything is still the exact same.
Okay so some improvements, that is good news. As you are using a split keyboard and the kb2040 doesn't support vbus detection by design, qmk relies on a successful USB enumeration (basically the keyboard waits some seconds if it gets a connection to the host) to determine if the side is plugged into the host or is acting as the peripheral side. I suspect that this might fail for some reason when connected to the USB hub. There is an alternate mechanism which can be enabled by defining #define SPLIT_WATCHDOG_ENABLE
in your board config.h
. Could you try this? Please note that both sides have to be flashed.
I suspect this might be due to the hub being always powered - the power LEDs of the KB2040s are always on, even when the PC is off. Something times out and then when the enumeration is supposed to happen - it doesn't.
I just did some quick testing with #define SPLIT_WATCHDOG_ENABLE
on my work laptop (which the keyboard has the same issue with) and could successfully use the board both during and after GRUB. I will do the full test suite later today, and I also grabbed several other USB hubs to test with. I'll post an update in like ~4h.
Tested #define SPLIT_WATCHDOG_ENABLE
, everything works perfectly. Are there any drawbacks to having it enabled?
Nice! Problem solved. There are no drawbacks. Enjoy your keyboard.
Cool, thanks! Maybe I'll look into contributing something into the docs so it's easier to find and solve on one's own in the future...
Describe the Bug
I have a Sofle split keyboard with a KB2040 on each side, connected to a dual-boot PC with Ubuntu 22.04 and Windows 11. It is connected to a USB hub in my monitor (Dell S2721DGFA), which is connected to the PC. I boot using GRUB, then choose the OS I want to boot to.
When I turn my PC on I can use the keyboard in GRUB to choose the OS, but after booting into the OS the keyboard does not get detected until I unplug it and plug it back in.
Before unplugging, Sofle keyboard clearly missing:
After unplugging and plugging back in, keyboard is detected and works:
Keyboard Used
sofle (with CONVERT_TO=kb2040)
Link to product page (if applicable)
No response
Operating System
Ubuntu 22.04 / Windows
qmk doctor Output
Is AutoHotKey / Karabiner installed
Other keyboard-related software installed
none
Additional Context
Debugging attempted so far: