Skip to content

Instantly share code, notes, and snippets.

@jonasmalacofilho
Last active December 22, 2024 10:51
Show Gist options
  • Select an option

  • Save jonasmalacofilho/036728eade8da639812ebf9f5dfafd78 to your computer and use it in GitHub Desktop.

Select an option

Save jonasmalacofilho/036728eade8da639812ebf9f5dfafd78 to your computer and use it in GitHub Desktop.
NZXT Kraken X62: USB protocol

The NZXT Kraken X62

USB analysis and revised protocol for devices with firmware v4.0.2

Part 1: the main loop

Context

Fan: performance mode
Pump: performance mode
Firmware: v4.0.2
CAM: v3.6.5 (before that: v3.5.80)

One complete period

set fan speed to 50%

001417: Bulk or Interrupt Transfer (DOWN), 2018-07-23 10:53:09.4472158 +0.8386039 (1. Device: NZXT USB Device)
Pipe Handle: 0x7c301d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4D 00 00 32 00 00 00 00 00 00 00 00 00 00 00   .M..2...........
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
001419: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:09.4643287 +0.0000083. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C5 08 E5 00 00 00 78 04 00 00 02 1E   ....Å.å...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’

set pump speed to 70%

001421: Bulk or Interrupt Transfer (DOWN), 2018-07-23 10:53:09.4643481 +0.0000139 (1. Device: NZXT USB Device)
Pipe Handle: 0x7c301d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4D 40 00 46 00 00 00 00 00 00 00 00 00 00 00   .M@.F...........
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
001423: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:09.4812748 +0.0000053. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C5 08 E5 00 00 00 78 04 00 00 02 1E   ....Å.å...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001425: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:09.7293620 +0.2480844. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C5 08 D5 00 00 00 78 04 00 00 02 1E   ....Å.Õ...x.....
 00 A0 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   . .=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001427: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:10.8173441 +1.0879583. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C6 08 E5 00 00 00 78 04 00 00 02 1E   ....Æ.å...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001429: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:11.9043535 +1.0869994. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C6 08 E5 00 00 00 78 04 00 00 02 1E   ....Æ.å...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001431: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:12.9923128 +1.0879311. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C6 08 E5 00 00 00 78 04 00 00 02 1E   ....Æ.å...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001433: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:14.0814666 +1.0891366. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C6 08 D5 00 00 00 78 04 00 00 02 1E   ....Æ.Õ...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’
001435: Bulk or Interrupt Transfer (UP), 2018-07-23 10:53:15.1693532 +1.0878794. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1A 01 02 C7 08 D5 00 00 00 78 04 00 00 02 1E   ....Ç.Õ...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’

Other messages

after setting fan and pump profiles to silent

010085: Bulk or Interrupt Transfer (UP), 2018-07-23 11:38:11.5178498 +1.1019490. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x7c3aed10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 1B 03 01 8D 08 4C 00 00 00 78 04 00 00 02 1E   ....�.L...x.....
 00 00 2E 3D F9 AA 86 9B 59 53 91 05 4C C7 AA 80   ...=ùª†›YS‘.LǪ€
 A6 8D A0 82 C6 4D BD 55 0A 83 3A A8 F7 D5 C9 49   ¦� ‚ÆM½U.ƒ:¨÷ÕÉI
 4D 84 5D D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„]Ø@ˆr©ÐCIß°ÒÊ’

Interpretation

Messages to the device: set fan and pump speeds; 65 bytes long; sent every 5 seconds.

Note: CAM v3.6.5 only regularly sends fan speed updates; this must have to do with the behavior observed on linux that setting either pump or fan manual speed restores previously set manual speed for the other channel.

Byte Range Example Description
0x00 0x02 0x02 ??
0x01 0x4d 0x4d ??
0x02 0x00 or 0x40 0x40 Channel: fan (0x00) or pump (x040)
0x03 0x00 0x00 ??
0x04 0x19-0x64 or 0x3c-0x64 0x46 Speed/maximum (fan: 25%,100%; pump: 60%,100%)
0x05-0x40 0x00 0x00 padding (optional?)

(in this example, set: pump speed to 70%)

Messages from the device: check liquid temperature and fan/pump speeds; 64 bytes long; read every second.

Byte Range Example Description
0x00 0x04 0x04 ??
0x01 - 0x1a Liquid temperature in C: integer part
0x02 0x00-0x09 0x01 Liquid temperature in C: decimal part
0x03 0x04 - 0x02c5 Fan speed in rpm
0x05 0x06 - 0x08e5 Pump speed in rpm
0x07-0x09 0x00 0x00 ??
0x0a 0x78 0x78 ??
0x0b - 0x04 Firmware version: major
0x0c 0x0d - 0x0000 Firmware version: minor
0x0e - 0x02 Firmware version: patch
0x0f-0x3f ?? ?? ??

(in this example, read: 26.1 C liquid temperature, 709 rpm fan speed, 2277 rpm pump speed, firmware v4.0.2)

Part 2: fan and pump control

(notes missing)

Part 3: the LEDs

Context

Fan: performance mode
Pump: performance mode
Firmware: v4.0.2
CAM: v3.6.5 (before that: v3.5.80)

Modes

Logo LED/text: fixed, breathing, fading, pulse and spectrum wave
Ring LED: fixed, breathing, fading, marquee, covering marquee, pulse, spectrum wave, alternating, wings, tai chi, water cooler and loading Super (separate ring LEDs): fixed, breathing and wave

Fixed

sync both channels

001775: Bulk or Interrupt Transfer (DOWN), 2018-07-24 14:31:09.5999260 +0.2922872 (1. Device: NZXT USB Device)
Pipe Handle: 0xed227d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 00 00 02 99 00 FF 00 99 FF 00 99 FF 00 99   .L...™.ÿ.™ÿ.™ÿ.™
 FF 00 99 FF 00 99 FF 00 99 FF 00 99 FF 00 99 FF   ÿ.™ÿ.™ÿ.™ÿ.™ÿ.™ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

independent channels

001191: Bulk or Interrupt Transfer (DOWN), 2018-07-24 14:28:27.3876275 +0.7419863 (1. Device: NZXT USB Device)
Pipe Handle: 0xed227d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 01 00 02 FF FF FF FF FF FF FF FF FF FF FF   .L...ÿÿÿÿÿÿÿÿÿÿÿ
 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
001193: Bulk or Interrupt Transfer (DOWN), 2018-07-24 14:28:27.3896065 +0.0000161 (1. Device: NZXT USB Device)
Pipe Handle: 0xed227d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 00 02 00 99 FF 99 00 FF 99 00 FF 99 00   .L....™ÿ™.ÿ™.ÿ™.
 FF 99 00 FF 99 00 FF 99 00 FF 99 00 FF 99 00 FF   ÿ™.ÿ™.ÿ™.ÿ™.ÿ™.ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

single color setting

Breathing

000249: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:25:43.8502614 +0.0000108 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 06 02 CC FF 00 FF CC 00 FF CC 00 FF CC   .L...Ìÿ.ÿÌ.ÿÌ.ÿÌ
 00 FF CC 00 FF CC 00 FF CC 00 FF CC 00 FF CC 00   .ÿÌ.ÿÌ.ÿÌ.ÿÌ.ÿÌ.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
[...]
001273: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:39:27.5815690 +0.0000080 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 06 E2 26 FF 08 FF 26 08 FF 26 08 FF 26   .L..â&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
color cycle: from 1 to 8 colors, encoded like in fading

Fading

sync text and ring, fading, normal, rgb0 0x350017, rgb1 0xFF2608, rgb2 0x0000FF

000235: Bulk or Interrupt Transfer (DOWN), 2018-07-24 18:16:07.8601258 +0.9298588 (1. Device: NZXT USB Device)
Pipe Handle: 0xdc3c3250 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 00 01 02 00 35 17 35 00 17 35 00 17 35 00   .L....5.5..5..5.
 17 35 00 17 35 00 17 35 00 17 35 00 17 35 00 17   .5..5..5..5..5..
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
000237: Bulk or Interrupt Transfer (DOWN), 2018-07-24 18:16:07.8621946 +0.0000106 (1. Device: NZXT USB Device)
Pipe Handle: 0xdc3c3250 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 00 01 22 26 FF 08 FF 26 08 FF 26 08 FF 26   .L.."&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
001031: Bulk or Interrupt Transfer (DOWN), 2018-07-24 18:20:09.5999207 +0.0000070 (1. Device: NZXT USB Device)
Pipe Handle: 0xdc3c3250 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 00 01 42 00 00 FF 00 00 FF 00 00 FF 00 00   .L..B..ÿ..ÿ..ÿ..
 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF   ÿ..ÿ..ÿ..ÿ..ÿ..ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
001535: Bulk or Interrupt Transfer (DOWN), 2018-07-26 22:58:36.1964498 +0.0000061 (1. Device: NZXT USB Device)
Pipe Handle: 0xeadf65b0 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 01 62 00 FF 33 FF 00 33 FF 00 33 FF 00   .L..b.ÿ3ÿ.3ÿ.3ÿ.
 33 FF 00 33 FF 00 33 FF 00 33 FF 00 33 FF 00 33   3ÿ.3ÿ.3ÿ.3ÿ.3ÿ.3
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
[...]
001551: Bulk or Interrupt Transfer (DOWN), 2018-07-26 22:58:36.2044520 +0.0000070 (1. Device: NZXT USB Device)
Pipe Handle: 0xeadf65b0 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 01 E2 00 99 FF 99 00 FF 99 00 FF 99 00   .L..â.™ÿ™.ÿ™.ÿ™.
 FF 99 00 FF 99 00 FF 99 00 FF 99 00 FF 99 00 FF   ÿ™.ÿ™.ÿ™.ÿ™.ÿ™.ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
byte0 byte1 byte2 byte3 byte4 interval sequence notes
02 4c 00 01 00 slowest 0
02 4c 00 01 02 normal 0
02 4c 00 01 04 fastest 0
02 4c 00 01 22 normal 1
02 4c 00 01 42 normal 2
02 4c 00 01 62 normal 3
02 4c 00 01 e2 normal 8
02 4c 02 01 02 normal 0 ring channel only (text color sent... but ignored?)

interval: 5 levels, slowest to fastest
color cycle: from 2 (actually 1, but that doesn't make sense) to 8 colors

Marquee

normal, forward, 3, RGB 0xabcdef

002631: Bulk or Interrupt Transfer (DOWN), 2018-07-24 14:35:12.9976120 +0.0000185 (1. Device: NZXT USB Device)
Pipe Handle: 0xed227d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 03 02 CD AB EF AB CD EF AB CD EF AB CD   .L...Í«ï«Íï«Íï«Í
 EF AB CD EF AB CD EF AB CD EF AB CD EF AB CD EF   ï«Íï«Íï«Íï«Íï«Íï
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
byte0 byte1 byte2 byte3 byte4 interval direction group size
02 4c 02 03 00 slowest forward 3
02 4c 02 03 01 slower forward 3
02 4c 02 03 02 normal forward 3
02 4c 02 03 03 faster forward 3
02 4c 02 03 04 fastest forward 3
02 4c 02 03 08 slowest forward 4
02 4c 02 03 0a normal forward 4
02 4c 02 03 0c fastest forward 4
02 4c 02 03 10 slowest forward 5
02 4c 02 03 12 normal forward 5
02 4c 02 03 14 fastest forward 5
02 4c 02 03 18 slowest forward 6
02 4c 02 03 1a normal forward 6
02 4c 02 03 1c fastest forward 6
02 4c 12 03 02 normal backward 3

interval: 5 levels, slowest to fastest, encoded like in fading
direction: forwards or backwards, encoded like in marquee
group size: from 3 to 6 single color setting

Covering Marquee

000709: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:36:48.6637085 +0.0000109 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 12 04 02 00 00 FF 00 00 FF 00 00 FF 00 00   .L.....ÿ..ÿ..ÿ..
 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF   ÿ..ÿ..ÿ..ÿ..ÿ..ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
[...]
000737: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:36:48.6777009 +0.0000075 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 12 04 E2 31 46 52 46 31 52 46 31 52 46 31   .L..â1FRF1RF1RF1
 52 46 31 52 46 31 52 46 31 52 46 31 52 46 31 52   RF1RF1RF1RF1RF1R
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
direction: forwards or backwards, encoded like in marquee
color cycle: from 1 to 8 colors, encoded like in fading

Pulse

001909: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:41:17.7824815 +0.0000091 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 07 02 00 35 17 35 00 17 35 00 17 35 00   .L....5.5..5..5.
 17 35 00 17 35 00 17 35 00 17 35 00 17 35 00 17   .5..5..5..5..5..
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
[...]
001937: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:41:17.7964751 +0.0000064 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 07 E2 26 FF 08 FF 26 08 FF 26 08 FF 26   .L..â&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
color cycle: from 1 to 8 colors, encoded like in fading

Spectrum Wave

042195: Bulk or Interrupt Transfer (DOWN), 2018-07-28 01:46:36.9073797 +0.0000138 (1. Device: NZXT USB Device)
Pipe Handle: 0xc2fa6d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 02 02 00 00 FF 00 00 FF 00 00 FF 00 00   .L.....ÿ..ÿ..ÿ..
 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF   ÿ..ÿ..ÿ..ÿ..ÿ..ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
byte0 byte1 byte2 byte3 byte4 interval direction
02 4c 02 02 00 slowest forward
02 4c 02 02 02 normal forward
02 4c 02 02 04 fastest forward
02 4c 12 02 02 normal backward

interval: 5 levels, slowest to fastest, encoded like in fading
direction: forwards or backwards, encoded like in marquee
no color setting, obviously

Alternating

002509: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:43:42.6203630 +0.0000108 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 05 02 00 35 17 35 00 17 35 00 17 35 00   .L....5.5..5..5.
 17 35 00 17 35 00 17 35 00 17 35 00 17 35 00 17   .5..5..5..5..5..
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
002513: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:43:42.6223572 +0.0000080 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 05 22 26 FF 08 FF 26 08 FF 26 08 FF 26   .L.."&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
colors: exactly 2
modifier: moving, sets byte2 to 0xa instead of 0x2 (channel is 0x2/ring)

Wings

new after 3.5.9 (found it in 3.6.5)

001431: Bulk or Interrupt Transfer (DOWN), 2018-07-29 05:43:12.3894077 +0.0000213 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 0C 02 FF 84 00 84 FF 00 84 FF 00 84 FF   .L...ÿ„.„ÿ.„ÿ.„ÿ
 00 84 FF 00 84 FF 00 84 FF 00 84 FF 00 84 FF 00   .„ÿ.„ÿ.„ÿ.„ÿ.„ÿ.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
single color setting

Taichi

003509: Bulk or Interrupt Transfer (DOWN), 2018-07-26 23:08:15.1562977 +0.0000108 (1. Device: NZXT USB Device)
Pipe Handle: 0xeadf65b0 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 08 02 00 35 17 35 00 17 35 00 17 35 00   .L....5.5..5..5.
 17 35 00 17 35 00 17 35 00 17 35 00 17 35 00 17   .5..5..5..5..5..
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
003513: Bulk or Interrupt Transfer (DOWN), 2018-07-26 23:08:15.1582928 +0.0000080 (1. Device: NZXT USB Device)
Pipe Handle: 0xeadf65b0 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 08 22 26 FF 08 FF 26 08 FF 26 08 FF 26   .L.."&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
byte0 byte1 byte2 byte3 byte4 interval sequence
02 4c 02 08 00 slowest 1st color
02 4c 02 08 02 normal 1st color
02 4c 02 08 22 normal 2nd color
02 4c 02 08 24 fastest 2nd color

interval: 5 levels, slowest to fastest, encoded like in fading
colors: exactly 2

Water Cooler

003339: Bulk or Interrupt Transfer (DOWN), 2018-07-29 04:47:34.4281739 +0.0000127 (1. Device: NZXT USB Device)
Pipe Handle: 0x2c7f1d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 09 02 00 00 FF 00 00 FF 00 00 FF 00 00   .L.....ÿ..ÿ..ÿ..
 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF 00 00 FF   ÿ..ÿ..ÿ..ÿ..ÿ..ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

interval: 5 levels, slowest to fastest, encoded like in fading
no color setting

Loading (aka Load)

renamed to loading after 3.5.9 (found it in 3.6.5)

043129: Bulk or Interrupt Transfer (DOWN), 2018-07-28 01:51:08.5034537 +0.0000116 (1. Device: NZXT USB Device)
Pipe Handle: 0xc2fa6d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 0A 02 CC FF 00 FF CC 00 FF CC 00 FF CC   .L...Ìÿ.ÿÌ.ÿÌ.ÿÌ
 00 FF CC 00 FF CC 00 FF CC 00 FF CC 00 FF CC 00   .ÿÌ.ÿÌ.ÿÌ.ÿÌ.ÿÌ.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
byte0 byte1 byte2 byte3 byte4
02 4c 02 0a 02

single color setting

Super: fixed

000291: Bulk or Interrupt Transfer (DOWN), 2018-09-02 06:08:07.2707246 +0.0000091 (1. Device: NZXT USB Device)
Pipe Handle: 0xcd793c60 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 00 02 00 00 00 00 00 FF FF 48 00 FF AE   .L........ÿÿH.ÿ®
 00 00 FF 00 00 00 FF 00 00 FF 00 00 FF C6 00 FF   ..ÿ...ÿ..ÿ..ÿÆ.ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

ring or sync
individually set each ring LED
speed: from slowest to fastest

Super: breathing

000011: Bulk or Interrupt Transfer (DOWN), 2018-09-02 06:06:14.1869205 +0.0000161 (1. Device: NZXT USB Device)
Pipe Handle: 0xcd793c60 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 06 02 00 00 00 00 00 FF FF 48 00 FF AE   .L........ÿÿH.ÿ®
 00 00 00 FF 00 00 FF 00 00 FF 00 00 FF C6 00 FF   ...ÿ..ÿ..ÿ..ÿÆ.ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

ring or sync
individually set each ring LED
speed: from slowest to fastest

Super: wave

012099: Bulk or Interrupt Transfer (DOWN), 2018-09-02 06:03:02.8192498 +0.0000277 (1. Device: NZXT USB Device)
Pipe Handle: 0xcd793c60 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 0D 02 00 00 00 00 00 FF FF 48 00 FF AE   .L........ÿÿH.ÿ®
 00 00 00 FF 00 00 FF 00 00 FF 00 00 FF C6 00 FF   ...ÿ..ÿ..ÿ..ÿÆ.ÿ
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .

ring only
individually set each ring LED
speed: from slowest to fastest

Part 4: device initialization

The device does not appear to need to be initialized. CAM queries the serial number, the device description and then issues a single initialization message:

000051: Bulk or Interrupt Transfer (DOWN), 2018-08-30 04:13:15.4716498 +0.0200041 (1. Device: NZXT USB Device)
Pipe Handle: 0xfbdcf0e0 (Endpoint Address: 0x1)
Send 0x2 bytes to the device
 01 59                                             .Y

Part 5: miscellania

Status footers

In a single session...

Just after a hard reset:

000003: Bulk or Interrupt Transfer (UP), 2018-09-16 07:53:18.3448017 +1.2190042. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 18 01 02 E8 08 73 00 00 00 78 04 00 00 02 1E   ....è.s...x.....
 00 9E 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   .žn.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’
000007: Bulk or Interrupt Transfer (UP), 2018-09-16 07:53:20.7827826 +1.2189783. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 18 01 02 E7 08 55 00 00 00 78 04 00 00 02 1E   ....ç.U...x.....
 00 91 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   .‘n.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’
000017: Bulk or Interrupt Transfer (UP), 2018-09-16 07:53:26.8787794 +1.2199830. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 18 01 02 E6 08 55 00 00 00 78 04 00 00 02 1E   ....æ.U...x.....
 00 00 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   ..n.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’

CAM initialization:

000483: Bulk or Interrupt Transfer (UP), 2018-09-16 07:58:10.9406316 +1.2184689. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 18 09 02 E2 08 74 00 00 00 78 04 00 00 02 1E   ....â.t...x.....
 00 9E 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   .žn.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’
000485: Get Descriptor Request (DOWN), 2018-09-16 07:58:11.9775713 +1.0369222 (1. Device: NZXT USB Device)
Descriptor Type: String
Descriptor Index: 0x3
Transfer Buffer Size: 0x82 bytes
LanguageId: 0x409
000486: Control Transfer (UP), 2018-09-16 07:58:11.9779705 +0.0003992. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: Control Pipe
 18 03 34 00 39 00 38 00 37 00 34 00 34 00 38 00   ..4.9.8.7.4.4.8.
 31 00 33 00 33 00 33 00                           1.3.3.3.
Setup Packet
 80 06 03 03 09 04 82 00                           €.....‚.
Recipient: Device
Request Type: Standard
Direction: Device->Host
Request: 0x6 (GET_DESCRIPTOR)
Value: 0x303
Index: 0x409
Length: 0x82
000487: Get Descriptor Request (DOWN), 2018-09-16 07:58:11.9779783 +0.0000078 (1. Device: NZXT USB Device)
Descriptor Type: String
Descriptor Index: 0x2
Transfer Buffer Size: 0x82 bytes
LanguageId: 0x409
000488: Control Transfer (UP), 2018-09-16 07:58:11.9781044 +0.0001261. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: Control Pipe
 20 03 4E 00 5A 00 58 00 54 00 20 00 55 00 53 00    .N.Z.X.T. .U.S.
 42 00 20 00 44 00 65 00 76 00 69 00 63 00 65 00   B. .D.e.v.i.c.e.

Setup Packet
 80 06 02 03 09 04 82 00                           €.....‚.
Recipient: Device
Request Type: Standard
Direction: Device->Host
Request: 0x6 (GET_DESCRIPTOR)
Value: 0x302
Index: 0x409
Length: 0x82
000489: Bulk or Interrupt Transfer (DOWN), 2018-09-16 07:58:11.9915297 +0.0134253 (1. Device: NZXT USB Device)
Pipe Handle: 0x63ba2d10 (Endpoint Address: 0x1)
Send 0x2 bytes to the device
 01 59                                             .Y
000491: Bulk or Interrupt Transfer (UP), 2018-09-16 07:58:11.9936162 +0.0010393. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 18 09 02 E3 08 46 00 00 00 78 04 00 00 02 1E   ....ã.F...x.....
 00 00 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   ..n.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’
000767: Bulk or Interrupt Transfer (UP), 2018-09-16 07:58:45.6876207 +0.8939742. (1. Device: NZXT USB Device) Status: 0x00000000
Pipe Handle: 0x63af4d10 (Endpoint Address: 0x81)
Get 0x40 bytes from the device
 04 19 00 01 30 08 50 00 00 00 78 04 00 00 02 1E   ....0.P...x.....
 00 00 6E 1D F8 BE 96 9B 59 53 91 0D 4C C7 AE C0   ..n.ø¾–›YS‘.LÇ®À
 A6 A9 A0 80 C6 4D BD 55 0A 83 3A A8 F7 55 C9 49   ¦© €ÆM½U.ƒ:¨÷UÉI
 4D 84 DD D8 40 88 72 A9 D0 43 49 DF B0 D2 CA 92   M„ÝØ@ˆr©ÐCIß°ÒÊ’

Tai-chi

000441: Bulk or Interrupt Transfer (DOWN), 2018-09-16 08:27:09.4645752 +0.1873537 (1. Device: NZXT USB Device)
Pipe Handle: 0x63ba2d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 01 00 02 5A AF 2F AF 5A 2F AF 5A 2F AF 5A   .L...Z¯/¯Z/¯Z/¯Z
 2F AF 5A 2F AF 5A 2F AF 5A 2F AF 5A 2F AF 5A 2F   /¯Z/¯Z/¯Z/¯Z/¯Z/
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
000443: Bulk or Interrupt Transfer (DOWN), 2018-09-16 08:27:09.4661893 +0.0000169 (1. Device: NZXT USB Device)
Pipe Handle: 0x63ba2d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 08 00 26 FF 08 FF 26 08 FF 26 08 FF 26   .L...&ÿ.ÿ&.ÿ&.ÿ&
 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08 FF 26 08   .ÿ&.ÿ&.ÿ&.ÿ&.ÿ&.
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
000447: Bulk or Interrupt Transfer (DOWN), 2018-09-16 08:27:09.4681778 +0.0000078 (1. Device: NZXT USB Device)
Pipe Handle: 0x63ba2d10 (Endpoint Address: 0x1)
Send 0x41 bytes to the device
 02 4C 02 08 20 00 35 17 35 00 17 35 00 17 35 00   .L.. .5.5..5..5.
 17 35 00 17 35 00 17 35 00 17 35 00 17 35 00 17   .5..5..5..5..5..
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
 00                                                .
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment