-
Notifications
You must be signed in to change notification settings - Fork 20
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
[device-report] Royal Kludge RK71 #28
Comments
My keyboard is bricked. |
@gauravmanmode if you can still write to your keyboard, that means it's still capable of booting into ISP mode. Could you please make a full dump of your keyboard with the |
No, the keyboard connects as a Keyboard HID device with above parameters, keys are missassigned and pressing any key just sends random values. The lights are constant blue and green combination. |
@gauravmanmode thanks for sending me the dump, although it only includes the main firmware part and not the bootloader. Regardless, and just to confirm, your keyboard got bricked after executing only the read operation? Or was it after you wrote something to it? If it's the latter what did you write to it? |
Actually, I had compiled smk locally with some changes in layout and other minor changes and i wrote that. The keyboard connects as a HID device. Is the bootloader still intact or have i messed up? Can i not use the JTAG pins to flash the original one. |
Oh ok :) I'm guessing that the way your keyboard is connected together is different from how nuphy-air60 is (which is what SMK currently supports). I assume that's why you might be getting different key presses/random rgb lighting, but I'm not certain. If the keyboard connects as an HID device it should still be possible to boot into ISP mode and flash the original firmware that you dumped. Have you already tried that? For SMK it should be
You can, but you'll need a sinolink device and the ProWriter tool to do that. You'll also need to make sure you reconstruct the full firmware image (main firmware + bootloader) and adjust/remove the changes the ISP bootloader does before you flash it over. |
Hi, finally i was able to fix my keyboard. ubuntu@ubuntu:/Downloads/sinowealth-kb-tool-x86_64-unknown-linux-gnu-v0.0.7$ sudo ./sinowealth-kb-tool read -p nuphy-air60 firmware.hex I successfully flashed the old firmware i had and now its working. |
Also, on ubuntu 22, version 0.0.6 and 0.0.7 do not seem to work, only Trying to find ISP device, ghm@ghm-HP-Pavilion-g6-Notebook-PC:/Documents/sinowealth-kb-tool-x86_64-unknown-linux-gnu-v0.0.5$ sudo ./sinowealth-kb-tool read --vendor_id 0x258a --product_id 0x00ea --firmware_size 61440 --bootloader_size 4096 --page_size 2048 --isp isp.hex |
@gauravmanmode Hey, thanks for sharing the bootloader md5sum and I'm glad to see you got it to work, although I am a bit confused about the issues you reported. Here you mentioned that you got it to work on ubuntu 22 and the logs you attached reference version v0.0.7, but here you mentioned that v0.0.7 and v0.0.6 didn't work on ubuntu 22 and only version v0.0.5 did. Perhaps there was a mistake somewhere? I suspect that it didn't work on windows because it needs a different |
Hi, actually v 0.0.7 and v 0.0.6 do not work and v0.0.5 works for me when the firmware on the keyboard is the original RK 001:003:000:DESCRIPTOR 1704739610.940652 003:003:001:DESCRIPTOR 1704739610.942788 003:003:000:DESCRIPTOR 1704739610.944209 |
Addresses the issue encountered in #28 (comment) and possibly #40 (comment). I initially thought the selected device per interface would not matter for libusb and that any interface would accept a report that was declared for a different interface, but apparently, it does not. Also, libusb might enumerate these interfaces in varying orders, but that seems purely dependent on the USB descriptor. Because of this, it's necessary to specify the interface where the ISP report declaration resides. I'm adding in a default (interface_number = 1) and a new argument to customize it. This might unfortunately break the previously declared parts/devices, but from the device reports I saw myself, the ISP report always lives on interface #1, so perhaps there won't be any issues. Also, just to document this about USBHID somewhere: * macOS - has exactly the same device paths for each interface (does not matter which interface the report is sent to) * linux (libusb) - needs a device path with the correct interface for the report * windows - needs a device path for the specific TLC where thee report was declared in
@gauravmanmode hey, thanks for the usbhid-dump and the firmware dump you sent me earlier. I figured out what the issue with the tool was (details in #43) and released a new version - https://github.com/carlossless/sinowealth-kb-tool/releases/tag/v0.0.8. Please test it out, it should work both on linux and windows! |
Thanks, it is working both linux and windows. |
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x00ea
INFO [sinowealth_kb_tool::isp] Found regular device. Entering ISP mode...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 2/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x00ea
INFO [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 3/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x00ea
INFO [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Retrying... Attempt 4/10
INFO [sinowealth_kb_tool::isp] Looking for vId:0x258a pId:0x00ea
INFO [sinowealth_kb_tool::isp] Regular device didn't come up...
INFO [sinowealth_kb_tool::isp] Regular device not found. Trying ISP device...
INFO [sinowealth_kb_tool::isp] Connected!
INFO [sinowealth_kb_tool::isp] Enabling firmware...
INFO [sinowealth_kb_tool::isp] Reading...
INFO [sinowealth_kb_tool] MD5: e5277ac8658db28e33b3542aa06e4136
not tested writing
The text was updated successfully, but these errors were encountered: