Skip to content

Open source interface for iCUE LINK Hub and other Corsair AIOs, Hubs for Linux

License

Notifications You must be signed in to change notification settings

rfaes/OpenLinkHub

 
 

Repository files navigation

OpenLinkHub interface for Linux

Open source Linux interface for iCUE LINK Hub and other Corsair AIOs, Hubs.

Build

Web UI

Info

  • This project was created out of own necessity to control fans and pumps on workstations after switching everything to Linux.
  • I take no responsibility for this code at all. Use this at your own risk.
  • Most of the devices are actually tested on live hardware.
  • OpenLinkHub supports multiple devices.
  • Take care and have fun!

Supported devices

Device VID PID Sub Devices
iCUE LINK System Hub 1b1c 0c3f
ShowiCUE LINK QX RGB
iCUE LINK RX
iCUE LINK RX RGB
iCUE LINK RX MAX
iCUE LINK RX MAX RGB
iCUE LINK LX RGB
iCUE LINK H100i
iCUE LINK H115i
iCUE LINK H150i
iCUE LINK H170i
XC7 Elite
XG7
XD5 Elite
XD5 Elite LCD
VRM Cooling Module
iCUE LINK TITAN H100i
iCUE LINK TITAN H150i
iCUE LINK TITAN H115i
iCUE LINK TITAN H170i
LCD Pump Cover
iCUE LINK XG3 HYBRID
iCUE COMMANDER Core 1b1c 0c32
0c1c
ShowH100i ELITE CAPELLIX
H115i ELITE CAPELLIX
H150i ELITE CAPELLIX
H170i ELITE CAPELLIX
H100i ELITE LCD
H150i ELITE LCD
H170i ELITE LCD
H100i ELITE LCD XT
H115i ELITE LCD XT
H150i ELITE LCD XT
H170i ELITE LCD XT
H100i ELITE CAPELLIX XT
H115i ELITE CAPELLIX XT
H150i ELITE CAPELLIX XT
H170i ELITE CAPELLIX XT
1x Temperature Probe
4-LED RGB Fan
8-LED RGB Fan
QL Fan Series
LL Fan Series
ML Fan Series
Any PWM Fan
iCUE COMMANDER Core XT 1b1c 0c2a
ShowExternal RGB Hub
2x Temperature Probe
4-LED RGB Fan
8-LED RGB Fan
QL Fan Series
LL Fan Series
ML Fan Series
Any PWM Fan
H55 RGB AIO
H100 RGB AIO
H150 RGB AIO
iCUE H100i RGB ELITE 1b1c 0c35
0c40
iCUE H115i RGB ELITE 1b1c 0c36
iCUE H150i RGB ELITE 1b1c 0c37
0c41
Lighting Node CORE 1b1c 0c1a
ShowHD RGB Series Fan
LL RGB Series Fan
ML PRO RGB Series Fan
QL RGB Series Fan
8-LED Series Fan
SP RGB Series Fan
Lighting Node PRO 1b1c 0c0b
Show2x External RGB Hub
HD RGB Series Fan
LL RGB Series Fan
ML PRO RGB Series Fan
QL RGB Series Fan
8-LED Series Fan
SP RGB Series Fan
Commander PRO 1b1c 0c10
Show2x External RGB Hub
4x Temperature Probe
Any PWM Fan
XC7 ELITE LCD CPU Water Block 1b1c 0c42
ShowRGB Control
LCD Control

Installation (automatic)

As of 0.1.5 version, OpenLinkHub ships with .deb and .rpm packages for ease of installation. Packages will automatically set up all the required device and folder permissions. Packages will also take care of systemd service creation and first startup.

  1. Download either .deb or .rpm package from the latest Release, depends on your Linux distribution
  2. Open terminal
  3. Navigate to the folder where the package is downloaded
# Debian Based (deb)
$ sudo apt install ./OpenLinkHub_X.X.X_amd64.deb 

# RPM based (rpm)
$ sudo rpm -ivh OpenLinkHub-X.X.X-1.x86_64.rpm

Installation (manual)

1. Requirements

# Required packages (deb)
$ sudo apt-get install libudev-dev

# Required packages (rpm)
$ sudo dnf install libudev-devel

2. Build & install

$ git clone https://github.com/jurkovic-nikola/OpenLinkHub.git
$ cd OpenLinkHub/
$ go build .
$ chmod +x install.sh
$ sudo sh install.sh

3. Installation from compiled build

# Download latest build from https://github.com/jurkovic-nikola/OpenLinkHub/releases
$ wget https://github.com/jurkovic-nikola/OpenLinkHub/releases/download/0.2.0/OpenLinkHub_0.2.0_amd64.tar.gz
$ tar xvf OpenLinkHub_0.2.0_amd64.tar.gz
$ cd OpenLinkHub/
$ chmod +x install.sh
$ sudo sh install.sh

4. Configuration

{
  "debug": false,
  "listenPort": 27003,
  "listenAddress": "127.0.0.1",
  "cpuSensorChip": "k10temp",
  "manual": false,
  "frontend": true,
  "metrics": true,
  "dbusMonitor": false
}
  • listenPort: HTTP server port.
  • listenAddress: Address for HTTP server to listen on.
  • cpuSensorChip: CPU sensor chip for temperature. k10temp or zenpower for AMD and coretemp for Intel
  • manual: set to true if you want to use your own UI for device control. Setting this to true will disable temperature monitoring and automatic device speed adjustments.
  • frontend: set to false if you do not need WebUI console, and you are making your own UI app.
  • metrics: enable or disable Prometheus metrics
  • dbusMonitor: enable or disable iCUE Link System Hub suspend / resume via DBus. Set this to true of your hub is not recovering after sleep via normal method

Running in Docker

As an alternative, OpenLinkHub can be run in Docker, using the Dockerfile in this repository to build it locally. A configuration file has to be mounted to /opt/OpenLinkHub/config.json

$ docker build . -t openlinkhub
$ # To build a specific version you can use the GIT_TAG build argument
$ docker build --build-arg GIT_TAG=0.1.3-beta -t openlinkhub .

$ docker run --privileged -v ./config.json:/opt/OpenLinkHub/config.json openlinkhub

# For WebUI access, networking is required
$ docker run --network host --privileged -v ./config.json:/opt/OpenLinkHub/config.json openlinkhub

Device Dashboard

  • Device Dashboard is accessible by browser via link http://127.0.0.1:27003/
  • Device Dashboard allows you to control your devices.

RGB Modes

  • RGB configuration is located at database/rgb.json file.

Configuration

  • profiles: Custom RGB mode data
    • key: RGB profile name
      • speed: RGB effect speed, from 1 to 10
      • brightness: Color brightness, from 0.1 to 1
      • smoothness: How smooth transition from one color to another is.
        • the smoothness is in range of 1 to 40
      • start: Custom starting color in (R, G, B, brightness format)
      • end: Custom ending color (R, G, B, brightness format)
        • If you want random colors, remove data from start and end JSON block. "start":{} and "end":{}

API

  • OpenLinkHub ships with built-in HTTP server for device overview and control.
  • Documentation is available at http://127.0.0.1:27003/docs

About

Open source interface for iCUE LINK Hub and other Corsair AIOs, Hubs for Linux

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 60.4%
  • HTML 25.9%
  • CSS 9.2%
  • JavaScript 4.1%
  • Other 0.4%