skraus-dev / cherryrgb-rs

Cherry RGB Keyboard - Multi platform tool to set RGB LEDs for Cherry keyboards
MIT License
41 stars 3 forks source link

Other supported Cherry Keyboards #3

Open skraus-dev opened 3 years ago

skraus-dev commented 3 years ago

Please refer to this table: COMPATIBILITY.md

timitos commented 3 years ago

I tried it with an MX 10.0N RGB and got the following output

sudo ./cherryrgb_cli --product-id 419 -b medium animation rain slow 00ff00
Error: Fetching device state failed

Caused by:
    0: Interrupt read failure
    1: Operation timed out
skraus-dev commented 2 years ago

Hey @timitos

Can you try to comment out the fetching of device state in main.rs and try again? Cheers

hjudt commented 2 years ago

Reporting success for MX BOARD 10.0N RGB: ./cherryrgb_cli --product-id 223 -b full animation rolling slow

I believe it does not support all the animations listed in your docs, e.g. Rain does not work. I can't remember seeing this listed in the cherry utility software either, so this might not be possible with this device. You might consider listing both decimal and hexadecimal values in your list if one has to issue them in decimal.

Another question: How can I set it back to my custom key color configuration? I can switch through all choices with - and finally get there, but is there a way to directly switch to it via cherryrgb?

hjudt commented 2 years ago

Ok, I stand corrected. Rain does work, as do the other unofficial effects, it just didn't work at first; I had to unplug and replug the keyboard. Also, I can simply switch to my custom config using animation custom.

timitos commented 2 years ago

MX BOARD 10.0N RGB is working for me now, too. I had to reset the keyboard to factory defaults first.

starsforeveryone commented 2 years ago

Can confirm that the MX 10.0 N RGB (046a:00df) is now working out of the box! 😎 No factory reset needed, as long as you go from "unboxing the keyboard" straight to using it on Linux.

Only problem is the lack of documentation. The software's built-in help function tells the user to enter numbers for mode, speed, and brightness while in reality, you have to use the arguments as defined in "models.rs": mode: wave, spectrum, breathing, static, radar, vortex, fire, stars, rain, custom, rolling, curve, wave_mid, scan, radiation, ripples, single_key speed: very_slow, slow, medium, fast, very_fast brightness: off, low, medium, high, full

Examples (all looking very cool btw): cherryrgb_cli -b full animation static fast ffffff // Static illumination on full brightness in white cherryrgb_cli -b medium animation stars fast // Animation "stars", fast, on medium brightness (RGB, therefore no color given) cherryrgb_cli -b high animation ripples very_slow 0088ff // Animation "ripples", very slow, on high brightness in cyan cherryrgb_cli -b low animation scan medium ff0000 // Animation "scan", medium, on low brightness in red cherryrgb_cli -b high animation fire fast ff1100 // Animation "fire", fast, on high brightness in dark orange

All examples were tested on my Cherry MX 10.0N RGB keyboard and work. Maybe someone could implement them into the built-in help and GitHub readme? This would certainly benefit anyone who wants to use this nice piece of software.

Thank you very much!

as32 commented 1 year ago

Thanks for your project! Still interesting (to me, at least ;-)) I tried to use it on Windows (with the full size variant, DE layout) and at first I ran into this problem:

DEBUG [cherryrgb] * Connected to: Bus 003 Device 005 ID 046a:00de Error: Failed to create keyboard Caused by: 0: kernel_driver_active 1: Operation not supported or unimplemented on this platform

I had to comment out some "kernel_driver related code" in lib.rs.

let kernel_driver_active = #device_handle.kernel_driver_active(INTERFACE_NUM).context("kernel_driver_active")?; if kernel_driver_active { device_handle.detach_kernel_driver(INTERFACE_NUM).context("Failed to detach active kernel driver")?; }

It would be an improvement to query the OS and skip that for windows.

And I had to use zadig for installing the WinUSB driver to get it to work.