rnayabed / rangoli

Free, Open Source, Lightweight, Cross-platform Software for Royal Kludge Keyboards
https://rnayabed.github.io/rangoli_website
GNU General Public License v3.0
277 stars 14 forks source link

RK84RGB (258a:0059 [?]) bricked. #19

Open iluvfish123 opened 1 year ago

iluvfish123 commented 1 year ago

Hello, I came across this github on a reddit comment recommending it over the default software of Royal Kludge and decided I should try it out. I just got my Royal Kludge RK84 RGB today and after plugging it in and playing around a bit with the on-board lights and modes, I decided to open the Rangoli software in hopes of easily changing the RGB lights. It detected my keyboard fine and I went to click on some rgb modes to customize it and notice upon selecting one it doesn't mirror my keyboard.

I then noticed clicking FN + any of the buttons before to change lights didn't work at all and when I tried to type, nothing happens. I exited the program and same thing so I restarted my PC and it says USB device not recognized, Rangoli software also cannot detect the keyboard anymore, checking the devices tab says Unknown USB Device (Device Descriptor Request Failed). Trying it on wireless mode (both 2.4 ghz and bluetooth) also doesn't do anything (no lights on and whatnot), and trying to connect it to the 2.4ghz dongle (the pc does detect the dongle) and bluetooth doesn't connect

Is there a way to reset the keyboard somehow? Maybe it just malfunctioned trying to connect to the software and locked up somehow? I didn't download any firmwares or anything on it. FN + Spacebar to reset it according to their user manual doesn't do anything either

rnayabed commented 1 year ago

Rangoli has been confirmed to work with RK84 wireless before. It does not flash any firmware, only sends commands to it to change config. Therefore I don't think there is any possibility for bricking.

But again, I am not the designer of RK firmware, and there is virtually no documentation available. I only was able to put together the bits and pieces by trial and error and wireshark.

Closing this issue for now. This will be reopened in case multiple people report such issues.

macjendr commented 1 year ago

Hello,

I think it should be reopened. Today I wanted to give it a try since I didn't find any software for RK family keyboards for Linux. I used portable version, it detected my keyboard (RK84) and it asked me for sudo password, since it was fresh install with some random pass I provided it.

Keyboard immediately stopped working, USB port didn't recognized it properly anymore and after reopening Rangoli it didn't find it.

Tried restoring firmware from RK website on Windows with no success (it has to detect it too) and I'm waiting for response from their support now, cause I don't see any option left but to open it, look for reset pins or anything and hope for the best or to call it bricked.

I don't want to bring bad news and complain, cause it's always user fault if using unofficial software, but I don't think it should state that there's no risk of bricking the keyboard. Some calls to RK software can be bugged and even if firmware is still there then it's hard to debug and correct by standard methods, cause USB detection is completely lost other than "something is plugged in".

rnayabed commented 1 year ago

This is sad. I will disable the keyboard to prevent users from bricking further. Can you provide the Vendor/Product ID of the keyboard? There are quite a number of "RK84" keyboards.

It will also be helpful if you post your communication with RK support here. Once you get it back running, it would be really helpful if you would run a few tests (will post them if you agree) and send hex dumps of the communication between RK Software and your RK84, so that I can compare and fix accordingly.

I hope you understand it is not under my intention to brick keyboards, I assumed that even if the commands sent in were incorrect, it would not brick the keyboard. Rangoli development is mostly done on the only RK keyboard I own - RK71 RGB Wired. During early development I sent a lot of incorrect commands, most of the time nothing happened, and even if it stopped working, a simple Fn + Space for few seconds reset the board like new.

I will also update the Disclaimer and add the bricking warnings, and remove "no possibility of bricking".

rnayabed commented 1 year ago

Also, is your keyboard powered with a battery, or is it wired only?

macjendr commented 1 year ago

Hi @rnayabed thanks for quick response, it's "RK84 75% Wireless Mechanical Keyboard", I couldn't find specific product ID, but it's that one: https://rkgamingstore.com/products/rk84-75-percent-keyboard - it's three modes - wired, bluetooth and dongle. I had keyboard wired during Rangoli usage.

I will of course update this issue if support will provide me with something useful, I hope they do, cause warranty can be voided by using software other than theirs, for now I ordered a second one, will try to disassemble faulty one and send new one back if I manage to restore firmware to default. I can run tests for you if I'll be 100% sure I can restore it anytime just like you could with your RK71.

Of course I don't expect any malicious intent from you, it's just misfortunate chain of events that sometimes you can't predict, especially in free software where you don't have all "test subjects". I'm not even a beginner in this area (communication with any hardware firmware), so I don't know if it's possible to, for example, fully bulletproof Rangoli from making changes that can cause errors rendering keyboard non-responsive, maybe giving full access on Linux is a factor here, I honestly don't know.

Thanks for updating disclaimer, I know it's not something pleasant for a developer to do, but will encourage users to be cautious before problems dissappear, especially cause it looks well made, better than original RK software.

rnayabed commented 1 year ago

Assuming the bricked keyboard to have vid/pid 258a:0059. Disabling it for now

spaceman7777 commented 2 months ago

It's worth noting that the keyboard they are currently selling as the RK84 is actually what rangoli refers to as the RK84N (as reported by the hex code, and confirmed when running rangoli).

The sticker on the base of the keyboard says RK84, but the vendor:product hex reported by arch is 0x258a:0x00c8, which is the hex for the RK84N. So, perhaps all new RK84's now have the same internals as whatever was previously referred to as the RK84N? (I can't find any record of what the RK84N is exactly, but I'm assuming it was some special edition or something that they sold for a while.

Anyway, I haven't had any problems getting rangoli to work with what Royal Kludge is now selling as the RK84, so :D