Algorithm0 / deepcool-digital-info

This project provides support for Deepcool Digital for Linux OS
MIT License
29 stars 3 forks source link

Adding devices to the configuration #2

Open Algorithm0 opened 6 months ago

Algorithm0 commented 6 months ago

This discussion was created so that everyone who was able to configure their installation using this script would write the PRODUCT_ID and VENDOR_ID. Let's help others! If you used the cofigurator script, then just show the content of your user-devices.json5 here.

frpcastro commented 6 months ago

Adding the CH560 configs: { name: "CH560", product_id: 5, simple: false, vendor_id: 13875, }

It has a dual display (CPU + GPU) with the "complex" config (Usage + Temps), using the configurator script I was able to make it display the CPU usage, not the temps. I'm a beginner to Linux so I wouldn´t be able to help with trying to figure out the coding to get the other data (at least not for now).

P.S.: the configurator script is throwing an error at line 118 because there are double quotes being escaped: [base_script, "-j", f"{json_devices_file}", "-d", f"{json_devices["devices"][selected - 1]["name"]}", "-t"])

I made it work by simply replacing the double quote wrapping the "json_devices" name argument with single quotes: [base_script, "-j", f"{json_devices_file}", "-d", f'{json_devices["devices"][selected - 1]["name"]}', "-t"])

Algorithm0 commented 6 months ago

@frpcastro, hello and thank you very much for your feedback! I have corrected the errors you mentioned and corrected some other things in the new version. Let's try updating first. Launch the new version and let me know the result of your test here. I'll be waiting.

cd deepcool-digital-info
git pull
sudo ./configurator.py

When the configurator asks you "It seems that you have already visited us! A custom device configuration file was detected. To use him?", answer in the negative

In particular, tell how your device reacts during the sending of random data during configuration, both in simple and in complex mode.

frpcastro commented 6 months ago

Hey there, sorry for the long wait!

It just displays random values whenever it refreshes, after running the configuration again, it now displays both the usage and temps for the CPU, alternating between them when it refreshes. The flashing is kinda distracting so I'll probably run it again and configure it just for temps.

I'd really like to get the GPU side working, but I understand that may be tricky, especially due to my GPU being NVIDIA.

Let me know if I can help you with testing anything else!

Edit: Just tried the configuration in "Simple" mode, and it just doesn't display any data. In complex it works as I reported above.

Algorithm0 commented 6 months ago

Hey there, sorry for the long wait!

It just displays random values whenever it refreshes, after running the configuration again, it now displays both the usage and temps for the CPU, alternating between them when it refreshes. The flashing is kinda distracting so I'll probably run it again and configure it just for temps.

I'd really like to get the GPU side working, but I understand that may be tricky, especially due to my GPU being NVIDIA.

Let me know if I can help you with testing anything else!

Edit: Just tried the configuration in "Simple" mode, and it just doesn't display any data. In complex it works as I reported above.

Nothing, I've been waiting for you! And I also have a GPU from a green company and a branch for development, I have already prepared tools for displaying information about the video card. I understand correctly that at the moment one part of your monitor shows information about the processor, and the second (which should display information about the video card) just shows zeros? It will be great if you share a video or a gif about what your Deepcool monitor is now showing.

frpcastro commented 6 months ago

That's exactly it, here's a quick video I just took.

https://github.com/Algorithm0/deepcool-digital-info/assets/14199492/efa29997-4410-442f-95ae-51d4077d9007

Algorithm0 commented 5 months ago

That's exactly it, here's a quick video I just took.

https://github.com/Algorithm0/deepcool-digital-info/assets/14199492/efa29997-4410-442f-95ae-51d4077d9007

Tell me why use is always at zero? It's strange. Did you change something in the script?

Algorithm0 commented 5 months ago

@frpcastro, I have prepared a test file for you to try to initialize the second part of the screen, which is responsible for data from the GPU. And so what do you need to do. To start.

cd deepcool-digital-info
git fetch
git checkout ch560
sudo systemctl stop deepcool-temp.service
sudo ./CH560-test.py

After this, you should see static data on the left side of your Deepcool screen. If nothing is displayed, or errors appear, then report it to me here - there is no point in going further. If everything is as I said, then press Ctrl+C to stop the script. Now open the file CH560-test.py in your favorite text editor, look closely at these lines (~21st line):

# Varible data
SEND_START = False  # 'False' or 'True'
SEND_MODE = False  # 'False' or 'True'
SHIFT = -1  # -1..40

And so... Routine work awaits you. You need to change the values in these lines, save the file, run. Look at the screen, did anything appear? If not, then change again, look again. I understand it’s exhausting, but I can’t imagine anything else right now. If I were you, I would start with this configuration:

# Varible data
SEND_START = False  # 'False' or 'True'
SEND_MODE = True  # 'False' or 'True'
SHIFT = 0  # -1..40

And with each launch I would gradually increase the value of the SHIFT variable. If you were finally able to see something like this on the screen of your Deepcool:

# We want to see something like this:
# Left side of the screen                                    Right side of the screen
#      8 squares                                                     2 squares
#         36 C                                                          33 C

Then write here the configuration with which you succeeded. With this data I can add your device as fully compatible.

unitedrus commented 5 months ago

Hello! This script should help you configure the program. It is recommended to run the script with superuser rights to ensure that he has access to the necessary packages, as well as access to USB devices. If you have already installed this, then it is recommended to stop the deepcool-temp service. Stop the service? [Y/n]: y If you see an error that this service is not detected, then don’t worry, it just doesn’t exist in your system yet. Let's try. First, all necessary Python packages will be checked. Begin? [Y/n]: y All modules are installed! Great! Well, let's now try to identify your device! 1 CH510 2 AK620 3 AK400 4 AK500S 5 AK500 6 No my device 0 I think I forgot to turn off the iron! (Go out) Please select: 2 Wait a little and see what's wrong with your device. Do you see that it shows some random data? [Y/n]: Traceback (most recent call last): File "/home/demitar/deepcool-ak620-digital-linux/deepcool-digital-info/deepcool-digital-info.py", line 167, in hidDevice = hid.device() ^^^^^^^^^^ AttributeError: module 'hid' has no attribute 'device'. Did you mean: 'Device'?

Unfortunately it doesn't work. Installed on the system Arch Linux

Algorithm0 commented 5 months ago

Hello! This script should help you configure the program. It is recommended to run the script with superuser rights to ensure that he has access to the necessary packages, as well as access to USB devices. If you have already installed this, then it is recommended to stop the deepcool-temp service. Stop the service? [Y/n]: y If you see an error that this service is not detected, then don’t worry, it just doesn’t exist in your system yet. Let's try. First, all necessary Python packages will be checked. Begin? [Y/n]: y All modules are installed! Great! Well, let's now try to identify your device! 1 CH510 2 AK620 3 AK400 4 AK500S 5 AK500 6 No my device 0 I think I forgot to turn off the iron! (Go out) Please select: 2 Wait a little and see what's wrong with your device. Do you see that it shows some random data? [Y/n]: Traceback (most recent call last): File "/home/demitar/deepcool-ak620-digital-linux/deepcool-digital-info/deepcool-digital-info.py", line 167, in hidDevice = hid.device() ^^^^^^^^^^ AttributeError: module 'hid' has no attribute 'device'. Did you mean: 'Device'?

Unfortunately it doesn't work. Installed on the system Arch Linux

Please try to install the following package in your system.

unitedrus commented 5 months ago

Thank you kind person! It worked, I tried your project deepcool-ak620-digital-linux, I have the same model of device, but unfortunately it does not show the temperature, but only the percentage of cooler usage.

Algorithm0 commented 5 months ago

@unitedrus, This is the percentage of CPU usage, not in the cooler). As for choosing the temperature, you choose the temperature sensor yourself through the configurator, right? What processor do you have?

unitedrus commented 5 months ago

@Algorithm0 Xeon E5 -2696 -v3

unitedrus commented 5 months ago

@Algorithm0 Is a Log Install

   ~/deepcool-ak620-digital-linux/deepcool-digital-info on   main ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✔ at 15:10:02   ╰─ sudo ./configurator.py Hello! This script should help you configure the program. It is recommended to run the script with superuser rights to ensure that he has access to the necessary packages, as well as access to USB devices. If you have already installed this, then it is recommended to stop the deepcool-temp service. Stop the service? [Y/n]: y If you see an error that this service is not detected, then don’t worry, it just doesn’t exist in your system yet. Let's try. First, all necessary Python packages will be checked. Begin? [Y/n]: y All modules are installed! Great! Well, let's now try to identify your device! 1 CH510 2 AK620 3 AK400 4 AK500S 5 AK500 6 No my device 0 I think I forgot to turn off the iron! (Go out) Please select: 2 Wait a little and see what's wrong with your device. Do you see that it shows some random data? [Y/n]: y Hooray! I congratulate you! The worst is over! Let's now make the information meaningful! And so, then everything should be simpler. We will look at the temperature sensors that we were able to detect and select something suitable.

nvme: 1 Composite: 33.85°C amdgpu: 2 edge: 36.0°C 3 junction: 41.0°C 4 mem: 40.0°C coretemp: 5 Package id 0: 40.0°C 6 Core 8: 32.0°C 7 Core 9: 29.0°C 8 Core 10: 32.0°C 9 Core 11: 31.0°C 10 Core 16: 28.0°C 11 Core 17: 32.0°C 12 Core 0: 33.0°C 13 Core 18: 32.0°C 14 Core 19: 32.0°C 15 Core 20: 30.0°C 16 Core 24: 32.0°C 17 Core 25: 30.0°C 18 Core 26: 33.0°C 19 Core 27: 31.0°C 20 Core 1: 29.0°C 21 Core 2: 33.0°C 22 Core 3: 32.0°C 23 Core 4: 32.0°C

24 Update 0 Exit from configurator Please select variant: 5 Selected sensor: coretemp shwtemp(label='Package id 0', current=40.0, high=68.0, critical=78.0) Now enter the data output interval in seconds (maximum - 60, 0 - to exit the configurator) [2]: 30 And so, it seems we are ready to install! Call the uninstall script? This will be a good idea if you are using an older version of the installation. [y/N]: y Removed "/etc/systemd/system/default.target.wants/deepcool-temp.service". Removed "/etc/systemd/system/suspend.target.wants/deepcool-temp-restart.service". Done. Now let's run the installation script. Launch? [Y/n]: y Warning: The unit file, source configuration file or drop-ins of deepcool-temp.service changed on disk. Run 'systemctl daemon-reload' to reload units. Created symlink /etc/systemd/system/default.target.wants/deepcool-temp.service → /usr/lib/systemd/system/deepcool-temp.service. Created symlink /etc/systemd/system/suspend.target.wants/deepcool-temp-restart.service → /usr/lib/systemd/system/deepcool-temp-restart.service. Done. If you see any errors during the uninstallation and installation run, then don’t worry - most likely these are just attempts to remove something that doesn’t exist. This completes the setup. Enjoy using it!

Algorithm0 commented 5 months ago

@unitedrus, It seems that here you need to take rounding on all the kernels ... I think I will do something like this in the new version. In the meantime, it seems to me that it is better to choose one of the cores. I will also have a request. Could you switch to dev branch and check it out? Will everything work for you? it's not necessary. just a personal request).

unitedrus commented 5 months ago

@Algorithm0 Ok, I'll try it when I get home.

zeditor01 commented 3 months ago

Thanks for the work in this project. I have tested two Deepcool Devices. I am running RHEL 9.4

CH360-Digital Case.

4 {'path': b'1-8:1.0', 'vendor_id': 13875, 'product_id': 21, 'serial_number': '1F6CB19D4C38', 'release_number': 512, 'manufacturer_string': 'DeepCool', 'product_string': 'CH360-DIGITAL', 'usage_page': 0, 'usage': 0, 'interface_number': 0}

Results identical to fpcastro and the CH560. Left hand display (CPU) flips between a plausible temperature readout, and 0% usage readout. Right hand display (GPU) just displays zero.

LD240 Liquid Cooler.

6 {'path': b'1-10:1.0', 'vendor_id': 13875, 'product_id': 10, 'serial_number': '1FD02D104C38', 'release_number': 512, 'manufacturer_string': 'DeepCool', 'product_string': 'LD-Series', 'usage_page': 0, 'usage': 0, 'interface_number': 0}

Nothing displays on the cooling head. Not even the random test data.

Any suggestions on either ? I would be pleased to perform any testing and feedback the results.

zeditor01 commented 3 months ago

correction. The CPU usage indicator does work properly. I wrote a test script to make it busy for a few seconds, and the temperature readout increased and the Usage percentage registered 4%. The temperature dropped back down really quickly.

bmstettin commented 3 months ago

Thanks for the work in this project.

it works for MORPHEUS-DIGITAL with complex It shows alternating CPU and Usage correct, GPU Part shows 0 with no movement { name: "MORPHEUS-DIGITAL", product_id: 7, simple: false, vendor_id: 13875, }

basheer-cex commented 3 months ago

Hi guys,

I'm trying to install this on my ProxmoxVE 8.2 baremetal os. I have a custom PC build with the AK400-DIGITAL cooler (see below for details). I have installed the necessary requirement but when i try to install, it's throwing me this error:

root@localhost:/deepcool-digital-info# ./configurator.py Traceback (most recent call last): File "/root/deepcool-digital-info/./configurator.py", line 5, in import click ModuleNotFoundError: No module named 'click' root@localhost:~/deepcool-digital-info# pip list | grep -F click click 0.5.0.post9 root@localhost:~~/deepcool-digital-info#

Any help is appreciated guys. Thanks in advance.

This is my device details: Bus 001 Device 004: ID 3633:0001 DeepCool AK400-DIGITAL Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x3633 idProduct 0x0001 bcdDevice 2.00 iManufacturer 1 DeepCool iProduct 2 AK400-DIGITAL iSerial 3 3F****38 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x0029 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.10 bCountryCode 0 Not supported bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 126 Report Descriptors: UNAVAILABLE Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 10 Device Status: 0x0000 (Bus Powered)

keystroke3 commented 1 month ago

Thanks for the project. It works well on LS520 SE DIGITAL WH. I am just adding this here for Google search results. I have only tested with CPU Temps and Power Usage.

{
    name: "LS-SE-DIGITAL",
    product_id: 6,
    simple: false,
    vendor_id: 13875
}