No description
Find a file
2020-02-19 10:24:56 -06:00
Controllers Add support for mode specific colors in HyperX keyboard breathing mode 2020-02-18 11:01:43 -06:00
dependencies Support 64-bit Windows builds 2020-02-19 10:24:56 -06:00
i2c_smbus Support 64-bit Windows builds 2020-02-19 10:24:56 -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 Update mode color description to add mode-specific colors. 2020-02-16 12:09:11 -06:00
RGBController Add support for mode specific colors in HyperX keyboard breathing mode 2020-02-18 11:01:43 -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
super_io Support 64-bit Windows builds 2020-02-19 10:24:56 -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
.gitignore Add basic support for Asus TUF laptop keyboards through Faustus 2020-01-28 09:10:34 -06:00
.gitmodules Add OpenRazer-Win32 driver to support Razer devices on Windows without official software 2020-02-13 12:36:57 -06:00
LICENSE Add LICENSE 2019-01-29 03:26:51 +00:00
main.cpp Fix Corsair Pro mode initialization 2020-01-25 17:37:32 -06:00
OpenRGB.cpp Add OpenRazer-Win32 driver to support Razer devices on Windows without official software 2020-02-13 12:36:57 -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 Support 64-bit Windows builds 2020-02-19 10:24:56 -06:00
README.md Update README.md 2020-01-15 22:43:22 +00: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

See the Project Wiki for the current list of supported devices.

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) and libhidapi development packages from your distribution's package manager installed.
* sudo apt install qt5-default libusb-1.0-0-dev libhidapi-dev

* git clone https://gitlab.com/CalcProgrammer1/OpenRGB

* cd OpenRGB

* git submodule update --init --recursive

* qmake OpenRGB.pro

* make -j8

* ./OpenRGB
  1. 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