[GH-ISSUE #921] ec-probe write doesn't change the value of a register #797

Closed
opened 2026-02-26 00:33:36 +03:00 by kerem · 3 comments
Owner

Originally created by @ghost on GitHub (Jun 10, 2020).
Original GitHub issue: https://github.com/hirschmann/nbfc/issues/921

Describe the bug
Running any ec-probe write command seems to fail as a subsequent ec-probe read doesn't show the new value for some (but not all) registers.

To Reproduce
On a Lenovo Legion Y530 with Windows 10 run ec-probe read 0xFE && ec-probe.exe write 0xFE 0x17 -v && ec-probe.exe read 0xFE (i.e. read, write, and read again)
Expected output:

0 (0x00)
Writing at 254: 23 (0x17)
Current value at 254: 23 (0x17)
0 (0x00)

Expected behavior
Expected output:

0 (0x00)
Writing at 254: 23 (0x17)
Current value at 254: 23 (0x17)
23 (0x17)

but instead getting
Expected output:

0 (0x00)
Writing at 254: 23 (0x17)
Current value at 254: 23 (0x17)
0 (0x00)                                           <- this line here

System information

  • operating system: Windows 10 Home version 1909
  • NBFC version: 1.6.3
  • log files:
    2020-06-10 11:28:11.9642;Info;Starting NoteBookFanControlService;;NbfcService.NoteBookFanControlService.OnStart;ThreadPoolWorkQueue.Dispatch => QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem => ExecutionContext.Run => ExecutionContext.RunInternal => ServiceBase.ServiceQueuedMainCallback => NoteBookFanControlService.OnStart

Additional context
This seems to only be happening with registers 0x06 and 0xFE which I believe are the ones related to the fan speed (they are the only 2 registers to consistently change when the fan changes speed). Other registers seem to be okay with being written to. This leads me to believe that the registers are being affected by some other process on my machine, but I don't know what it could be. The CPU is an Intel i7-8750H and the laptop has a dedicated Nvidia GTX-1050Ti (mobile) as well as the onboard Intel UHD 630 graphics, so there's possibly something going on with those? I've read that Nvidia Optimus can mess with settings, but I am not currently running any games or other graphically intensive background tasks so this seems unlikely. I've additionally turned the preferred GPU to the Intel builtin one but that didn't change the results. None of the other common incompatibility programs are installed on my machine either.

Originally created by @ghost on GitHub (Jun 10, 2020). Original GitHub issue: https://github.com/hirschmann/nbfc/issues/921 **Describe the bug** Running any ec-probe write command seems to fail as a subsequent ec-probe read doesn't show the new value for some (but not all) registers. **To Reproduce** On a Lenovo Legion Y530 with Windows 10 run `ec-probe read 0xFE && ec-probe.exe write 0xFE 0x17 -v && ec-probe.exe read 0xFE` (i.e. read, write, and read again) Expected output: ``` 0 (0x00) Writing at 254: 23 (0x17) Current value at 254: 23 (0x17) 0 (0x00) ``` **Expected behavior** Expected output: ``` 0 (0x00) Writing at 254: 23 (0x17) Current value at 254: 23 (0x17) 23 (0x17) ``` but instead getting Expected output: ``` 0 (0x00) Writing at 254: 23 (0x17) Current value at 254: 23 (0x17) 0 (0x00) <- this line here ``` **System information** - operating system: Windows 10 Home version 1909 - NBFC version: 1.6.3 - log files: 2020-06-10 11:28:11.9642;Info;Starting NoteBookFanControlService;;NbfcService.NoteBookFanControlService.OnStart;ThreadPoolWorkQueue.Dispatch => QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem => ExecutionContext.Run => ExecutionContext.RunInternal => ServiceBase.ServiceQueuedMainCallback => NoteBookFanControlService.OnStart **Additional context** This seems to only be happening with registers 0x06 and 0xFE which I believe are the ones related to the fan speed (they are the only 2 registers to consistently change when the fan changes speed). Other registers seem to be okay with being written to. This leads me to believe that the registers are being affected by some other process on my machine, but I don't know what it could be. The CPU is an Intel i7-8750H and the laptop has a dedicated Nvidia GTX-1050Ti (mobile) as well as the onboard Intel UHD 630 graphics, so there's possibly something going on with those? I've read that Nvidia Optimus can mess with settings, but I am not currently running any games or other graphically intensive background tasks so this seems unlikely. I've additionally turned the preferred GPU to the Intel builtin one but that didn't change the results. None of the other common incompatibility programs are installed on my machine either.
kerem 2026-02-26 00:33:36 +03:00
  • closed this issue
  • added the
    Stale
    label
Author
Owner

@Lamb3 commented on GitHub (Jun 13, 2020):

Curious. Why are you using NBFC? I don't recommend using it when you have those CPU and GPU. Also, I thought fan speeds for GTX Titan 10 series can be controlled via MSI Afterburner.

My guts say you're resorting to NBFC for lower temperatures but again, this software is not at all user-friendly and poses instability issues/risks to your laptop ie. sudden shutdown.

My solution and recommendations to you are to:

  1. Undervolt your CPU with Throttlestop under FIVR options.
  2. Undervolt GPU with MSI AB(as mentioned earlier). Fan controls (only for the GPU if you have independent fans for both CPU and GPU) can also be configured there if I'm not mistaken.

Those two combined will yield you 15 degrees Celcius drop in temperatures easily.
I'm only resorting to NBFC because my GPU is a Maxwell GTX 980m in which the fan control is hard locked in the vBIOS even if I use Maxwell BIOS Tweaker to try and access it. So I can really only rely on the CPU fan to do the extra cooling (at least on the CPU side).

<!-- gh-comment-id:643579037 --> @Lamb3 commented on GitHub (Jun 13, 2020): Curious. Why are you using NBFC? I don't recommend using it when you have those CPU and GPU. Also, I thought fan speeds for GTX Titan 10 series can be controlled via MSI Afterburner. My guts say you're resorting to NBFC for lower temperatures but again, this software is not at all user-friendly and poses instability issues/risks to your laptop ie. sudden shutdown. My solution and recommendations to you are to: 1. Undervolt your CPU with Throttlestop under FIVR options. 2. Undervolt GPU with MSI AB(as mentioned earlier). Fan controls (only for the GPU if you have independent fans for both CPU and GPU) can also be configured there if I'm not mistaken. Those two combined will yield you 15 degrees Celcius drop in temperatures easily. I'm only resorting to NBFC because my GPU is a Maxwell GTX 980m in which the fan control is hard locked in the vBIOS even if I use Maxwell BIOS Tweaker to try and access it. So I can really only rely on the CPU fan to do the extra cooling (at least on the CPU side).
Author
Owner

@ghost commented on GitHub (Jun 13, 2020):

My issue isn't with temperatures - they seem to be mostly fine. The problem I have is that the fan curve is silly and I want to change it. When the temperature of the CPU rises rapidly (e.g. turboing when a new application is opened) the fan goes all the way up to 75% (which is annoyingly loud) and then drops down to a more sensible level around 30%. I'd like to change this behaviour to so that the fan doesn't spike so annoyingly high at first. This is something that I thought NBFC would be perfect for "fixing". Do you think this is something that undervolting would achieve?

I'm very new to this side of computing, so I'll have a proper look into MSI AB and Maxwell BIOS Tweaker. From what I gather, MSI AB is for GPU control rather than CPU so I don't think it will help with what I'm currently dealing with as my issue seems to be the CPU fans. The Maxwell BIOS Tweaker could unlock some CPU fan curves which aren't in the BIOS by default (even the advanced/secret BIOS doesn't seem to have proper fan controls which is a pain) so I will look into that and let you know findings.

<!-- gh-comment-id:643613441 --> @ghost commented on GitHub (Jun 13, 2020): My issue isn't with temperatures - they seem to be mostly fine. The problem I have is that the fan curve is silly and I want to change it. When the temperature of the CPU rises rapidly (e.g. turboing when a new application is opened) the fan goes all the way up to 75% (which is annoyingly loud) and then drops down to a more sensible level around 30%. I'd like to change this behaviour to so that the fan doesn't spike so annoyingly high at first. This is something that I thought NBFC would be perfect for "fixing". Do you think this is something that undervolting would achieve? I'm very new to this side of computing, so I'll have a proper look into MSI AB and Maxwell BIOS Tweaker. From what I gather, MSI AB is for GPU control rather than CPU so I don't think it will help with what I'm currently dealing with as my issue seems to be the CPU fans. The Maxwell BIOS Tweaker could unlock some CPU fan curves which aren't in the BIOS by default (even the advanced/secret BIOS doesn't seem to have proper fan controls which is a pain) so I will look into that and let you know findings.
Author
Owner

@github-actions[bot] commented on GitHub (Dec 12, 2020):

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

<!-- gh-comment-id:743489466 --> @github-actions[bot] commented on GitHub (Dec 12, 2020): 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
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/nbfc-hirschmann#797
No description provided.