Skip to content

Latest commit

 

History

History
63 lines (40 loc) · 2.11 KB

File metadata and controls

63 lines (40 loc) · 2.11 KB

OpenRGB on R75 (Linux) — offset protocol with Vial

Our firmware keeps Vial on the normal VIA/Vial RAW HID command IDs and speaks OpenRGB with every command ID shifted by 0x20 (OPENRGB_MERGED_OFFSET).

Wire byte Meaning
0x010x13, 0xFE VIA / Vial (unchanged)
0x21 OpenRGB GET_PROTOCOL_VERSION (expect 0x21 0x0E)
0x22 Other OpenRGB commands (offset)

USB IDs stay VID=0x342D PID=0xE484 with 80 RGB matrix LEDs.

Why stock OpenRGB may not see the board

Upstream OpenRGB’s QMK OpenRGB detector expects non-offset command IDs and often different VID/PID tables. For coexistence with Vial we intentionally use the offset protocol (same idea as reelmesh/openrgb-gmmk2-p96-iso).

Until a detector patch lands in your OpenRGB build:

  1. Use host/openrgb_probe.py to verify the keyboard answers offset commands.
  2. Drive reactive effects with host/cpu_heat_rgb.py (SDK / hidraw) or patch OpenRGB.

Probe (no OpenRGB GUI required)

# optional: pacman -S python-hidapi   (or pip install hidapi)
python host/openrgb_probe.py

Success looks like protocol version 0x0E on command 0x21.

Example: CPU heat → red wash

python host/cpu_heat_rgb.py

Maps idle → cool blue, 100% CPU → red (reads /proc/stat).

Music / desktop sound visualizer

Close Vial first (it holds the RAW HID interface).

# cava already installed; PipeWire/Pulse running
python host/audio_reactive_rgb.py              # rainbow spectrum across keys
python host/audio_reactive_rgb.py --mode wash  # whole-board energy wash
python host/audio_reactive_rgb.py --sensitivity 1.6

Config: host/cava_r75.conf (64 bars → 80 LEDs). Play music/system audio and the board should move with it.

If cava exits immediately, edit host/cava_r75.conf and try method = pulse under [input].

Build flags (already enabled in keymap)

keyboards/rk/r75/keymaps/vial/rules.mk:

  • OPENRGB_MERGED_ENABLE = yes
  • SRC += quantum/openrgb_merged.c

config.h:

  • #define OPENRGB_MERGED_OFFSET 0x20