Skip to content

About

Independent OpenRGB fork fixing Logitech Powerplay/G502 rescan crashes, lighting-control and reconnect recovery, Lightspeed detection, and controller shutdown races.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenRGB Fixed

Build and tests

An independent OpenRGB fork that fixes shared Logitech receiver handle ownership, controller shutdown races, and lighting-control recovery. It keeps Powerplay and its paired mouse enabled during device rescans.

Based on OpenRGB 1.0rc3.1, commit 5e81e26. This is the complete application source, including the upstream device controllers, GUI, profiles, and SDK. It is not an official OpenRGB release.

Download

Get the Windows x64 portable ZIP and its SHA256 checksum from Releases. Extract the whole ZIP into a dedicated folder and run OpenRGB.exe. The Microsoft Visual C++ x64 runtime is required. RAM/SMBus access also requires PawnIO and an administrator launch.

Linux and other platforms can build from source. The Build and tests workflow builds the Windows and Ubuntu applications and runs the protocol and lifetime regression tests automatically on pushes to main and pull requests. Automatic runs use standard runners without uploading artifacts or saving Qt caches. Start it with Run workflow to obtain a Windows build artifact; manual runs can cache Qt and their build artifacts expire after one day. Hardware compatibility still depends on upstream device support.

What is fixed

  • Idle controller workers: workers wait for queued updates instead of polling every millisecond, while retaining the existing update coalescing.
  • Corsair V2 hardware lifecycle: interruptible keepalive waits remove the long idle exit/rescan delay, frame writes are serialized, and disconnected handles or report floods cannot trap the input drain in an endless loop.
  • Corsair V2 initialization: the capability request starts with a defined report ID and zeroed reserved bytes instead of uninitialized stack data.
  • Colors after automatic rescan: saved per-LED colors are queued with the restored mode, including devices whose mode update alone does not repaint.
  • Shared Powerplay/mouse handles: the final controller owner closes each receiver HID handle exactly once, preventing the rescan double-close.
  • Failed detection retries: failed controller objects are released, and success on the last permitted attempt is accepted.
  • Shutdown ordering: active controller workers finish before their hardware drivers and buses are destroyed. Cleanup also waits for background controller work such as startup profile application.
  • Legacy Logitech lighting recovery: explicit color updates reacquire lost 0x8071 software control and RGB power, use an explicit static-color parameter, allow the RGB engine to settle after power recovery, and validate receiver replies. See the lighting RCCA.
  • Reliable Lightspeed detection: receiver enumeration and device setup pair every query with its own reply, so slow post-wake replies and boot-time report ordering no longer skip the mouse or the Powerplay mat.
  • Lightspeed reconnect recovery: a small watcher per Lightspeed or Powerplay receiver repaints a paired device with its current OpenRGB colors when it reconnects, when RGB power returns, when it loses software lighting control, or if its own firmware repaints its default while OpenRGB still holds control. A device that was asleep during detection is registered when it wakes and receives the last loaded profile. A watched receiver that is unplugged and reconnected, or re-enumerated after resume, triggers a rescan that restores the last loaded profile.
  • MSI MAG X870E TOMAHAWK MAX WIFI: the Mystic Light 761 controller now recognizes this MS-7E59 board by its full name, exposing its JAF and three JARGB headers. Upstream lists only the non-MAX board name for MS-7E59.

Read the root-cause analysis, validation, and provenance.

Known limits

Fixed.8 uses a fork-specific binary plugin compatibility version. Plugins built for upstream OpenRGB API 4 are rejected; rebuild them against this fork's current headers and controller implementation. The network SDK protocol is unchanged.

Reconnect recovery applies to devices behind a legacy Lightspeed or Powerplay receiver on Windows and macOS. CI builds and tests macOS, but macOS recovery has not been tested on hardware. One receiver of each model is supported. It checks each awake device every 30 seconds and shortly after it reconnects, and refreshes static colors every five minutes, so a wrong color can show for up to that long. Another application continuously writing to the same device can still interfere; the watcher then logs a warning and backs off to one attempt every two minutes instead of fighting it faster. See Troubleshooting to change the interval or turn it off.

Recovery after a receiver is reconnected rescans every device and re-applies the last loaded profile, replacing unsaved changes. Full Windows reboot, sleep/hibernation/resume, and future driver-update behavior need physical testing on your hardware. The application does not disable Logitech services or Windows Dynamic Lighting for you.

Setup, startup, and updates

See Troubleshooting and persistence for missing RAM, ignored colors, elevated startup, and rollback. Save your own profile and use only one startup entry. To request saved colors after Windows wakes, enable Set Profile on Resume using the resume setup instructions. That setting is separate from login startup and is disabled by default.

This portable fork does not automatically replace its executable; updates are intentional downloads from this repository.

Build and test

Build instructions cover the complete app. The regression tests need only a C++17 compiler and CMake:

git clone https://github.com/kylejduan/OpenRGB-Fixed.git
cd OpenRGB-Fixed
cmake -S tests -B build/regression -DCMAKE_BUILD_TYPE=Debug
cmake --build build/regression --config Debug --parallel
ctest --test-dir build/regression -C Debug --output-on-failure

Contributing and license

Report fork-specific bugs with the bug-report template and submit pull requests. Include the build revision, OS, device model, connection type, reproduction steps, and relevant log excerpts. Remove personal device paths and serials before posting logs. See Contributing.

OpenRGB Fixed preserves OpenRGB's GPL-2.0-or-later licensing and original copyright notices. See LICENSE and third-party notices. OpenRGB and its device support are the work of the upstream project and contributors; this fork carries focused receiver and lighting repairs and its own release tooling.

About

Independent OpenRGB fork fixing Logitech Powerplay/G502 rescan crashes, lighting-control and reconnect recovery, Lightspeed detection, and controller shutdown races.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages