-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathNZXT Kraken X*3 Summary
75 lines (59 loc) · 2.89 KB
/
NZXT Kraken X*3 Summary
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Forth-generation Kraken X coolers
=================================
NZXT Kraken X53
NZXT Kraken X63
NZXT Kraken X73
Relevant files
--------------
Detailed information by @tomaculum: NZXT Kraken X73/01 - tomaculum/README
Analysis of some captured data (outdated): NZXT Kraken X63/input-analysis.ods
Captures files and USB descriptors: NZXT Kraken X*3/**
General notes
-------------
vendor := 0x1e71 (NZXT)
product := 0x2007 (shared between X53, X63 and X73)
bcdDevice := 2.01 (not the firmware)
bNumConfigurations := 1
interface 0:
+-- hid
+-- ep 1 in, int, 64 bytes (probably for status in)
+-- ep 1 out, int, 64 bytes (probably for lighting and cooling out)
Known bcdDevice revisions
-------------------------
As of April 2020:
bcdDevice, firmware = [
(2.00, firmware 1.8.0) # NZXT Kraken X53/03*/README
(2.01, firmware 2.1.0)
]
Incomming reports
-----------------
some examples (hex);
+-- 75023e004f001351535739303420012100cc0a646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 11013e004f0013515357393034200720020201000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 71013e004f0013515357393034200100010100000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 21033e004f0013515357393034200300000000000010000000000011000000000000000000000000000000000000000000000000000000000000000000000000
+-- ff013e004f0013515357393034202a04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 75023e004f0013515357393034200121009a0a646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 75023e004f0013515357393034200121019a0a646400000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 75023e004f0013515357393034200121015e084a4a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 75023e004f0013515357393034200121015e084c4c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+-- 75023e004f001351535739303420012101e908515100000000000000000000000000000000000000000000000000000000000000000000000000000000000000
maximum (used) data length := 27 bytes
use of packet error checking := no (apparently)
status fields (first guesses):
+-- only if buf[0] == 0x75
+-- coolant temperature := buf[0x0f] + buf[0x10]/10
+-- pump speed := buf[0x12] << 8 | buf[0x11]
firmware info fields (first guesses):
+-- only if buf[0] == 0x11
+-- major version := buf[0x11]
+-- minor version := buf[0x12]
+-- patch version := buf[0x13]
Initialization
--------------
appears similar to HUE 2 devices:
+-- request firmware info (send hex 1001 + nulls)
+-- request led info (send hex 2003 + nulls)
+-- initialize 1/2 (send hex 700201b80b + nulls)
+-- initialize 2/2 (send hex 7001 + nulls)
+-- read until and parse firmware (0x11) and led (0x21) info responses