OpenDevicePartnership / OpenDevicePartnership/embedded-services
thermal-service: Implement smoother fan transitions
@kurtjd is already working on this.
Since Feb 18, 2026.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.