Skip to content

Fan control doesn't work on Apple Silicon M3/M4+ #2928

@agoodkind

Description

@agoodkind

Describe the bug

Manual fan control fails silently on Apple Silicon Macs with M3+. Setting a fan speed appears to succeed but the fan doesn't actually change. The system thermal daemon (thermalmonitord) immediately overrides the written value.

This happens because thermalmonitord enforces "protected mode" on fan control keys. Writes to F0Md (mode) and F0Tg (target) are blocked unless the Ftst (force/test) key is set to 1 first.

The current implementation writes directly to the fan mode and target keys without this coordination, so manual control never takes effect.

Screen.Recording.2026-01-23.at.13.33.26.mov

Technical context

  • thermalmonitord holds fans in Mode 3 ("System Mode") by default, which blocks direct writes
  • Writing Ftst=1 signals manual/test/force mode and causes thermalmonitord to yield control
  • After unlock, mode writes must be retried until successful (typically 3-6 seconds)
  • When returning all fans to automatic, Ftst=0 must be written to restore system control

See macos-smc-fan for detailed reverse engineering documentation.

Details:

  • Device: All Apple Silicon Macs M3/M4+
  • macOS: All versions on Apple Silicon
  • Application version: All versions with fan control

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions