Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add lemp11 fan curve #292

Closed
wants to merge 2 commits into from
Closed

add lemp11 fan curve #292

wants to merge 2 commits into from

Conversation

n3m0-22
Copy link

@n3m0-22 n3m0-22 commented Jul 19, 2022

This is a proposal to add a fan curve for the new Lemur Pro lemp11. I have been testing it for about a week and have seen significant improvements, approximately 20 degrees cooler, in temperatures both idling and under load. If this is too aggressive the values can always be changed, but I think it would be of value to add a curve that improves temperatures without adding much if any extra fan noise. So far I have not noticed a difference in terms of sound.

This is a proposal to add a fan curve for the Lemur Pro `lemp11`. I have been testing it for about a week and have seen significant improvements, approximately 20 degrees cooler, in temperatures both idling and under load. If this is too aggressive the values can always be changed, but I think it would be of value to add a curve that improves temps without adding much if any extra noise. So far I have not noticed a difference in terms of sound.
@n3m0-22 n3m0-22 requested review from a team July 19, 2022 23:07
@n3m0-22 n3m0-22 marked this pull request as ready for review July 19, 2022 23:14
@crawfxrd
Copy link
Member

crawfxrd commented Jul 19, 2022

approximately 20 degrees cooler

Not surprising: the first point for the default curve is at 70°C, which is way too high.

Some values from the provided thermal data for the proprietary firmware:

Temp (°C) Duty (%) Noise (dB)
50 41 25
60 53 30
64 69 35
80 87 40

Fan curve for proprietary firmware based on ODM thermal data:

FAN_POINT(50, 41), \
FAN_POINT(55, 53), \
FAN_POINT(60, 53), \
FAN_POINT(66, 86), \
FAN_POINT(79, 86), \
FAN_POINT(80, 87), \
FAN_POINT(93, 87), \
FAN_POINT(100, 100), \

@linuxgnuru linuxgnuru self-assigned this Jul 20, 2022
@curiousercreative
Copy link
Contributor

I can't remember where it's documented, but as I understand it, we want laptops to not spin fans persistently (which will be the result of these fan curves, no?) when not subject to load. Ideally we default fan curves to coincide with system76-power power profile thermal targets so that the battery saving profile is confidently silent. With my galp5, battery saving profile will throttle at 68C, just below where fans start spinning while balanced will throttle at 88C, right before a strong fan curve ramp.

@n3m0-22
Copy link
Author

n3m0-22 commented Jul 21, 2022

If that is the case I can modify this because yes this does cause the fan to stay around 2400-2600 RPM. My issue would be that without the custom curve it seems to idle around the low to mid 60's, and with the first point for the default curve being at 70°C the custom curve will need to be somewhere below that to have any impact. That would mean the fan will be turning on and off all the time with any level of work. To me that would be annoying, but that's just my opinion.

@curiousercreative
Copy link
Contributor

curiousercreative commented Jul 21, 2022

@n3m0-22 is the problem with idling in the 60s that it burns skin or what? On my Galago Pro idling in the 60s isn't a problem with the plastic bottom cover, then under moderate load fans spin pretty quietly.

@WatchMkr
Copy link
Contributor

The goal is to maximize performance while minimizing fan noise. Usually, for U class processors at least, fans shouldn't be necessary at idle. They're only necessary at idle if the thermal solution can't passively handle the thermal energy thus causing the temps to continuously rise. This shouldn't be the case on the Lemur.

@n3m0-22
Copy link
Author

n3m0-22 commented Jul 21, 2022

I wouldn't say burns, but it was uncomfortable to use especially on the upper left side of the keyboard if your hand is resting there. I tried a stand a first to allow for more airflow but it did not make much difference. That's why I made this change to mine in the first place. Maybe this is unnecessary and just an issue for me. We can always hold off and see if users have the same complaint and if so have this ready to go.

@n3m0-22
Copy link
Author

n3m0-22 commented Jul 21, 2022

It does stay in the mid 60s passively and does not keep rising. I just found it to be uncomfortable with all day use, but that may not be the case for most users in which case this can be disregarded.

@curiousercreative
Copy link
Contributor

@n3m0-22 wish I had a lemp11 to provide feedback with, but hopefully others will chime in. Regardless, I'd encourage you to work on a lemp11 system76-power profile to match your proposed fan curve. If it doesn't comfortably run fanless, so be it. Silence is the goal for the battery power profile, see how close you can get.

@crawfxrd
Copy link
Member

The goal is to maximize performance while minimizing fan noise.

How minimal? We're provided thermal data for proprietary firmware, so we have some numbers already for fan duty vs noise. The fan tables usually start near a point that only produces 25 dB of noise (measured 25 cm from the unit IIRC).

Usually, for U class processors at least, fans shouldn't be necessary at idle.

Even H class units can idle at 50°C (in hybrid graphics mode) if you let the fans cool to that.

But this is a very different requirement than:

Silence is the goal for the battery power profile

@n3m0-22 n3m0-22 closed this Jul 25, 2022
@hyperair
Copy link

hyperair commented Feb 1, 2023

Hello, just a lemp11 user chiming in here -- my lemp11 (i7-1255U) runs at 68C on the battery profile with light usage (just chatting on Slack), and while that's fine on a desk, it does burn the thighs, especially near the upper-centre part of the underside of the laptop (on the other side of the U key).

Here are some graphs of how the thermals are like on the balanced profile:

image

Is there any progress on this issue, or is it just going to be dropped?

@curiousercreative
Copy link
Contributor

@hyperair I'm not a repo owner/admin, so I can't say for sure, but I'd guess this won't be prioritized. Modifying the fan curve in firmware and flashing isn't too difficult. You can also show some support for this PR that would make fan speed control possible in userspace without flashing firmware.

@hyperair
Copy link

hyperair commented Feb 2, 2023

@curiousercreative Thanks for the PR link, that looks great!

Modifying the fan curve in firmware and flashing isn't too difficult

Yeah I found this guide and it looks fairly straightforward, I'm just a little worried that I might brick the laptop in the process.

@curiousercreative
Copy link
Contributor

@hyperair no guarantees of course, but I've flashed my firmware similar to that guide at least a hundred times. All of my typos lead to a build failure prior to flashing. I've never had any flashing errors.

@hyperair
Copy link

hyperair commented Feb 2, 2023

@curiousercreative That's comforting to hear, thanks

@hyperair
Copy link

hyperair commented Feb 15, 2023

@curiousercreative Just an update, I managed to successfully flash my EC, thanks. I used a different, slightly less aggressive fan curve from this PR though:

CFLAGS+=-DBOARD_HEATUP=5
CFLAGS+=-DBOARD_COOLDOWN=20
CFLAGS+=-DBOARD_FAN_POINTS="\
	FAN_POINT(55, 25), \
	FAN_POINT(60, 30), \
	FAN_POINT(65, 30), \
	FAN_POINT(70, 40), \
	FAN_POINT(75, 50), \
	FAN_POINT(80, 60), \
	FAN_POINT(85, 70), \
	FAN_POINT(90, 80) \
"

Here are some graphs comparing before/after the fan curve change, with approximately the same workload (verified by RAPL and CPU% graphs across the same time period):

image

The fan now hangs out at about ~1500 RPM while idling with the screen locked, and ~1600 RPM while working, but is not really noticeable even in a quiet room.

The change that is really noticeable, though, is the surface temperature at the bottom of the laptop, which is barely warm at all while working at ~55-65C. I think this is due to the internal layout of the lemp9-lemp11 laptops -- the air intake is at the hinge, so any fan activity at all also draws cold air across the bottom cover of the laptop, which makes the entire bottom surface much cooler than if the fan wasn't running, even if the CPU temperatures are at the same level.

@crawfxrd crawfxrd deleted the lemp11-fan-curve branch July 5, 2024 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants