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

Darp5: Creates a custom fan curve to improve cooling under stress. #135

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

RemingtonHolder
Copy link

@RemingtonHolder RemingtonHolder commented Dec 30, 2020

I don't have a darp5 and if someone does please note that THIS NEEDS TESTING. The aim of this is to just improve cooling performance that was referenced in Issue #38 . Please note that this fan curve was originally found on bonw14 and will need some fine-tuning better tailored to this specific system.

@RemingtonHolder RemingtonHolder changed the title Creates a custom fan curve to improve cooling under stress. Darp5: Creates a custom fan curve to improve cooling under stress. Dec 30, 2020
@Thulinma
Copy link

Hi! I do have a darp5, and am personally using these settings, which work wonderfully both under low and high load. Using these, my laptop is wonderfully silent when I use it lightly, and goes to full blast cooling quickly when I throw some heavier load at it, allowing it to perform well.

# Custom fan curve
CFLAGS+=-DBOARD_HEATUP=2
CFLAGS+=-DBOARD_COOLDOWN=5
CFLAGS+=-DBOARD_FAN_POINTS="\
        FAN_POINT(40, 27), \
        FAN_POINT(45, 40), \
        FAN_POINT(50, 50), \
        FAN_POINT(55, 65), \
        FAN_POINT(60, 75), \
        FAN_POINT(65, 90), \
        FAN_POINT(70, 100) \
"

Reasoning:
This laptop heats up fast under load. The current default of 10 is way too much, even your suggested 5 feels slow and reacts way later than would be needed to keep the machine cool. After some testing, 2 seconds turned out to be a pretty nice value.
Similarly, the default cooldown of 10 and your suggested 20 feel quite slow: even after the laptop has cooled down (which the fan does quite well!) the fan will be spinning for what feels like forever before quieting down. Since this fan at full blast can be quite loud, I believe a faster cooldown is a good idea.
My fan points are set to scale roughly between 27% at 40 degrees and 100% at 70 degrees. In my experience, 27% is the "sweet spot" for the fan, where it cools quite well while being practically inaudible. Since the laptop tends to float around 40-45 degrees anyway under light loads (e.g. web browsing) this keeps the laptop from being noisy while doing basic day-to-day tasks. The temperature rarely is between 40 and 70 - it tends to spike to 70+ immediately and then rapidly cool back down once load goes down as well. The gradual curve between 40-100% fan speed makes it so the laptop tends to spin up to max fan speed fairly quickly under load, but then gently eases back down to 27% speed after.

I originally started playing with my fan speeds because thermal throttling sets in around 75-80 degrees, but at that temperature the fan only spins 60% by default! As a result, max fan speed is never reached and thermal throttling occurs much faster than it needs to. I saw your commit suggests max speed at 80 degrees, which is already much better than the default, but I prefer 70 degrees for max fan speed so that thermal throttling can be avoided for most short bursts of high load (as is common in normal workloads).

I hope my practical information from using this laptop daily for the past few months helps/helped 😁.

@RemingtonHolder
Copy link
Author

Hi! I do have a darp5, and am personally using these settings, which work wonderfully both under low and high load. Using these, my laptop is wonderfully silent when I use it lightly, and goes to full blast cooling quickly when I throw some heavier load at it, allowing it to perform well.

# Custom fan curve
CFLAGS+=-DBOARD_HEATUP=2
CFLAGS+=-DBOARD_COOLDOWN=5
CFLAGS+=-DBOARD_FAN_POINTS="\
        FAN_POINT(40, 27), \
        FAN_POINT(45, 40), \
        FAN_POINT(50, 50), \
        FAN_POINT(55, 65), \
        FAN_POINT(60, 75), \
        FAN_POINT(65, 90), \
        FAN_POINT(70, 100) \
"

Reasoning:
This laptop heats up fast under load. The current default of 10 is way too much, even your suggested 5 feels slow and reacts way later than would be needed to keep the machine cool. After some testing, 2 seconds turned out to be a pretty nice value.
Similarly, the default cooldown of 10 and your suggested 20 feel quite slow: even after the laptop has cooled down (which the fan does quite well!) the fan will be spinning for what feels like forever before quieting down. Since this fan at full blast can be quite loud, I believe a faster cooldown is a good idea.
My fan points are set to scale roughly between 27% at 40 degrees and 100% at 70 degrees. In my experience, 27% is the "sweet spot" for the fan, where it cools quite well while being practically inaudible. Since the laptop tends to float around 40-45 degrees anyway under light loads (e.g. web browsing) this keeps the laptop from being noisy while doing basic day-to-day tasks. The temperature rarely is between 40 and 70 - it tends to spike to 70+ immediately and then rapidly cool back down once load goes down as well. The gradual curve between 40-100% fan speed makes it so the laptop tends to spin up to max fan speed fairly quickly under load, but then gently eases back down to 27% speed after.

I originally started playing with my fan speeds because thermal throttling sets in around 75-80 degrees, but at that temperature the fan only spins 60% by default! As a result, max fan speed is never reached and thermal throttling occurs much faster than it needs to. I saw your commit suggests max speed at 80 degrees, which is already much better than the default, but I prefer 70 degrees for max fan speed so that thermal throttling can be avoided for most short bursts of high load (as is common in normal workloads).

I hope my practical information from using this laptop daily for the past few months helps/helped 😁.

Thank for the help with getting a solid curve down. I made another commit to update it with your curve, thanks a ton!

@Thulinma
Copy link

Thank for the help with getting a solid curve down. I made another commit to update it with your curve, thanks a ton!

No problem! It was entirely for selfish reasons: I just wanted better fan curves on my own laptop. 😉 If others can benefit from it too, all the better. 👍

MilesBHuff added a commit to MilesBHuff/ec that referenced this pull request Apr 20, 2021
Fixes overthrottling, high temps, steep spinups, etc
MilesBHuff added a commit to MilesBHuff/ec that referenced this pull request Apr 20, 2021
Fixes overthrottling, high temps, steep spinups, etc
@MilesBHuff
Copy link

The logic behind this PR has been further-espoused in #180. Note, though, that your HEATUP/COOLDOWN settings defeat the whole purpose of #43.

@Thulinma
Copy link

Thulinma commented May 2, 2021

The logic behind this PR has been further-espoused in #180. Note, though, that your HEATUP/COOLDOWN settings defeat the whole purpose of #43.

The darp5 should most definitely not have a "slow" heatup/cooldown. I can imagine other laptops with better cooling would benefit from that, but this thing heats up absurdly fast and the fans pretty much have to be full blast the second a high-ish CPU usage is hit to not be throttled. A slower curve would mean that the throttling never ends; as it causes the CPU to heat up less, which in turn slows the fan and causes it to never stop being throttled... locking it to a pretty slow max CPU speed.

For the full reasoning, look up a bit at my longer post. A lot of thought went into this config, and it has performed consistently well for me in all situations I've thrown at it so far. It's rare I notice the fans on my laptop at all these days, they pretty much only come on during high loads. I'm fairly certain the config I posted here is more or less ideal for the darp5. That does not mean the same should be applied to other models. It's specifically only for this model - and possibly only versions of this model with the exact same CPU configuration that I have. 🙂

That said: I doubt anyone with a darp5 will ever be flashing any official firmware updates. After all, there is no official way to do so. So all users doing this will use this repository, and hopefully notice this pull request and/or figure out their own fan curves while they are compiling the EC anyway. So... the benefits of merging these changes in are minor. I mostly posted them so that other users can find them and apply them if they are interested. 👍

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.

3 participants