Skip to content

Wormhole n300d fan speed shows N/A #205

@koreaygj

Description

@koreaygj

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 = 0

This 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions