-
Notifications
You must be signed in to change notification settings - Fork 25
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
Configuration registers for HP Victus 16-e0xxx #87
Comments
Great, I just started decoding it on HP Spectre x360 Convertible 14-ea0xxx - intel 11th. The actual fan speed seems to be: 0x2E, 0x2F are a "target" speed between 0 and 100. Interestingly requesting 100% manually doesn't give maximum speed! It only gets to 2600RPM (assuming 100x multiplier) and I can hear it is not very fast. I think 0x95 register will be all I need to fix my HP fan troubles without using buggy HP Command Center. Especially because that is the only way to get full range of the RPM. I will see - maybe I will use: |
In my laptop in B0:B3 range are definitely some kind of measurements. I guess B1 and B3 could be RPM - but in very low range (maxed at 0x13). I was assuming it was lower byte of 2 byte values - but maybe not. I've also found curious little register 0xF9. Normally 0x00. Setting it to 0xFF or 0xF0 gets fans to full blast regardles of any other settings/controlls. And ramp to 100% is instant. Like some kind of panic mode... Fans do go a bit faster than 100% or Omen HUB max fan mode. TBH it kinda resembles PWM override by direct mosfet gate. P.S.: Wait, actually in my EC this B0-B3 region IS 16bit rpm values! B1:B0 is fan1, B3:B2 is fan2. Math checks out, I just got confused by byte ordering. Great find!
Fan 2 is a bit faster (+250rpm). |
Yes. I too just realised RPM in 16bits. LSB; MSB. I think that makes it Little endian. For NoteBook FanControl it is probably better to use MSB byte only though. Good find with the 0xF9 - this might be useful for creating a good profile. RPMs are not updated during the override. Original profiles are frustrating on Spectre. |
Do you know how to increase the GPU TDP limit? I tried changing 0x95 to 0x01 but it still limited at 60w :( |
60? My silent mode tdp is 30. Normal is 80 and max is 95. Changing 0x95 from 03 to 00 is working (30w->80w)- however 01 does not bump the limit from 80 to 95. I think there had to be some kind of firmware update that broke that. Because if I do it from OMEN hub it changes 0x95 to 01 and nothing else, but limit goes properly to 95w instead of capping at 80. So maybe there is also something in the nv driver that gets switched now. |
That's sad, btw mine is RTX 3050ti so the base TDP is 60, with boost is 75 |
Can you tell me what software this is? |
https://apps.microsoft.com/store/detail/hp-command-center/9P92N00QV14J this. It will look differently depending on the HP laptop model it is installed on. |
ye, mine only shows "system info" and "about" |
Fan speed control with this config also seems to work on OMEN 16-c0xxx on linux. Tested on OMEN 16-c0077ng with 8902 mainboard and F.19 BIOS. Fans are basically inaudible at 1000-1500 rpm. |
Hey, firstly thanks all for this tool and @MrBilut for victus 16 config. I've got a serious issue that is fans not running enough and i cant restore bios ec fan controller after trying this config. Im using 1.7.1 version with the config given by op, on win 10 hp victus 16 e0x. Installed Nbfc, it was working, controlling fans ok suddenly bsod occurred after few minutes (dump file indicates "PAGE_FAULT_IN_NONPAGED_AREA (50)" ). This may have been occurred because hwinfo was running at the same time, not sure. Anyway windows restarted, i closed nbfc even stopped/disabled it's service to check if default ec working ok. While keep monitoring the temps, did couple short cpu stress tests. Cpu temp going above 95c even staying at 100c for couple seconds but fans not starting. They start running at 50% only after temp stays above ~70c for about 20-30 secs. Looks like somehow laptop's default ec configs is messed? Given the current state, i ve got a few questions. Appreciate your insights and help on this problem. Many thanks. 1- How can i restore back ec default config, easiest way, alternative ways? Apparently stopping/disabling service or closing app not working. I think i read somewhere that one way is something like holding down power button for 15 seconds. 2- Can nbfc or any other app mess/break bios ec permanently or there is always easy restore option? 3- What happens if fans not working enough due to ec config and cpu temp goes very high, any protection on board or cpu that shut itself down before any damage? Laptop would turn itself off in such an event, right? Pls note that nbfc can still control fans as expected when enabled but bios ec cant properly. Need to make sure it works ok too. |
As for the bsods. There is deffinitely some kind of hazard and concurrency while accessing EC. I bet nvidia driver is looking there too. Not to mention HP software. I've seen drastic changes in bsod/driver crashes frequency after updates. So they are still messing there around. There are events in event viewer pointing out bad EC communications. But they are not very helpful for tracking down culprits. Unfortunately there is still no full workaround for setting power levels without HP shit services. |
Ok, i've noticed a few things so far since nbfc installed Most critical one; despite nbfc service is stopped, default ec fan control somehow seem to be messed up and can not be restored. Will try to reset ec with power button trick or removing battery. Random occasional acpi errors and warnings in system event log e.g": The embedded controller (EC) did not respond within the specified timeout period...." This occurs even when nbfc service is stopped. It wasnt happening before nbfc installed. Power source changed event log ac off and 5 seconds later ac on events occur despite ac power already plugged. As a result this has symptoms like brief change of brightness/power modes etc. I think this event occurs only when reading ec directly from nbfc or any other tool. |
Appreciate answers on below critical questions. Many thanks. 1- Why nbfc fail to restore/reset ec back to default? I'm using the same config file, @MrBilut mentioned writing to 0xFF restore automatic fan control. Is this not happenning automatically during closing app or stopping the service? How can i restore default automatic fan control manually, should i change write register to 255 on config file to achieve this? 2- Any way to save export all ec config/registers at any point of time and restore them later, how? This would also help to reset ec defaults. Update: Tried below commands to restore ec default fan curves as mentioned by OP but didnt work. |
@MrBilut hello, are you sure writing any value to register 0xff will cause returning to default ec fan curve? ff value always show 30 hex. i tried a few values on register ff via rweverything but it goes back to value 30 automatically in a sec. I need to make sure if nbfc crashes or stopped manually then default bios fan curve will be active again. I think this is very crucial to prevent any damage to laptop. Btw, how is your ec behaving since running nbfc? Is your default fan curve take over when nbfc stopped? Do you have weird stuff going when reading ec like power source events (ac plug off/on, which changes brightness/performance etc. as a result )? Thanks |
Ok thanks, i got it wrong, quite new to acpi/ec stuff. Seems like those 2 register values are already set to 0xff. Im confused a bit as my laptop curve seem to be wrong. As seen on screenshot i uploaded earlier, cpu temp goes to 100c in 5-10 secs during stress test but fans not spinning at all. In 100-101c it throttles a bit goes down to 85-90c and then fans start spinning at around 50%. Not going over 50% even temp reach 100c again. Is somehow fan curve methods in acpi tables/bios uefi etc messed? I even upgraded the bios to latest version it didnt help. I think default fan curve is managed by methods in bios/uefi firmware and we cant alter it, right? And what nbfc does is kind a hack, controlling the fans directly from ec. If so, how is default fan control in bios/uefi and nbfc app not conflicting each other? |
Great this explains everythin very well now. Thanks a lot, i confirmed it too, im relieved :). Oh boy so loud fans get during demanding games. Anyway, i think i dont need to reset ec anymore. Such a pain to unscrew/screw those bunch of screws and pry open back cover, unplugging bat cable another story. Really bad engineering on thermal management. Actually i believe fix is easy just matter of changing a few lines of code on bios/uefi firmware? Maybe they would sort this with fw updates in the future.. That would be really nice. a decent balanced fan curve is a must on computers. I think i'll use my laptop at 90-99% via max process state in power settings for everything other than cpu demanding games. |
Hello! Sorry for my amateur question, but how could I control HP Victus directly from it's EC? Got a problem with victus laptop - it's battery discharges when ac charger is PLUGGED IN while GPU-intense tasks (games) are running. Discharge rate is about 8-10% per hour. Socket wattmeter shows consumption around 150 w. Factory charger is rated 200w, I bought another 230w original hp charger and laptop acts kinda strange - when consumption gets higher than 150 w, battery becomes the source of power for a while. So these switches between 230w charger and battery occurs randomly for a random amount of time. Recently I physically disconnected battery, tested both chargers and these power switches are gone. During 30 min full system stress test power consumption was 180-190w and no errors, power drops, bugs occured. HP hardware diagnostics shows status 2 error (charger power is below requirements) after charger tests. Seems that EC apparently can't recognise that 230w charger is rated 230w and switches power source to battery. I need to manually write correct charger power to EC registers so that my laptop could work fine. Another solution is for EC to disconnect battery while gaming with plugged in charger to avoid discharging. Please help if you can. |
You can also try using utilities to undervolt you components to fit into smaller power envelope. Inlet XTU or ryzen adj for cpus. It would probably be easier to manage such a solution on a regular basis - since constant communication with EC might trigger bluescreens. |
I wanted to give something back since this program really saved my ass from hours and hours of annoyance with my noisy laptop :)
So here are some registers and tips for controlling HP Victus directly from it's EC:
Here is my config file. It makes sure whenever switching off NBFC controll to restore automatic fan curve. I suggest keeping that behaviour on - OTHERWISE YOU CAN FRY YOUR LAPTOP.
The text was updated successfully, but these errors were encountered: