Device model
Thermalright MC-3 DIGITAL — DDR5 memory cooler with LED segment display (3x ARGB fans over DIMM slots, digital temp readout).
Diagnostic report
trcc report output
=========================================
TRCC debug report — 2026-08-11 15:01:07 UTC
=========================================
## Install
version 9.9.5
installed_by pip
module_path /home/rj/Applications/thermalright-trcc-linux/src/trcc
interpreter /home/rj/Applications/thermalright-trcc-linux/.venv/bin/python3
python 3.14.6
## Platform
distro CachyOS
python_impl CPython
machine x86_64
system Linux
release 7.1.6-1-cachyos
## Paths
config_dir /home/rj/.trcc
data_dir /home/rj/.trcc/data
user_content_dir /home/rj/.trcc-user
log_file /home/rj/.trcc/trcc.log
## Devices (1)
0416:8001 LED Controller wire=led
usb power: control=auto status=active remote_wakeup=no suspended_for=2608ms
handshake: (live probe unavailable — device busy or LED; see Handshake-from-log below)
## Handshake (from log — fallback)
2026-08-11T10:00:46 INFO trcc.adapters.device._base:Led.connect:116: Led handshake OK: PM=128 SUB=96 resolution=(0, 0) style=lc1 model=LC1
2026-08-11T10:00:46 INFO trcc.adapters.device._base:Led.connect:116: Led handshake OK: PM=128 SUB=96 resolution=(0, 0) style=lc1 model=LC1
## Sensors (62)
cpu:temp 49.00 °C (temperature)
cpu:usage 1.60 % (usage)
cpu:freq 3386.05 MHz (clock)
cpu:power — (power)
memory:used 3921.66 MB (memory)
memory:available 59975.29 MB (memory)
memory:total 63896.95 MB (memory)
memory:percent 6.10 % (memory)
memory:temp 37.75 °C (temperature)
memory:clock 2404.00 MHz (clock)
gpu:0:temp 31.00 °C (temperature)
gpu:0:usage 4.00 % (usage)
gpu:0:clock 810.00 MHz (clock)
gpu:0:power 37.69 W (power)
gpu:0:fan 30.00 % (fan)
gpu:0:vram_used 1491.31 MB (gpu_memory)
gpu:0:vram_total 16303.00 MB (gpu_memory)
gpu:nvidia:0:temp 31.00 °C (temperature)
gpu:nvidia:0:usage 4.00 % (usage)
gpu:nvidia:0:clock 810.00 MHz (clock)
gpu:nvidia:0:power 37.69 W (power)
gpu:nvidia:0:fan 30.00 % (fan)
trcc system hid-debug 0416:8001 (device free)
HID/LCD diagnostic for 0416:8001
============================================================
Handshake: Connected: (0, 0)
resolution: 0x0
model_id: 128
sub_byte: 96
Persisted state:
orientation: 0
brightness: 100%
current_theme: None
overlay_enabled: True
============================================================
USB descriptor (lsusb -v -d 0416:8001)
Bus 003 Device 005: ID 0416:8001 Winbond Electronics Corp. HID Transfer
Negotiated speed: Full Speed (12Mbps)
Device Descriptor:
bcdUSB 1.10
idVendor 0x0416 Winbond Electronics Corp.
idProduct 0x8001 HID Transfer
bcdDevice 0.00
iManufacturer 1 Nuvoton
iProduct 2 HID Transfer
Configuration Descriptor:
bNumInterfaces 1
bmAttributes 0x80 (Bus Powered)
MaxPower 100mA
Interface Descriptor:
bInterfaceClass 3 Human Interface Device
bNumEndpoints 2
Endpoint Descriptor:
bEndpointAddress 0x81 EP 1 IN (Interrupt, 64 bytes)
Endpoint Descriptor:
bEndpointAddress 0x02 EP 2 OUT (Interrupt, 64 bytes)
Device capabilities
The MC-3 is an LED segment device — it has ARGB fans and a small digital readout, no full LCD. It reports as PM=128 / SUB=96 and maps to the LC1 style (31 segments, 0 zones).
What works
- ✅ Detection —
trcc detect finds it immediately as 0416:8001 (wire=led)
- ✅ Handshake — Connects cleanly, PM=128 SUB=96, identified as LC1 style
- ✅ STATIC color — Solid cyan lighting working perfectly, persists across reboots
- ✅ Brightness control — Adjustable and persisting (currently at 65%)
- ✅ All 6 LED modes available — STATIC, BREATHING, COLORFUL, RAINBOW, TEMP_LINKED, LOAD_LINKED
- ✅ Daemon-based operation — Running via
trcc daemon + trcc led play as systemd user services
Two issues I worked through (may be relevant for MC-3 / LC1-style devices)
1. Frozen memory temperature on standalone led play
When running trcc led play directly (without the daemon), mem_temp freezes at the boot-time DIMM reading because BaselineSensors.read_all() returns its cached _readings dict forever — there's no TTL, and only MetricsLoop.start() (which only the daemon calls) refreshes the cache. The MC-3's default display source is memory temp, so the readout showed a stale ~38°C while the DIMMs were actually at ~42°C.
Fix: Route through the daemon instead of standalone led play — set Environment=TRCC_DAEMON=1 on the led play service and add Requires=trcc-daemon.service.
2. USB suspend/resume reconnection loop
After a suspend/resume cycle, led play detects the dead USB handle and exits 1. But the systemd start-limit defaults were too loose — RestartSec=15 is slower than the start-limit window, so the unit retried forever (1279 times over 5 hours) without ever being declared failed or triggering OnFailure= recovery.
Fix: Tighten the start-limit on the led play service so three failures in two minutes trips it:
StartLimitIntervalSec=120
StartLimitBurst=3
OnFailure=trcc-reconnect.service
The trcc-reconnect.service re-binds the USB device and restarts the daemon, which re-claims the interface.
Additional context
- Confirmed working in Windows TRCC? Yes — the MC-3 appears on the LED lighting tab in the Windows TRCC 2.1.2 app, not the LCD tab.
- USB ID:
0416:8001 (same as the AX120/PA120 Digital series — Winbond/Nuvoton HID LED controller)
- Hardware: Gigabyte X670E AORUS PRO X, Ryzen 9 7950X3D, 2×32GB DDR5. The MC-3 fans are also tied into CoolerControl via the IT8689E chip's fan3 channel, controlled by a custom RAM temperature sensor — TRCC handles the LED/segment display, CoolerControl handles fan PWM.
Happy to test any changes or provide additional diagnostics. Thanks for building this — it's a fantastic project!
Device model
Thermalright MC-3 DIGITAL — DDR5 memory cooler with LED segment display (3x ARGB fans over DIMM slots, digital temp readout).
Diagnostic report
trcc report output
trcc system hid-debug 0416:8001 (device free)
USB descriptor (lsusb -v -d 0416:8001)
Device capabilities
The MC-3 is an LED segment device — it has ARGB fans and a small digital readout, no full LCD. It reports as PM=128 / SUB=96 and maps to the LC1 style (31 segments, 0 zones).
What works
trcc detectfinds it immediately as0416:8001(wire=led)trcc daemon+trcc led playas systemd user servicesTwo issues I worked through (may be relevant for MC-3 / LC1-style devices)
1. Frozen memory temperature on standalone
led playWhen running
trcc led playdirectly (without the daemon),mem_tempfreezes at the boot-time DIMM reading becauseBaselineSensors.read_all()returns its cached_readingsdict forever — there's no TTL, and onlyMetricsLoop.start()(which only the daemon calls) refreshes the cache. The MC-3's default display source is memory temp, so the readout showed a stale ~38°C while the DIMMs were actually at ~42°C.Fix: Route through the daemon instead of standalone
led play— setEnvironment=TRCC_DAEMON=1on theled playservice and addRequires=trcc-daemon.service.2. USB suspend/resume reconnection loop
After a suspend/resume cycle,
led playdetects the dead USB handle and exits 1. But the systemd start-limit defaults were too loose —RestartSec=15is slower than the start-limit window, so the unit retried forever (1279 times over 5 hours) without ever being declared failed or triggeringOnFailure=recovery.Fix: Tighten the start-limit on the
led playservice so three failures in two minutes trips it:The
trcc-reconnect.servicere-binds the USB device and restarts the daemon, which re-claims the interface.Additional context
0416:8001(same as the AX120/PA120 Digital series — Winbond/Nuvoton HID LED controller)Happy to test any changes or provide additional diagnostics. Thanks for building this — it's a fantastic project!