Fix OpenRGB 1.0 compatibility and resilient device discovery #98
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/issue-97-openrgb-resilience"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #97
Summary
Improve RGB Aura compatibility with OpenRGB 1.0 and make device discovery/recovery more resilient without weakening strict hardware mapping safety.
The OpenRGB 1.0 upgrade exposed several separate problems: renamed motherboard zones, intermittent GPU discovery, an unstable plugin-list SDK request, OpenRGB process restarts, and the ASUS RTX 5080 returning in a hardware
Rainbowmode instead of theDirectmode required for per-LED control.Changes
requiredmapping support so explicitly optional devices may be absent without disabling the remaining validated zones.openrgb-python==0.3.7.ensure_direct_modemapping behavior.Directmode before per-LED animation writes.Validation
The changes were validated against the actual OpenRGB 1.0 installation and production hardware.
OpenRGB successfully detected the ASUS TUF GeForce RTX 5080 Gaming OC and ASUS ROG STRIX B650E-E GAMING WIFI with all expected zones.
The OpenRGB process was deliberately killed with
SIGKILL.openrgb-sdk.servicerestarted it after the stable-I2C gate, RGB Aura detected the SDK disconnect and exited non-zero, andrgb-aura.servicerestarted and revalidated the hardware successfully.The RTX 5080 recovery issue was reproduced separately: OpenRGB exposed the GPU in
Rainbowmode while RGB Aura's per-LED writes requireDirect. The new runtime preparation was hardware-tested by deliberately placing the GPU inRainbow; RGB Aura detected the state, switched the validated GPU toDirect, verified the transition, and normal GPU animation resumed.The complete test suite passes, including coverage for zone aliases, malformed mappings, optional-device absence, recovered-device validation, runtime refresh, OpenRGB client compatibility, scheduler refresh behavior, and Direct-mode preparation.
Design notes
Optional status relaxes only complete device absence. A present device with an unexpected identity still fails mapping validation.
Zone compatibility remains explicit rather than fuzzy: only configured aliases are accepted.
Full OpenRGB process failure recovery remains owned by systemd. RGB Aura handles the disconnect safely, exits non-zero, and performs fresh enumeration and mapping validation after systemd restarts it.
The portable v1.1 device-profile work is intentionally not wired into the current runtime as part of this issue.