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

NZXT Kraken Elite 360 #596

Closed
Ch40t1x opened this issue Apr 23, 2023 · 13 comments · Fixed by #605
Closed

NZXT Kraken Elite 360 #596

Ch40t1x opened this issue Apr 23, 2023 · 13 comments · Fixed by #605
Labels
new device Support for a new device

Comments

@Ch40t1x
Copy link

Ch40t1x commented Apr 23, 2023

Device type

AIO liquid cooler

Product page

https://nzxt.com/product/kraken-360-elite

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

Physical connection

USB header

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, attempting to capture USB/HID traffic

@Ch40t1x Ch40t1x added the new device Support for a new device label Apr 23, 2023
@brokenmass
Copy link
Contributor

brokenmass commented May 18, 2023

kraken elite has the same interface of kraken Z, at least the one for temperature and pump/fan controls.
Kraken elite PID - 0x300C

does anyone have the PID for the non elite version ?

@LXXero
Copy link

LXXero commented May 19, 2023

I have a kraken 240, non-elite, and i get the following:

Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x1e71 NZXT
  idProduct          0x300e 
  bcdDevice            1.00
  iManufacturer           1 NZXT Inc.
  iProduct                2 NZXT Kraken Base

@brokenmass
Copy link
Contributor

brokenmass commented May 19, 2023

@LXXero amazing thanks. If I may ask, what are you using liquidctl for ? Do you use it to set pump image or to control pump duty ? Do you use it in conjunction with fancontrol ?

finally, can you let me know what’s the firmware version reported in cam ?

@aleksamagicka
Copy link
Member

Does the non-Elite Kraken behave like the Kraken Z as well? These new IDs aren't in liquidctl right now, only 3008 is for Kraken Z.

Looks like low hanging fruit if they do behave the same (and for the kernel driver as well). Can you please test all the functionality?

@brokenmass
Copy link
Contributor

brokenmass commented May 19, 2023

Does the non-Elite Kraken behave like the Kraken Z as well? These new IDs aren't in liquidctl right now, only 3008 is for Kraken Z.

Looks like low hanging fruit if they do behave the same (and for the kernel driver as well). Can you please test all the functionality?

Yes new kraken have same protocol as kraken X3/Z3 with the following differences:

  • no led control
  • image Bulk transfer doesn’t seems to be limited to 512bytes but can be arbitrarily big (on the elite a whole raw image can be transferred in a single call 6406404bytes)

PIDS are

  • 0x300e new kraken
  • 0x300c new kraken elite

I’ve raised pr to librehardwaremonitor (LibreHardwareMonitor/LibreHardwareMonitor#1078) to add support and added it to my own Fancontrol plug-in ( https://github.com/brokenmass/Fancontrol.NzxtKraken ) and works perfectly. I’ll add the non elite version pid now that @LXXero shared with me

@LXXero
Copy link

LXXero commented May 19, 2023

@LXXero amazing thanks. If I may ask, what are you using liquidctl for ? Do you use it to set pump image or to control pump duty ? Do you use it in conjunction with fancontrol ?

finally, can you let me know what’s the firmware version reported in cam ?

I've not used cam, or well, anything yet beyond a live-image, on this PC. It's a brand new build sitting on the floor next to me, with no OS installed, and I was running memtest86 to ensure it was stable before I installed the OS, and that's when I noticed CPU temps creeping up, leading me here. I didn't realize how new this cooler was when I bought it, go figure! But I'm glad to help get it working any way I can.

I haven't tried to set the image, I wasn't sure if the non-elite could do that, but i guess it's mostly just a larger screen on the elite? i honestly didn't even realize the difference at the time of purchase, I just didn't care about having RGB.

Right now, I'm just using it to increase the fan speed, I'm not really sure what I intend to do with it beyond fan/pump speeds. I replaced the stock fans with noctua a12x25s and they needed a slight speed bump at minimum setting, as they're capable of running quite a bit slower than the stock fans. I'm not really sure where I intend to go from here, though. I just modified the python file on the live-image to test this out, and it did work.

@brokenmass
Copy link
Contributor

Difference between elite and non elite is lcd size and resolution. The current code will not work as it’s written for krakenZ that have resolution of 320x320 while new ones are 640x640 (elite) or 240x240 (non elite).
Apart from that and the fact that bulk calls do not have to be splitted in chunks of 512bytes, the protocol is the same.

@aleksamagicka
Copy link
Member

aleksamagicka commented May 19, 2023

Apart from that and the fact that bulk calls do not have to be splitted in chunks of 512bytes, the protocol is the same.

Does it still accept the image when it's sent in chunks as is the case right now? The resolution seems easy enough to customize in code. (I worked on the driver, but not on the LCD stuff so I'm pretty much looking at it for the first time - trying to gather info for a PR.)

@brokenmass
Copy link
Contributor

brokenmass commented May 19, 2023

I think it might still work but sending 1.7MB in chunks is gonna be slow.

I can send you a pr later if you want

@LXXero
Copy link

LXXero commented May 19, 2023

Difference between elite and non elite is lcd size and resolution. The current code will not work as it’s written for krakenZ that have resolution of 320x320 while new ones are 640x640 (elite) or 240x240 (non elite). Apart from that and the fact that bulk calls do not have to be splitted in chunks of 512bytes, the protocol is the same.

Makes sense, honestly this thing is already much fancier than any cooler I've had before. I basically spent the price difference on upgrading the fans instead. Sounds like the protocol is at least getting better this revision.

If code for the new resolutions does become available, I can at least test for the non-elite.

@aleksamagicka
Copy link
Member

aleksamagicka commented May 19, 2023

@brokenmass That works as well! I can take a look at it.

We also have a kernel driver for the Krakens in the works (it's almost complete for a v1 for mainline and only some synchronization code is left to be merged, not pertaining to this). I'll look into extending it to support these devices as well.

@brokenmass
Copy link
Contributor

@aleksamagicka sorry got carried away by another hack (https://www.reddit.com/r/NZXT/comments/13mem4v/using_a_kraken_lcd_as_a_monitor_d_30fps/) and didn't have time to raise a pr

@greyowl
Copy link

greyowl commented Jul 25, 2023

Hi, I was wondering if there was a way to control kraken 240, non-elite with the most recent version of liquitctl whilst #605 is being worked on

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

Successfully merging a pull request may close this issue.

5 participants