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

Problems creating HP OMEN 15-dc00xxxx config #749

Closed
Juanbanpar opened this issue Aug 16, 2019 · 16 comments
Closed

Problems creating HP OMEN 15-dc00xxxx config #749

Juanbanpar opened this issue Aug 16, 2019 · 16 comments
Labels

Comments

@Juanbanpar
Copy link

Hi everyone, I own an HP OMEN 15-dc0015ns, this laptop have a questionable fan profile by default so I got interested on this project, but there isn't any config that works. So I created mine from scratch, sadly I found some issues that I wasn't able to correct.
Before that, if anyone is interested in testing my config I would suggest him to disable "Fan always active" on BIOS settings because if you don´t do that is impossible to complettely turn off the fan, even if you set it to 0.0%.

So let's begin saying what works: manually selecting speed and the reading of actual speed AFTER SELECTING IT (more on that later).
To do it I found that register 0x58 controlls the speed of the tow fans this laptop has, values go from 57 (0.0%) to 99 (100.0%) and I think there is no reading register because I wasn't able to find one that correlates with it.

Here comes the first problem, register 0x58 can take a value lower than 57 when idling with fans off (wich still makes the fans to be stopped) so NBFC reads a negative number from this register. Setting manually this register to anything lower than 57 make the fans stop and anything higher than 99 will turn off your computer, so the only bug is reading before enabling NBFC service.

The second problem comes when you set a speed and if you wait enough the laptop somehow tries to revert the change to its factory fan curve by a second, then NBFC takes the control back. I tried solving this changing the EC Poll Interval without any success. Luckily I found that before that happens register 0x59 has the same value that will be writed by the laptop to our fan register (picture below), so I think I should create a fake thermal zone or do something with that register.

Registers

The last issue I have is that I have created some Temp thresholds but I'm not able to correctly test them if the second issue gets fixed, also people who own devices similar to mine (dc00xxxx) need to test this config to check if it works for the this whole family of laptops.

PD: I also checked DSDT without any succes, I'll leave the text here, things get interesting at line 75181
PD2: Thanks to all developers who participated on this project, it's just great.

DSDT.txt

HP Omen 15-dc00xxxx.zip

@FanFanFantastic
Copy link

Wow ,nice job! I send mine back to factory cuz the fan noise was driving me crazy. Definitely going to try this when I get it back

@iZN1337
Copy link

iZN1337 commented Aug 20, 2019

I would test this but the problems you have described makes me worried, especially the one where you're telling to disable that thing from BIOS. Does this not reset the whole thing back to whatever HP has set when you hit "Disabled"? I'm asking because I can't risk a lower fan speed or no fan running since it already runs hot due to the weather conditions over here.

@Juanbanpar
Copy link
Author

I'd two HP laptops, both have been sent to factory (and the first one because fan failed), they didn't say anything and I think is completely imposible to know, because BIOS can be reset to stock values and I think there is no warranty restrintions about that. Furthermore, it's completely optional, you can keep that enable if you want, the only thing you loose is the ability to completely stop the fan.

@iZN1337
Copy link

iZN1337 commented Aug 20, 2019

Actually, it's fine, it does reset backs to normal speed when I completely disable the profile. I just tested it on 15-dc0051nr, works just fine, both fans are working, setting fan control works too.

Although I switched the maximum speed value from 99 to 95 because I noticed it caused a lot of issues here with another profile "HP Pavilion 17-ab240nd" which led to continuous reboots because the CPU is hitting more than 97c according to the change that NBFC made (while it was like 50c in reality on idle).

This is how I check whether laptop got fooled haha, comparison with ThrottleStop temps (left) vs Omen Control Panel (right).

image

@Juanbanpar
Copy link
Author

Juanbanpar commented Aug 20, 2019

Thanks for the testing @iZN1337 I've created a new config that sets the maximum value to 87, which makes no effect on maximun fan speed but it will not create any issue. Also thanks for pointing me the Pavlion 17 config, sadly I didn't know it's existence and if I knew it would have make my life easier.
HP Omen 15-dc00xxxx.zip

This config is fine and working for me, all issues have been fixed at least for my model (and probably for the 51nr one) but it's not "perfect".
Why do I say that? The register I use for changing fan speed is not really for that, it is the actual CPU temperature, and if I'm not wrong 0x59 is the actual thermal zone (which should correlate to the highest temp of all cores of the CPU, that's why it changes from values from 24 to 29, a total of 6, the same as my number of cores). This makes my config a "dirty solution", it's not wrong but I would like to make something better.

After inspecting with RWEverhing my EC (DSDT Editor doesn't work on this model) I found that two registers have the following names "RPM1" and "RPM2", then I checked if the first one have any correlation with fan speed and yes, it was some correlation.
ECFanOFF
When fans are off registers 0xB2, 0xC3, 0xB3 and 0xC4 are at 0 but when fan kicks in...
ECFanON
They increase their value, and they correlate as couples (0xB2 with 0xC3 and 0xB3 with 0xC4) maybe those are for reading and writing of both fans or one couple means nothing (in that case it will be the fist one), I kept testing and I found that my config makes the registers 0xB3 and 0xC4 go up to 0x0E but if I change the fan config on OMEN Command Center (OEM application to control varios things of the laptop) it will increase fan speed (audible) and values up to 0x14, so I think that real speeds are on those registers, sadly there is no way to change their value manually, so I think I must create a fake thermal zone, but I tested all values my mind was capable of thinking for registers 0x58 (actual temp) and 0x59 (actual thermal zone) with no success.

I don't know if @hirschmann will aprove this config knowing this and if @Erriez (creator of the Pavilion config) still has his Pavilion to check if it's the same on his. At this point I think have the solution in front of my face but I don't know how to execute it.

Anyways, the last config I created should be fine as well as the Pavilion 17 one. It's just a matter of making things a bit better and allowing the user to use the full potential of the fan without requiring the OMEN Command Center.

EDIT: Not all issues have been fixed, the reading of fan speed before enabling the service is still broken and it's UNFIXEABLE using the actual method, the only way to fix is making posible what I have described before.

@iZN1337
Copy link

iZN1337 commented Aug 20, 2019

No problem, one issue though which is discussed in other issues as well, what might be causing random hibernation? I ran through your profile this whole day almost but suddenly when the load is minimum or just idle, it would hibernate. Or sometimes it does that even during a gaming session for some reason.

The event viewer shows this (multiple times):

The system was hibernated due to a critical thermal event.
Hibernate Time = ‎2019‎-‎08‎-‎20T22:12:09.572309200Z             
ACPI Thermal Zone = \_TZ.TZ01             
_HOT = 373K

Along with this thrown first:

: The embedded controller (EC) did not respond within the specified timeout period. This may indicate that there is an error in the EC hardware or firmware or that the BIOS is accessing the EC incorrectly. You should check with your computer manufacturer for an upgraded BIOS. In some situations, this error may cause the computer to function incorrectly.

I'm assuming critical temperature is reported somehow and it hibernates. I do notice whenever this happens, the game would lag, and the fan curve would change (they get slower? maybe but the sound definitely changes before this happens) and in a second or two it just hibernates.

@Juanbanpar
Copy link
Author

Juanbanpar commented Aug 21, 2019

Thanks for the testing, are you using the lastest config I shared or it's the old one? I've never experienced that so it's a surprise for me.
373 kelvin to celsius are 100ºC so your theory about reporting critical temperature is true, but I don't know how it gets reported, technically my config only reaches 87 at max (99 on old one). Maybe NBFC service has some strange bug.
I have another question, what BIOS version are you using? The latest one? If not I recommend you to update it, HP has changed the default fan curve and added one parameter on BIOS to control the maximum power CPU can consume.

EDIT: Just checked #726 , seems to be related to chipset drivers, try using latest ones distributed by HP or use Intel Driver and Suppor Assistant to update them.

@carljrd
Copy link

carljrd commented Aug 26, 2019

Hi and thanks for this profile. I have a 2019 Omen (dc1xxxx) with a 2070MQ and while this profile works to control the fan speed, there is an issue when using Performance mode (enabled through Omen CommandCenter)..

The problem is that in Performance mode, it seems that also the GPU temperature affects the fan control, for example when the GPU reaches 70C it goes straight to almost max fan speed (4400rpm, out of 4600rpm that is max).

I am looking for a way to change that, anyone know if that is possible?

@Juanbanpar
Copy link
Author

Hi and thanks for this profile. I have a 2019 Omen (dc1xxxx) with a 2070MQ and while this profile works to control the fan speed, there is an issue when using Performance mode (enabled through Omen CommandCenter)..

The problem is that in Performance mode, it seems that also the GPU temperature affects the fan control, for example when the GPU reaches 70C it goes straight to almost max fan speed (4400rpm, out of 4600rpm that is max).

I am looking for a way to change that, anyone know if that is possible?

Hi and thanks for the feedback, didn't expect to be working on 2019 model so it's nice to know. On 2018 model (at least mine) doesn't have that "Performance mode" on mine there is a normal mode for the fan and a "Confort" one that is more agressive (I explained more about that in other comments) so I don't know how exactly works but if your laptop uses NVIDIA Optimus you may want to check this
https://github.com/hirschmann/nbfc/wiki/FAQ#why-does-nbfc-stop-working-when-i-start-a-game

If it's not the case I'm pretty sure is what I have described before about the "dirty solution" and the good one I'm triying to solve.

@carljrd
Copy link

carljrd commented Aug 26, 2019

Hi and thanks for this profile. I have a 2019 Omen (dc1xxxx) with a 2070MQ and while this profile works to control the fan speed, there is an issue when using Performance mode (enabled through Omen CommandCenter)..
The problem is that in Performance mode, it seems that also the GPU temperature affects the fan control, for example when the GPU reaches 70C it goes straight to almost max fan speed (4400rpm, out of 4600rpm that is max).
I am looking for a way to change that, anyone know if that is possible?

Hi and thanks for the feedback, didn't expect to be working on 2019 model so it's nice to know. On 2018 model (at least mine) doesn't have that "Performance mode" on mine there is a normal mode for the fan and a "Confort" one that is more agressive (I explained more about that in other comments) so I don't know how exactly works but if your laptop uses NVIDIA Optimus you may want to check this
https://github.com/hirschmann/nbfc/wiki/FAQ#why-does-nbfc-stop-working-when-i-start-a-game

If it's not the case I'm pretty sure is what I have described before about the "dirty solution" and the good one I'm triying to solve.

This laptop does not have Optimus (it has a G sync screen), so that is not the issue.

What happens is that once the GPU hits 70C it seems to ignore whatever fan speed (or thermal zone setting?) is set using NBFC, and simply runs max speed until the GPU is back down to <69C. At this point the fan control of NBFC works again.

I tried watching RW Everything when it happens but have not been able to find a change that seems to correlate with this.

Looking for a way to override this behaviour.

@Juanbanpar
Copy link
Author

Hi and thanks for this profile. I have a 2019 Omen (dc1xxxx) with a 2070MQ and while this profile works to control the fan speed, there is an issue when using Performance mode (enabled through Omen CommandCenter)..
The problem is that in Performance mode, it seems that also the GPU temperature affects the fan control, for example when the GPU reaches 70C it goes straight to almost max fan speed (4400rpm, out of 4600rpm that is max).
I am looking for a way to change that, anyone know if that is possible?

Hi and thanks for the feedback, didn't expect to be working on 2019 model so it's nice to know. On 2018 model (at least mine) doesn't have that "Performance mode" on mine there is a normal mode for the fan and a "Confort" one that is more agressive (I explained more about that in other comments) so I don't know how exactly works but if your laptop uses NVIDIA Optimus you may want to check this
https://github.com/hirschmann/nbfc/wiki/FAQ#why-does-nbfc-stop-working-when-i-start-a-game
If it's not the case I'm pretty sure is what I have described before about the "dirty solution" and the good one I'm triying to solve.

This laptop does not have Optimus (it has a G sync screen), so that is not the issue.

What happens is that once the GPU hits 70C it seems to ignore whatever fan speed (or thermal zone setting?) is set using NBFC, and simply runs max speed until the GPU is back down to <69C. At this point the fan control of NBFC works again.

I tried watching RW Everything when it happens but have not been able to find a change that seems to correlate with this.

Looking for a way to override this behaviour.

Ok, so solution is not going to be easy. I think if you pay attention to register 0x59 you will be able to see a change, normally it moves from 24 to 29 (or less, depending of the core count of your system) and writes on 0x58 the actual temperature of the thermal zone selected on 0x59. What I think it happens is that 0x59 takes a value different from the ones I said before to select the thermal zone on GPU temp and 0x58 should be the actual temperature of the GPU. I will try to emulate that behaviour on my system, if you found something interesting please let me know.

PD: If 0x59 and 0x58 don't change it's possible that other registers are used for GPU temp or GPU thermal zone, in that case try to seach for a register with a value that matches GPU temp.

@Adalimumab
Copy link

Hi and thanks for this profile. I can control the fan on my HP Omen 15-dc0900nz.
Some observations I made:

  • When I use a higher setting than 80% in the application with your profile the CPU starts throttling (lowering its clock speed) seen in Intel's XTU
  • I have to use the "Comfort" setting in the Omen Command Center to fully engage the fans.

I'm not sure why the CPU starts to clock down, because when I check in XTU the temps are low (40-50°C)

Omen Command Center v9.3.6.0
Intel XTU v6.5.1.321
BIOS F.09

@github-actions
Copy link

This issue is stale because it has been open more than 180 days with no activity. If nobody comments within 7 days, this issue will be closed

@lyrakeen
Copy link

how can i try 0xC3 ? When i type a value that i seen before it running, I can't see it in the monitor. Can anyone help me?

@fearfulphoenix
Copy link

fearfulphoenix commented Sep 28, 2021

I know this issue is old but I am still suffering with my omen laptop. All the notes written here in this thread are correct. I also noticed that Omen gaming hub changes register 0xEC from 00 to 03 and vice versa. I tried changing the register values in the EC but all the changes are reverted at once.

@wiseor
Copy link

wiseor commented Jul 5, 2022

i have hp omen 15-ce007nt. my 2nd fan is running at 165 rpm. so i have overheating problem. can I use this fan profile on my device too? will it cause any problems? @Juanbanpar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

8 participants