Add EVision V3 (RDR tri-mode) keyboard controller

What this MR does

Adds support for EVision's current "RDR" tri-mode firmware keyboards (VID 320F, shared PID 5055). These are sold under many brands: Eternico MKS7150 (tested), Yenkee YKB 30, Womier SK75, Zuoya GMK87, IQUNIX MG65, EvoFox Ronin, Kreo Hive, Rampage Parvus and more. Related: #4831, #5131, #5155.

Unlike the older EVision keyboards handled by EVisionKeyboardController, this firmware generation does not answer the legacy 0xFF1C vendor protocol (packets are silently discarded). Instead it speaks the VIA protocol v11 on its 0xFF60 raw HID interface, exposing hardware effects on the VIA RGB matrix channel.

The new EVisionV3KeyboardController:

  • talks VIA (custom_set_value/custom_get_value/custom_save, RGB matrix channel)
  • exposes the firmware's 18 hardware effects + off, brightness 0-9, speed 0-4, HS color, manual save
  • reads the device's current mode/color/brightness back at startup
  • registers only when the device answers the VIA protocol version handshake, because PID 5055 is shared by the whole firmware family (some members use different silicon)

Also included:

  • EVisionKeyboardController: replace blocking hid_read with hid_read_timeout(100 ms) — an unresponsive device otherwise hangs OpenRGB forever; responding devices are unaffected
  • cli.cpp: the device list printed GetLocation() under the "Version:" label; print GetVersion() instead

Testing

Tested on Eternico MKS7150 (AET-MKSB7150CSBRGB, USB name "RDR MKSB7150", 320f:5055, FW 1.00, VIA v11) on Arch Linux: detection, all listed effects, color/brightness/speed changes and initial state read-back verified against the physical device.

Merge request reports

Loading