This CLI program is meant to replicate the functionality of the original DeepCool Digital
Windows program and I am gradually adding support to new devices.
If you have a device that has not been added or tested yet, please read the notes below the supported devices. If you think you can collaborate, please write an issue so we can get in touch.
Simply download the latest release and make it executable:
chmod +x deepcool-digital-linux
You will need root permission to send data to the device.
[!TIP] For more accurate CPU temperature monitoring, you can use the zenpower3 or asus-ec-sensors kernel modules on supported hardware.
[!NOTE] On Intel's Arc GPUs, you have to use kernel version 6.13 or higher for proper temperature monitoring.
If you need to run the program without root privilege, you can create a udev rule to access all necessary resources as a user.
/lib/udev/rules.d or /etc/udev/rules.dcd /lib/udev/rules.d
99-deepcool-digital.rulessudo nano 99-deepcool-digital.rules
# Intel RAPL energy usage file
ACTION=="add", SUBSYSTEM=="powercap", KERNEL=="intel-rapl:0", RUN+="/bin/chmod 444 /sys/class/powercap/intel-rapl/intel-rapl:0/energy_uj"
# DeepCool HID raw devices
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3633", MODE="0666"
# CH510 MESH DIGITAL
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="34d3", ATTRS{idProduct}=="1100", MODE="0666"
Steps for NixOS
deepcool-digital-linux is packaged in Nixpkgs, available under pkgs.deepcool-digital-linux. A
NixOS module is also available as services.hardware.deepcool-digital-linux.enable. In your NixOS
configuration (for example in your configuration.nix), enabling the service will add the package
to your PATH and start the Systemd service for the persistent daemon.
{
# Enable deepcool-digital-linux
services.hardware.deepcool-digital-linux.enable = true;
# ... rest of your configuration ...
}
You may also want to add the relevant udev rules to your configuration if your hardware requires them.
In your configuration, you may use services.udev.extraRules to add any of the rules that you need.
This is an alternative to using paths such as udev.d that you might be used to from FHS distributions.
{
# ... rest of our configuration ...
services.udev.extraRules = ''
# Intel RAPL energy usage file
ACTION=="add", SUBSYSTEM=="powercap", KERNEL=="intel-rapl:0", RUN+="${pkgs.coreutils}/bin/chmod 444 /sys/class/powercap/intel-rapl/intel-rapl:0/energy_uj"
# DeepCool HID raw devices
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3633", MODE="0666"
# CH510 MESH DIGITAL
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="34d3", ATTRS{idProduct}=="1100", MODE="0666"
'';
}
Once you enable the service, rebuild your configuration and reboot.
You may wish to use the Nix flake provided by this repository to get an up-to-date build of deepcool-digital-linux. While Nixpkgs might take some time to receive updates, the flake will always remain up to date as it will build directly from source.
It is still possible to use the NixOS module provided by nixpkgs if using flake, but you
must adjust the modules' package option to use the correct package. In a setup with flakes
enabled, this would require you to pass inputs in specialArgs, and then obtain the package
from inputs.deepcool-digital-linux.packages as such:
{inputs, pkgs, ...}: {
services.hardware.deepcool-digital-linux = {
enable = true;
package = inputs.deepcool-digital-linux.packages.${pkgs.system}.default;
};
}
Do note that you will be building deepcool-digital-linux from the source each time the flake is updated, because the Nixpkgs binary cache will not be able to provide you cached binaries.
| Name | Supported |
|---|---|
| AG300 DIGITAL | ✅ |
| AG400 DIGITAL | ✅ |
| AG500 DIGITAL | ✅ |
| AG620 DIGITAL | ✅ |
| AK400 DIGITAL | ✅ |
| AK400 DIGITAL PRO | ✅ |
| AK400 G2 DIGITAL NYX | ✅ |
| AK500 DIGITAL | ✅ |
| AK500 DIGITAL PRO | ✅ |
| AK500 G2 DIGITAL NYX | ✅ |
| AK500S DIGITAL | ✅ |
| AK620 DIGITAL | ✅ |
| AK620 DIGITAL PRO | ✅ |
| AK620 G2 DIGITAL NYX | ✅ |
| AK700 DIGITAL NYX | ✅ |
| ASSASSIN IV VC VISION | ✅ |
| Name | Supported |
|---|---|
| LD240 | ✅ |
| LD360 | ✅ |
| LP240 | ✔️ |
| LP360 | ✔️ |
| LQ240 | ✅ |
| LQ360 | ✅ |
| LS520 SE DIGITAL | ✅ |
| LS720 SE DIGITAL | ✅ |
| Name | Supported |
|---|---|
| CH170 DIGITAL | ✔️ |
| CH270 DIGITAL | ✔️ |
| CH360 DIGITAL | ✅ |
| CH510 MESH DIGITAL | ✅ |
| CH560 DIGITAL | ✅ |
| CH690 DIGITAL | ✔️ |
| MORPHEUS | ✅ |
✅: Fully supported
✔️: Partially supported
Some display modes are unavailable due to resource limitations.
⚠️: Not tested ❓: Not added
[!IMPORTANT] - If your device is not added yet, you can still run the program and see if it detects it. - If your device is not tested, please try to check all the features to see if they work as expected.
In any case, you can create an issue or add a comment to an existing one.
These devices are unique since they have an LCD display, and I do not personally own one. However, DeadSurfer opened a discussion and if you can figure out how to make it work, you can share it there or create a pull request.
You can run the program with or without providing any options.
sudo ./deepcool-digital-linux [OPTIONS]
Options:
-m, --mode <MODE> Change the display mode of your device
-s, --secondary <MODE> Change the secondary display mode of your device (if supported)
--pid <ID> Specify the Product ID if multiple devices are connected
--gpuid <VENDOR:ID> Specify the nth GPU of a specific vendor to monitor (use ID 0 for integrated GPU)
-u, --update <MILLISEC> Change the update interval of the display [default: 1000]
-f, --fahrenheit Change the temperature unit to °F
-a, --alarm Enable the alarm
-r, --rotate <DEGREE> Rotate the display (LP Series only)
-z, --zeros Display leading zeros (LD Series only)
Commands:
-l, --list Print Product ID of the connected devices
-g, --gpulist Print all available GPUs
-h, --help Print help
-v, --version Print version
If you have multiple devices connected, you can run the following command to detect them:
sudo ./deepcool-digital-linux --list
Device list [PID | Name]
-----
4 | AK500S-DIGITAL
7 | MORPHEUS
After identifying, you can run them separately by providing their Product ID:
sudo ./deepcool-digital-linux --pid 4
sudo ./deepcool-digital-linux --pid 7
If you want to run them automatically, you can create 2 services instead of 1.
For example:
- deepcool-digital-case.service
- deepcool-digital-cooler.service
deepcool-digital-linux to the /usr/sbin/ foldersudo cp ./deepcool-digital-linux /usr/sbin/
/etc/systemd/system/ foldersudo nano /etc/systemd/system/deepcool-digital.service
[Unit]
Description=DeepCool Digital
[Service]
ExecStart=/usr/sbin/deepcool-digital-linux
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
# On headless servers, use this target instead if your GPU is not detected
# WantedBy=graphical.target
sudo systemctl enable deepcool-digital
Note: The program will run automatically after the next boot.
deepcool-digital-linux to the /usr/sbin/ foldersudo cp ./deepcool-digital-linux /usr/sbin/
/etc/init.d/ foldersudo nano /etc/init.d/deepcool-digital
#!/sbin/openrc-run
description="DeepCool Digital"
command="/usr/sbin/deepcool-digital-linux"
command_args=""
command_background=1
pidfile="/run/deepcool-digital.pid"
sudo chmod +x /etc/init.d/deepcool-digital
sudo rc-update add deepcool-digital default
Note: The program will run automatically after the next boot.
For testing or customization, you can build the binary by following the steps below.
Arch-based distributions
sudo pacman -S base-devel rustup
Debian-based distributions
sudo apt install build-essential pkg-config libudev-dev curl
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
. "$HOME/.cargo/env"
git clone https://github.com/Nortank12/deepcool-digital-linux
cd deepcool-digital-linux
cargo build -r
You can find the binary inside the ./target/release folder.
$ claude mcp add deepcool-digital-linux \
-- python -m otcore.mcp_server <graph>