No description
Find a file
2019-12-20 12:22:14 -06:00
Controllers Start work on Information page and add information fields to RGBController API 2019-12-20 00:54:37 -06:00
dependencies Add support for RGB E1.31 Streaming ACN multicast devices using libe131. Linux only for now. 2019-10-26 21:34:25 -05:00
i2c_smbus Get reorganized code building on Windows 2019-08-22 21:07:13 -05:00
i2c_tools System information page with i2c detect 2019-12-20 12:22:14 -06:00
net_port Get project building on Windows again 2019-09-02 17:48:34 -05:00
qt System information page with i2c detect 2019-12-20 12:22:14 -06:00
RGBController Start work on Information page and add information fields to RGBController API 2019-12-20 00:54:37 -06:00
serial_port Reorganization! Move all controllers into their own folders, move all RGBController wrappers into one folder, move i2c_smbus and serial_port dependencies into folders, and move main application/UI stuff into folders. Should help lead into creating a proper library 2019-08-22 18:43:17 -05:00
wmi Reorganization! Move all controllers into their own folders, move all RGBController wrappers into one folder, move i2c_smbus and serial_port dependencies into folders, and move main application/UI stuff into folders. Should help lead into creating a proper library 2019-08-22 18:43:17 -05:00
.gitmodules Add support for RGB E1.31 Streaming ACN multicast devices using libe131. Linux only for now. 2019-10-26 21:34:25 -05:00
LICENSE Add LICENSE 2019-01-29 03:26:51 +00:00
main.cpp First round of user interface rework changes 2019-12-18 20:33:55 -06:00
OpenAuraSDK.cpp System information page with i2c detect 2019-12-20 12:22:14 -06:00
OpenAuraSDK.h Reorganization! Move all controllers into their own folders, move all RGBController wrappers into one folder, move i2c_smbus and serial_port dependencies into folders, and move main application/UI stuff into folders. Should help lead into creating a proper library 2019-08-22 18:43:17 -05:00
OpenRGB.patch Rename OpenAuraSDK to OpenRGB for kernel patch and project file 2019-12-17 20:11:43 -06:00
OpenRGB.pro System information page with i2c detect 2019-12-20 12:22:14 -06:00
README.md Get Qt project building on Windows, remove Visual Studio files 2019-12-17 18:57:53 -06:00

OpenRGB (formerly OpenAuraSDK)

The goal of this project is to create an easy-to-use open source software program and library for accessing and controlling RGB lights on various PC hardware including motherboards, RAM modules, graphics cards, cooling devices, and peripherals.

This project originally focused only on ASUS Aura. It was spun off of Keyboard Visualizer's AsusAuraWindows branch to learn more about the details behind the Aura protocol and to develop a more flexible, compatible, and reliable driver for Aura. Our Aura implementation is now quite solid and supports multiple generations of Aura controller across both Intel and AMD platforms. It also supports Aura-compatible controllers used across multiple manufacturers of RGB memory modules including G.Skill Trident Z RGB and others. It is still lacking a few capabilities, namely saving settings to persist across reboots, but the core functionality of setting colors and modes is there.

After getting a solid Aura implementation, the project branched out into other manufacturers and categories of RGB devices. A major focus was to develop a software API that could reliably represent as many RGB devices as possible, exposing their various modes and describing their LED layouts via zones, that was generic enough to write a user application without specifically targeting any one manufacturer. To this extent, the generic_rgb_interface_test branch was created which became the foundation of OpenRGB. The goal of OpenRGB is to both develop new drivers for unsupported devices and integrate existing open source drivers for devices that do have some sort of open support. The goal is to be the one-stop solution to open source RGB lighting control!

Supported Devices

  • Asus Aura (SMBus variants only)

  • Gigabyte RGB Fusion 1.0

  • Asus Aura RAM

  • Corsair Vengeance RGB

  • Corsair Vengeance Pro RGB

  • HyperX Predator RGB

  • NZXT Hue+

  • KeyboardVisualizer Arduino LED Strips

  • E1.31 (Linux only)

  • OpenRazer (Linux only)

Installation

Windows

  1. Download the latest Visual Studio Community Edition and Qt Creator.
  2. Open the OpenRGB_Win.pro project.
  3. Build the project for x86 Architecture. The InpOut32 library I use does not support x64.
  4. Copy InpOut32.dll from dependencies to the same path as OpenAuraSDK.exe along with the Qt libraries.

You must run the application as Administrator the first time to allow InpOut32 to set up. It can be run as a normal user afterwards

Linux:

  1. Either open the project using QT Creator or build it using qmake.

    cd OpenAuraSDK
    qmake OpenAuraSDK.pro
    make
    
  2. Allow access to SMBus:

    • This can be identified by your motherboard

      Intel
      • modprobe i2c-dev i2c-i801
      • Asus used the SMBus controller on the Super IO chip for on-board Aura chips on Intel motherboards. I have a kernel patch to add a driver for this chip here. After patching the kernel, enable the Nuvoton NCT67xx SMBus driver in your kernel configuration. The driver may be loaded with modprobe i2c-nct6775
      AMD
      • modprobe i2c-dev i2c-piix4
      • The second SMBus isn't currently picked up by the kernel driver and that seems to be where Asus wired the Aura controllers so I have a kernel patch here that will allow the kernel to use the second bus (at 0x0b20).
    • You'll have to enable user access to your SMbus if you don't run as root.

      • List all SMBus controllers: sudo i2cdetect -l
      • Find out which control your Aura devices (PIIX4, I801, and NCT67xx)
      • Give user access to those controllers, for instance: sudo chmod 777 /dev/i2c-0