OpenDevicePartnership / OpenDevicePartnership/embedded-services

thermal-service: Implement smoother fan transitions

Open
#719 0 comments 0 reactions 1 assignee View on GitHub

@kurtjd is already working on this.

Since Feb 18, 2026.

enhancement
Dominant language
Rust
Stars
23
Forks
53
Avg merge
2d 20h
Merged PRs (30d)
13

Description

Currently in the thermal service, when the fan needs to change its RPM according to a reading from a sensor (or if manually set to an RPM from host), the fan will immediately ramp up or down to the set RPM as fast as possible.

This may not be desirable due to noise it produces. Instead, investigate ways to make smoother transitions. I've seen something like this in other open-source EC implementations, where the RPM acceleration changes depending on how close the current RPM is to the target RPM.

This will likely be added in addition to custom fan ramp curves (which we already have). This is because the ramp response only dictates which RPM to set the fan to based on current temperature, but we can still handle smoother transitions in a generic manner most likely so OEMs don't need to duplicate this logic. Can likely make this another field in the fan profile, such as a bool that tells the fan to either attempt smooth transitions or to adjust as fast as possible.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.