Skip to content

Release 0.5

Projected timeline based on previous release and current cadence is late November / early December 2020

Core Changes

  • File changes
    • Keep all files in an XDG-compliant configuration directory
    • Add a config file override to the command line #463 (closed)
  • Settings Manager
    • Store settings in a json file
    • Settings Manager instance should be owned by Resource Manager
    • Settings Manager should provide a way to get and set settings, save settings file, reload settings file
      • Get settings fragment based on a settings key
      • Load settings from file
      • Save settings to file
      • Set/update settings fragment in global settings store
    • Qt GUI tab that interfaces with Settings Manager (Postponed to 0.6)
      • Settings manager provides a way to register a setting so that it shows in the GUI
      • Registered setting defines keys and types
      • Device list settings should provide add/remove device functionality
    • Existing settings file users should be migrated to use settings manager
      • E1.31 Device Configuration
      • LED Strip Device Configuration
      • Espurna Device Configuration
      • Philips Wiz Device Configuration
      • Debug Device Configuration
      • Disabled Device List
      • Linux sysfs LEDs
      • Philips Hue Configuration (philips_hue_rebase branch)
  • Resource Manager Changes
    • Move network server and client handling to Resource Manager
    • Add an option to redetect devices
    • Split updating the detection progress into a separate callback from updating the device list
    • Resource manager should track separate controller lists (Partially postponed to 0.6, possible rework)
      • Source: Hardware
      • Source: Client
      • Destination: GUI
      • Destination: Server
    • Resource manager should sync source changes to destination lists
    • Resource manager should handle applying sizes to newly detected controllers
  • User Interface Changes
    • Reuse existing controller tabs rather than deleting everything and recreating them every time list updates
    • Ensure controller tab order matches controller list order when processing list updates
    • Don't interfere with information tabs that aren't device related (software version, i2c tools)
  • SDK Protocol, RGBController API Changes
    • SDK server needs a way to inform clients of device list changes
    • Add vendor strings ("Corsair", "Razer", etc)
    • SDK versioning scheme
    • Standardize Location strings
      • Prefixes for common interfaces
        • USB:
        • HID:
        • I2C:
        • TCP:, UDP:
        • COM:
        • E1.31:
        • Other (OpenRazer, Faustus, etc)
      • Include PID/VID for USB devices
  • Partial MacOS support - master branch should be able to build and run with limited capabilities
  • Move all controller-specific RGBController files into the Controllers directory, as the RGBController directory was getting really messy
  • E1.31
    • Create RGBController objects for each E1.31 device specified rather than grouping them all into one controller
      • EXCEPT if two E1.31 device specifications overlap - use the same universe - then combine them into one controller
        • Check entire range of universes not just starting universe
      • E1.31 controllers containing only one device should use the E1.31 device name
      • E1.31 controllers should have a location string starting with "E1.31: " and containing a list/range of universes
    • Unicast support - Unicast devices should be their own controllers
      • EXCEPT if two devices use the same unicast destination and overlap - use the same universe - then combine them into one controller
    • Make sure OpenRGB E1.31 Receiver only sends a single device update for received E1.31 data, so OpenRGB can act as an E1.31 repeater of sorts without sending duplicate messages
  • Dark theme for Windows
  • Fix I2C Tools not having a list of buses - this change is needed because buses are async detected now

Device Support

  • Fill in PCI information for SMBus/I2C controllers
    • AMD ADL I2C
    • All Linux i2c interfaces (not just nVidia)
    • AMD SMBus on Windows
    • Intel SMBus on Windows
    • Default to zero for non-PCI i2c interfaces (like nuvoton)
  • Rework all GPU controllers to use PCI ID information
    • ASUS GPU
    • Galax GPU
    • Gigabyte GPU
    • MSI GPU
    • Sapphire GPU
  • Rework all Motherboard and RAM SMBus controllers to use PCI ID information
    • ASUS Aura SMBus (AMD, Intel, Nuvoton)
    • ASRock Polychrome (AMD, Intel)
    • Gigabyte RGB Fusion (AMD, Intel)
    • Gigabyte RGB Fusion 2 SMBus (AMD, Intel)
    • Corsair Vengeance (AMD, Intel)
    • Corsair Vengeance Pro (AMD, Intel)
    • Crucial (AMD, Intel)
    • HyperX DRAM (AMD, Intel)
    • Patriot Viper (AMD, Intel)
    • Investigate limiting motherboard detection even further using subsystem information
  • MSI-RGB inversion flag set from DMI information (#452 (closed))
  • Corsair mouse labels
    • Corsair M65 RGB Elite
    • Corsair Harpoon RGB Pro
    • Corsair Sabre RGB
  • Espurna controller (https://github.com/xoseperez/espurna)
    • Light device type
  • EVGA GPU support (https://gitlab.com/CalcProgrammer1/OpenRGB/-/wikis/EVGA-GPU)
    • EVGA V1 (Pascal)
    • EVGA V2 (Turing)
    • EVGA V3 (Ampere)?
  • New SteelSeries Devices
    • SteelSeries Apex Pro TKL
    • SteelSeries Old Apex
  • Philips Hue (philips_hue_rebase branch) (Postponing until 0.6)
    • Connect to Hue bridge (https://github.com/enwi/hueplusplus)
    • Support for color-controlled bulbs and strips
    • Figure out how to pair with bridge and save username
    • Light device type
    • Entertainment Mode group controller
    • Move Entertainment Mode functionality into hueplusplus library
    • Integrate hueplusplus library cleanly
    • Use settings manager for Philips Hue bridge network locations, usernames, client keys
    • Multiple bridge support
    • Only create individual bulb controllers for bulbs not in entertainment group
  • Philips Wiz
    • Send RGB control to Wiz bulb
    • Receive module name and firmware version
    • Figure out if it is possible to avoid fade effect
    • Autodetection?
    • Light device type
  • Generic Linux LED sysfs interface
    • Manual detection using linuxleds.txt
    • Improve configuration to handle trigger setting, blink setting, and possibly others
    • Autodetect RGB LEDs
  • Corsair Dominator Platinum RGB
    • Detection
    • Direct mode
    • Effect modes
  • Sony DualShock 4 (!160 (closed))
    • Add GamePad type
  • Adalight protocol (https://forums.adafruit.com/viewtopic.php?f=47&t=29970) (Arduino serial protocol that is a bit better than my Keyboard Visualizer one) (Postponing until 0.6)
  • Logitech G213 (MR !171 (closed))
  • ROG Swift PG27VQ
    • See #499
    • Captures provided, USB Aura device
    • Add Monitor type
  • ROG Gladius II Core
  • ROG Gladius II
  • HyperX Fury Ultra Mousemat
    • Detection, Direct Mode
    • Built in effects
    • Correct LED count and zones
    • Figure out issues with interface 0 not showing up in Linux with hidraw
  • SteelSeries Apex M750
  • Asus TUF Gaming laptops (WMI version on Windows)
  • Coolermaster ARGB Controller #530 (closed) !180 (closed)
  • See New Device Issues (Any not listed postponed to 0.6)

Nice to Haves

  • Move key names to a common header file
  • USB Hotplug (probably won't make it into 0.5)

Related Project Improvements (i.e. Non OpenRGB)

Stretch targets

Last minute to-dos before release

  • NZXT Hue+ Fix-Up
    • Add Direct mode (much faster!)
    • Fix glitching on Linux
  • HyperX DRAM Fix-Up
    • Either change name to HyperX DRAM or use SPD information to choose proper name (Predator vs Fury)
    • Fix mapping when not all slots are filled
    • See if we can reduce flickering
  • Settings UI for detectors
    • Rework to interface only with settings manager
  • Desktop file on Linux doesn't open OpenRGB with lowercase name
  • Wiki article or FAQ instructions for "disabling devices" #804 (closed)
    • Added link to OpenRGB Settings page on wiki homepage
    • Added link to README as well.
  • Keymaps for Razer keyboards:
    • Huntsman (non-Elite)
    • Ornata Chroma
  • Profile delete button doesn't work
Edited by Adam Honse