kiibohd / controller

Kiibohd Controller
GNU General Public License v3.0
810 stars 274 forks source link

Kira - Multiple issues flashing the firmware #392

Open d4g opened 3 years ago

d4g commented 3 years ago

Bus 001 Device 101: ID 308f:0013 Input Club Kira Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x308f Input Club idProduct 0x0013 Kira bcdDevice 4.c6 iManufacturer 1 Input Club iProduct 2 Keyboard - Kira PixelMap USB iSerial 3 5337310037384B323630343231363030 - sam4s8 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x008d bNumInterfaces 5 bConfigurationValue 1 iConfiguration 4 xXXx bmAttributes 0xa0 (Bus Powered) Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 1 Boot Interface Subclass bInterfaceProtocol 1 Keyboard iInterface 5 Boot Keyboard HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 68 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 1 Keyboard iInterface 6 NKRO Keyboard HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 95 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 7 Media Keys HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 39 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 3 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 2 Mouse iInterface 8 Mouse HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 109 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 1 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 4 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 9 HID-IO Interface HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.11 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 28 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x85 EP 5 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x06 EP 6 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 1 Device Status: 0x0000 (Bus Powered)



* **Reproduction Steps**:
* Flash the keyboard
* LEDs don't work anymore

* **Resulting Issue**:
* I have multiple issues when I flash the keyboard using `kiibohd-configurator-1.1.0-linux-x86_64.AppImage` and the wiki is not very helpfull. When I flash a new layout or a new firmware, this sometimes results no all LED permanently off, even if I reconnect the device. I cannot use Clt+Ctrl+F7 to play the next animation. Ctrl+Shift does not enable the bootloader mode anymore.
* I try to find out which version of firmware is actually on the keyboard. Is there a way to update to the latest version? And the bootloader version? I couldn't find a description how to update the bootloader
* I don't know why but there is Custom KLL Code in the configurator. Where does it come from and should it be there? Should I delete it?
* Does the Kiibohd Configurator actually create a completely new firmware image all the time? Sometimes I get different results when I flash the flash image twice. It seems to be pretty random. A step back to an older flash image sometimes revives the lighting and fixes the issues.
haata commented 3 years ago

The firmware should be the same each time. Sometimes the LED controller can get confused depending on how the keyboard was put into flash mode (if you press the button on the back of the keyboard, for example, it's not possible to do a clean reset of the LED controller before jumping to the bootloader). Unfortunately this is a limitation of the LED driver chip used on this keyboard. One solution is to unplug and replug the keyboard after flashing the firmware. Another option that sometimes works is to press Fn+Shift+Esc (if you still have that KLL keymapping set), this will attempt to reset the LED state.

mbarszcz-pcb commented 1 year ago

This happens to me a lot on the Kira even in 2023. Especially when I have a static animation configured as the startup animation, editing keys on layer one seems to break the LEDs even after disconnecting and reconnecting the USB cable. It happens both with the flash button, and with control shift escape flash combo. Rolling back to a previous version seems to help, and sometimes modifying the static animation or playing games unsetting and resetting the startup animation helps as well. The LEDs should not stop working randomly when the only change you make is a key assignment 😡