LibreHardwareMonitorLib/Hardware/Controller/Arctic/README.MD
Arctic Fan Controller USB Custom HID device that accepts 10 PWM commands (0–100%) via OUT reports and returns current PWM values plus 10 RPM sensor readings (0–65535) via IN reports every ~1 second, using 32-byte reports.
Interface: USB Custom HID
Vendor ID (VID): 0x3904 (14596 decimal)
Product ID (PID): 0xF001 (61441 decimal)
Report Size: 32 bytes
Report ID: 0x01 (byte 0)
Format:
0x01Specifications:
Example: Set channel 1 to 50%, channel 2 to 75%
[0x01, 50, 75, ...]
Format:
0x01Specifications:
Example: Read sensor 1 RPM
RPM = buffer[11] + (buffer[12] << 8)
0x01 required in all reportsSetting PWM: Channel 1 = 50%, Channels 2-10 = 75%
Byte: 0 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
Hex: 0x01 0x32 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
Dec: 1 50 75 75 75 75 75 75 75 75 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
└─┘ └────────────────────────────────────────────────────────┘ └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
ID PWM Channels 1-10 (duty cycle %) Ignored
Explanation:
Reading current PWM and RPM values
Byte: 0 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
Hex: 0x01 0x32 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0x4B 0xDC 0x05 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0xD0 0x07 0x00
Dec: 1 50 75 75 75 75 75 75 75 75 75 220 5 208 7 208 7 208 7 208 7 208 7 208 7 208 7 208 7 208 7 0
└─┘ └────────────────────────────────────────────────────────┘ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ └┘
ID Current PWM values (Channels 1-10) RPM values (Sensors 1-10, uint16 little-endian) Padding
Explanation: