No description
Find a file
2020-01-05 12:52:33 -06:00
Controllers Add functions to get serial port path from USB VID/PID for both Windows and Linux. Use this function to automatically detect the presence of an NZXT Hue+. 2020-01-05 12:52:33 -06:00
dependencies Add Windows support for E1.31 Streaming ACN protocol devices 2020-01-02 21:23:56 -06:00
i2c_smbus Fix most compiler warnings 2019-12-31 19:18:24 -06:00
i2c_tools Add SMBus/I2C dumping tool to System Information page 2019-12-22 00:02:08 -06:00
net_port Fix most compiler warnings 2019-12-31 19:18:24 -06:00
qt Fix most compiler warnings 2019-12-31 19:18:24 -06:00
RGBController Add effect mode and effect color controls to Patriot Viper RGB driver 2020-01-05 01:16:03 -06:00
serial_port Add functions to get serial port path from USB VID/PID for both Windows and Linux. Use this function to automatically detect the presence of an NZXT Hue+. 2020-01-05 12:52:33 -06: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 Windows support for E1.31 Streaming ACN protocol devices 2020-01-02 21:23:56 -06:00
LICENSE Add LICENSE 2019-01-29 03:26:51 +00:00
main.cpp Rename OpenAuraSDK.cpp to OpenRGB.cpp and remove old unused code 2019-12-28 15:24:40 -06:00
OpenRGB.cpp Add Windows support for E1.31 Streaming ACN protocol devices 2020-01-02 21:23:56 -06:00
OpenRGB.h Rename OpenAuraSDK.cpp to OpenRGB.cpp and remove old unused code 2019-12-28 15:24:40 -06:00
OpenRGB.patch Rename OpenAuraSDK to OpenRGB for kernel patch and project file 2019-12-17 20:11:43 -06:00
OpenRGB.pro Add functions to get serial port path from USB VID/PID for both Windows and Linux. Use this function to automatically detect the presence of an NZXT Hue+. 2020-01-05 12:52:33 -06:00
README.md Update README to reflect need to initialize submodules for Windows now that E131 is used on both 2020-01-02 21:28:19 -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. Update the submodules: git submodule update --init --recursive
  3. Open the OpenRGB_Win.pro project.
  4. Build the project for x86 Architecture. The InpOut32 library I use does not support x64.
  5. 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. You will need the libusb-1.0-0 (or equivalent) development package from your distribution's package manager installed.

    git clone https://gitlab.com/CalcProgrammer1/OpenRGB
    cd OpenRGB
    git submodule update --init --recursive
    qmake OpenRGB.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