Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Please add support for Kraken 240 #624

Open
marcomistretta opened this issue Aug 18, 2023 · 15 comments
Open

Please add support for Kraken 240 #624

marcomistretta opened this issue Aug 18, 2023 · 15 comments
Labels
new device Support for a new device

Comments

@marcomistretta
Copy link

Device type

AIO liquid cooler, Kraken 240 (no rgb version)

Product page

https://nzxt.com/product/kraken-240

First-party software

NZXT CAM

What monitoring functionality does the device support?

temperatures, fan/pump speeds or duty cycles

What configuration functionality does the device support?

fan/pump speeds or duty cycles, lighting of embedded LEDs, lighting of accessories like RGB fans or LED strips

Physical connection

No response

Connection protocol

No response

Additional information about the device

No response

Can you help with implementing or testing the changes needed for liquidctl to support this device?

testing changes on Linux

@marcomistretta marcomistretta added the new device Support for a new device label Aug 18, 2023
@aleksamagicka
Copy link
Member

aleksamagicka commented Nov 24, 2023

You didn't list the USB product ID, so I'll guess that it's 0x300E. Support for that landed in #605 and is now in the main branch. Can you please try and see if it works for you?

@Silverwolf-3D
Copy link

Silverwolf-3D commented Dec 14, 2023

Does this help I did a lsusb
Bus 001 Device 002: ID 1e71:2012 NZXT NZXT RGB Controller
Bus 003 Device 002: ID 1e71:300e NZXT NZXT Kraken Base
I got one also, but I am a linux newbie so hope this helps.
Because Liquidctl does not see him...

@lanceofwhichwedream
Copy link

Going to +1 this thread, looks like on windows the Kraken 240 presents itself like this

USB\VID_1E71&PID_300E&MI_00
Vendor id 1e71
Product id 300e

I'd be super down to test on windows and I can provide any additional information you might need @aleksamagicka

@aleksamagicka
Copy link
Member

Support for that Kraken in liquidctl has been merged in October. Please retry with the Git version for the time being.

@lanceofwhichwedream
Copy link

Will do, thank you for the info. I'll report back if it was successful.

@renhiyama
Copy link

@lanceofwhichwedream can you report back whether you got it working successfully or not? I need to buy a water cooler, and this cooler costs $30 less than kraken x53, so if its successful, I could be getting a better product with more features (lcd) and $30 cheaper 😅

@naggie
Copy link

naggie commented Mar 31, 2024

I can confirm it works on fb697e0 (latest master as of yesterday, linux, NixOS 23.11)

...however, after overnight using the python library to control pump and fan speed I get a "device has no langid" error like this previously reported bug: #618 . It's a bit different as it was working (so permissions are fine) but then it stops.

image

Same with liquidctl status:
image

(context: new motherboard/cooler for my fan control script -- it works in the same way, the only difference being I control the fan via the kraken now too every 0.5s. The X53 was reliable)

dmesg is littered with USB errors. I'm not sure at this point if it's my motherboard or the 240. I've confirmed it's unrelated, I'll wait until it happens again to see if there's anything useful that won't get lost in the noise this time (I've fixed the other wifi related issue)

Replugging the internal USB connection gets things back working:
image

Perhaps this is a Kraken firmware bug? I don't run windows so I've never updated its firmware.

@naggie
Copy link

naggie commented Apr 1, 2024

It crashed again overnight, more than 12 hours after re-plugging it. Nothing in dmesg that I can't explain.

The LCD on the Kraken is also stuck -- the default live temperature is stuck on 34c no matter how much I load it. Traceback:

Traceback (most recent call last):
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/bin/.liquidctl-wrapped", line 9, in <module>
    sys.exit(main())
             ^^^^^^
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/cli.py", line 415, in main
    selected = list(find_liquidctl_devices(**opts))
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/__init__.py", line 63, in find_liquidctl_devices
    for dev in bus_cls().find_devices(**kwargs):
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/usb.py", line 601, in find_devices
    yield from drv.probe(handle, vendor=vendor, product=product, **kwargs)
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/usb.py", line 120, in probe
    dev = cls(handle, desc, **consargs)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/kraken3.py", line 619, in __init__
    self.bulk_device = next(
                       ^^^^^
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/kraken3.py", line 623, in <genexpr>
    if handle.serial_number == self.device.serial_number
       ^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/rwwgwynpqcbwr63dfw3paiaswdjyzxrn-python3.11-liquidctl-99.99.99/lib/python3.11/site-packages/liquidctl/driver/usb.py", line 369, in serial_number
    return self.usbdev.serial_number
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/vg1g7yv0rdvvpx05888ls12b6fl023mz-python3.11-pyusb-1.2.1/lib/python3.11/site-packages/usb/core.py", line 864, in serial_number
    self._serial_number = util.get_string(self, self.iSerialNumber)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/vg1g7yv0rdvvpx05888ls12b6fl023mz-python3.11-pyusb-1.2.1/lib/python3.11/site-packages/usb/util.py", line 313, in get_string
    raise ValueError("The device has no langid"
ValueError: The device has no langid (permission issue, no string descriptors supported or device error)

lsusb after crash shows: Bus 001 Device 013: ID 1e71:300e NZXT NZXT Kraken Base and no other NZXT devices.

@naggie
Copy link

naggie commented Apr 2, 2024

I've booted into a copy of windows and started NZXT CAM, which immediately updated the firmware (with no warning ha). I'll report back in a few days if that sorts the problem.

Well, nope. It lasted only a few minutes this time.

Note also in windows I had to replug the device to get CAM to recognise it. Perhaps I have a dud?

@aleksamagicka
Copy link
Member

Note also in windows I had to replug the device to get CAM to recognise it. Perhaps I have a dud?

From what you're describing, it seems plausible to me (but I've never had this happen to concur). Maybe check that the cables are snug? Perhaps the connector isn't soldered correctly or is otherwise damaged, and the firmware disconnects after failed packets.

I'm guessing that other devices on internal USB work fine?

@naggie
Copy link

naggie commented Apr 3, 2024

I actually spoke to soon -- I forgot the sudo (or udev rules) when I checked it before going to sleep 🤦

It's been running for 15h after the firmware update without a problem. I'll report back tomorrow, if it's still working then the firmware update may have fixed it.

Otherwise yes indeed the internal USB is fine with other devices and the cables seem ok. Thanks for the reply

@naggie
Copy link

naggie commented Apr 4, 2024

OK it's been nearly 24h, I can confidently say the firmware update fixed the problem. I've made a PR to update the readme.

@robzombie91
Copy link

just to add to this, my kraken 240 doesnt display anything when doing liquid list, and the pip version shows this error ValueError: The device has no langid (permission issue, no string descriptors supported or device error)
lsusb does show it as Bus 001 Device 006: ID 1e71:300e NZXT NZXT Kraken Base

@naggie
Copy link

naggie commented Apr 18, 2024

Have you tried updating the firmware using NZXT Cam? Also, I presume you're using udev rules or sudo.

@robzombie91
Copy link

Yeah I figured out that sudoing would let me run the script successfully

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new device Support for a new device
Projects
None yet
Development

No branches or pull requests

7 participants