-
Notifications
You must be signed in to change notification settings - Fork 29
Description
Problem
After updating firmware from CM FW 2.25.0.0 → 2.37.0.0 (fw_pack v19.5.0), fan speed displays as N/A in the telemetry tab.
The raw data is present in the snapshot:
"FAN_SPEED": "0x5450552",
"fan_speed": "88409426"The value exceeds the 0–100 range check in tt_smi.py:290, so it falls through to N/A.
Root Cause
get_wh_chip_telemetry() in tt_smi_backend.py passes FAN_SPEED as a raw integer without conversion. The old firmware returned a 0–100 percentage directly, but v19.5.0 appears to return a packed 32-bit value.
My Fix
I interpreted 0x5450552 as two packed 16-bit RPM values:
- Upper 16 bits (
0x0545= 1349): max RPM - Lower 16 bits (
0x0552= 1362): current RPM
if self.smbus_telem_info[board_num]["FAN_SPEED"] is not None:
raw = int(self.smbus_telem_info[board_num]["FAN_SPEED"], 16)
if raw > 5000:
max_rpm = (raw >> 16) & 0xFFFF
cur_rpm = raw & 0xFFFF
if max_rpm > 0:
fan_speed = min((cur_rpm / max_rpm) * 100, 100)
else:
fan_speed = 0
else:
fan_speed = raw
else:
fan_speed = 0This displays a valid percentage instead of N/A. However, I'm not 100% sure this interpretation of the packed format is correct. Could someone from the firmware team confirm the FAN_SPEED telemetry structure for Wormhole CM FW ≥ 2.37.0.0?
Happy to open a PR once the format is confirmed.
Environment
- Board: Wormhole n300d
- FW Bundle: v19.5.0 (CM FW 2.37.0.0)
- tt-smi: v4.0.0
- TT-KMD: 2.7.0-rc1
- OS: Ubuntu 24.04 (kernel 6.17.0-14-generic)
Also, the Blackhole troubleshooting docs mention that end-user fan controls are being evaluated for a future update. Are there any similar plans for Wormhole? My n300d fan runs at ~100% even at idle (13W, 52°C), which is quite loud.