nbfc-revive
nbfc-revive copied to clipboard
Not working
Describe the bug Not working Like in this case: https://www.youtube.com/watch?v=OJXzBzPKm6o Same problem
To Reproduce Just install and run
Expected behavior A clear and concise description of what you expected to happen.
System information
- windows 11 (Acer Nitro 5 AN517-41)
- 1.7.0
- log files: NoteBookFanControlLog.txt
All I see evidence for in the video is that you can't enable an HP Pavillion config on an Acer Nitro?
It is not my video. But problem is the same. I've tryed for 3 different Nitro 5 configs, including this ( Nitro5 3.0.zip but nothing helps
Could you take a look at the suggestion in my comment here?
I'm a relative nbfc noob, but my sketch of what you need to find out:
- what registers control your fan
- additional details like whether there are two (read and write) or one (combined)
- if the read-only and inability to enable fan control is a permissions issue
I think that would be a good start. Does your fan come on at all and change with CPU load? If so, if you record an ec-probe monitor
log and do some CPU stress that changes temp and fan speed, I can plot it for you to see if we can confirm the registers.
Can you also just post the output of ec-probe dump
? The use of <ReadWriteWords>true</ReadWriteWords>
stood out to me. My understanding is that this means the registers are not in 0-255 (1 byte), but 0-65535 (2 bytes) I think? But across Acers, this is true
for only 3 models? My intuition is this is EC chip dependent and it's unlikely to see only a few EC chips chosen by the same mfg that would require this. Total guess.
I'm also unsure on the use of <MaxSpeedValueRead>
. Or the reset value (50, vs. mostly 0 or 255 for other Acer configs).
Anyway, just thinking out loud. For now, seeing the actual registers and knowing if your fans change at all by default would be great. At least we can verify it's the right registers, and from there you should be able to try and manually write them to various values and see what happens.
Edit: for reference I'm doing everything on linux and not using nbfc on Windows so can't help much there. Also, maybe the answer is nbfc doesn't work on Win 11? Dunno.
I checked nbfc in Win10 on that note. Same thing. About all that things you wrote, I'll try my best, but honestly I inderstood not much =)
Totally fair. It's a lot to take in!
Step by step, I'd prioritize just this question and the following step if the answer is "Yes."
- ignoring nbfc entirely, do your fans work at all in Win 11? I actually couldn't tell and had to open my laptop to find out! In my case the answer was "No, they don't even spin. Period." If that's your answer, I'm stuck until someone else chimes in.
- if the answer is "Yes," then kindly try and record your registers. On linux (and maybe win) this is the command (for me it's in a terminal, for you it would be in cmd.exe):
ec-probe monitor -i 1 -r ec-monitor.txt
Start it in normal conditions, then do something to make the CPU/fans kick on for ~30sec, stop stressing the cpu so the fans slow and turn back off, wait 30sec, then stop the record command (Control + C) and the file will be generated. Attach it here.
Let me know if that makes sense.
Edit: and if the answer to the question is "No," then what to do next is beyond my expertise!
So. Ok. I did first step. Sorry for so long respond ( ec-monitor.txt
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F |
---|
00 |
10 |
20 |
30 |
40 |
50 |
60 |
70 |
80 |
90 |
A0 |
B0 |
C0 |
D0 |
E0 |
F0 |
ec-probe dump
Take a look at this plot and see if anything stands out. Can you answer this question I asked above?
ignoring nbfc entirely, do your fans work at all in Win 11? I actually couldn't tell and had to open my laptop to find out! In my case the answer was "No, they don't even spin. Period." If that's your answer, I'm stuck until someone else chimes in.
This plot relies on the idea that you a) started logging when the fans were off, b) did something to induce fan activity for a bit, and then c) went back to normal.
Without knowing that the graphs contain an event/change... it's hard to know what to look for. We need to see evidence that e.g. one register (temperature) elevated, another register (write, setpoint) change it's value to call for fan speed, and another register (read, actual) showed that the fan speed increased due to the setpoint call.
Completely guessing, but I'd toss out 13-16, 21-22, DB, DE, F8, and F9 as "interesting." There could be others, the scales can compress the changes. These look like something was going on vs. the others showing a flatline and maybe 1-2 notable changes. Temperature will be "organic" looking, and fans should in theory ramp up/down in response.
Ideally you can get the fan to go from absolutely off to super high, then back again. That would be a great signal to capture.
Oh. I can't totaly stop fans. And yeah. they are work corrcetly. There is Nitro app from Acer that can let you control the fans. but it work by it own rules. I can't control fine. That why I need nbfc. I did exactly what you asked. I switched them to low. Than I ran ec-monitor. Than switched both fans to maximum. Waited for 30 seconds. Than I switched them to low again and waited for 30 seconds. Than I stopped ec-monitor.
ec-monitor4.txt In attachment my new test. I repeat that steps. Switch to LOW speed - run ec-probe monitor - switch to MAX speed - WAITED for 30 sec - switch to LOW speed - WAITED for 30 sec - stop ec-probe monitor. Speed of fans was about: ~2850 RPM (left/proc) ~3700 RPM (right/GF) at LOW ~4650 RPM (left/proc) ~5750 RPM (right/GF) at MAX
Great info. Tough for sure as the register values will correlate, but not necessarily scale to the same amount as the raw values (like RPM). Here's all monitors as well as some I selected as potentially of interest.
edit: DE isn't actually interesting I don't think. I missed it was dropping to 0 all the time. It was one of the more "organic" looking and I wondered if it was the temperature. If you can check temperature, that could be another helpful thing to know, as there should be a register reporting temp.
Could you try something like starting the monitor again and go something like: low, medium, high, medium, low, high, low? If you are logging at ~1-2sec interval (I think the default is 5 or 10 sec, so we need to be faster), perhaps this will make it more obvious?
As another aside, it's possible you have read/write combined registers I think. I have no experience with those, but the challenge would be that when you change a speed it only sends a momentary value to the register which is read, changes the fan speed, but is then overwritten with the actual fan speed. Basically, the setting and actual are on the same register. I'm nervous that the ECs with "dips" and returns back to a previous level could be doing this.
CP_left.txt GF_right.txt Proc_temp.txt So i ran couple of test 1-st CP-fan. I logged 1-2 sec switched left fan speed low-mid-max-mid:loop Than one test 1-2 sec switched right fan speed low-mid-max-mid:loop Than another one of CP temp it is 10-15 sec switched from 60° to 81°:loop
CoolBoost_ON_OFF.txt There is one feature in Nitro App called CooBoost. When you switch it on or off it reset fan speed to almost stop it. Than they start to spinning with it normal speed or boost (depending of coolboost) So I logged it too switching every 10 secconds.
Ok, interesting. Going by file:
CP_left
All ECs:
Here are the ones that stood out to me (note: I let the y-axes min/max float per mini-plot to better show the range of the data; be careful when comparing values):
- 15 and 37 are very distinct, as they cycle from some low to a medium to a high as you described
- I would expect the write register to look sharp and fixed and the read register to look smoother (it is non-instant hardware responding to changes issued at the write register)
- perhaps 13 fits the description of something more "organic" trying to respond to the commands at 15 or 37?
- not sure what to make of the other registers of interest, but they were basically the only ones not doing a fixed value + occasional zeros
GP_right
All ECs:
Ones that stood out:
Thoughts:
- 13 is in both CP and GF, but in GF it's a lot more fixed/set (the plateaus are all the same values)... what might cause this?
- wow, 15 is the reverse; it's very wobbly in GF but quite fixed/set in CP
- 14 and 17 seem to "go together" in CP and 16 and 3A "go together" for the GF data
- DB does the same thing both times fluctuating between 65 and 80 (other than the fluke 0 in CP)
- no clue on DE, F8 and F9
Proc_temp
All ECs:
B0
was looking appealing to me re. temperature, but it had that 0 dip in there. Plotting B0
by itself and after pruning that 0 value could look like 60-80C fluctuating?
Confirmations
- [ ] spot check
ec_dump
for registerB0
(remember to convert to decimal) and compare tot system temp; if this isn't temperature, you'd be looking for a solid counter-example where e.g.B0
says 25 (0x19
) but the temp is 90C - [ ] perhaps re-run with longer holding at each target (low, med, high)? The changes are super tight which seems unrealistic for a fan to respond that quickly. Or, maybe the changes were being issued so fast it just jerked around between values. Not sure, but I don't feel solid about guessing which one of these is doing what at the moment. I feel like the best solution is more data with differing durations to try and make it super obvious. Maybe high/low for 1min at a time, then 30sec at a time, then 15 sec at a time. This way, we have longer time periods and the right registers should change at differing rates from everything else and stand out from the rest (maybe).
And Cool Boost:
13, 15, and DE?
Notable, assuming this does the same thing as the CPU/GPU fan calling: 37 and 3A were missing altogether, which means they didn't change at all during this logging! They were giving off quite an intriguing signal from the previous experiments??
Not sure I know what to make of this! Perhaps someone else can examine what's been done so far and give some thoughts.
So can we try to build experimental config basic on 37 and 3A, and try it on my system? Perhaps it will be work? Or I should collect new data from new longer tests?
CPU-fan.txt GPU-fan.txt So here is another two tests One for CPU fan and one for GPU Both cases I followed to parten:
low-mid-high-mid
low-mid-high-mid
low-mid-high-mid
low-high-low-high
low-high-low-high
low-high-low-high
mid-high-mid-low
mid-high-mid-low
mid-high-mid-low
high-mid-low
high-mid-low
high-mid-low
Where I wait for 10 seconds for each state. So every test long for about 7 and half minutes
Ok, good stuff! Here's an example of all ECs as before (just the CPU fan):
The pairs 13
/37
and 15/3A
stood out to me for the CPU and GPU plots, respectively:
CPU
GPU
So, I think from this that 37
and 3A
are your write registers for the CPU and GPU, respectively, and 13
and 15
are your fan speeds. From looking at the values, 243 (0xFA
) looks to be the highest speed for the CPU and 251 is the max for the GPU. This could mean it's really 255 and the control software just isn't really maxxing out.
Tests:
- [ ] you could try
ec-probe.exe write 100 0x37
and your CPU fan should start going very fast; I'm not sure if it will auto-reset or if that value gets overwritten? If nothing happens, it could mean you send the value and it's immediately told to be something else by the system? - [ ] you can try the same for the GPU,
ec-probe.exe write 100 0x3A
- [ ] for both these cases, you'd be watching
ec-probe.exe dump
for the output of13
and15
respectively to see if they change as expected - [ ] todo: I have no idea how to determine if you need to select the fan or issue a reset value. I used the Nitro config you had above to make some changes, but I have no idea if they are correct. @UraniumDonut would you be willing to skim this? I'm out of my element...
- I added comments to the CPU section where I was making changes and unsure
- I made the same changes for the GPU fan section
- I don't know how to figure out the reset registers/values
- the whole bottom section is unknown re. manual mode and CoolBoost
@chirick86 you could use this at your own risk or wait for additional input. I don't think there's anything bad going on here, particularly if you already tried this config. I've only left things as they were or modified them to be what I believe to be more accurate for your system. Still, I'm not sure.
If you try and use, rename from .txt to .xml. Acer_Nitro.txt
I've tryed your config. Same thing as on the video. App switched from disabled to read-only and back again in loop. Nothing heppend with coolerfans.
Then I've tryed ec-probe.exe write 100 0x37
and ec-probe.exe write 100 0x3A
- nothing ((
Ok, good stuff! Here's an example of all ECs as before (just the CPU fan):
The pairs
13
/37
and15/3A
stood out to me for the CPU and GPU plots, respectively:CPU
GPU
So, I think from this that
37
and3A
are your write registers for the CPU and GPU, respectively, and13
and15
are your fan speeds. From looking at the values, 243 (0xFA
) looks to be the highest speed for the CPU and 251 is the max for the GPU. This could mean it's really 255 and the control software just isn't really maxxing out.Tests:
- [ ] you could try
ec-probe.exe write 100 0x37
and your CPU fan should start going very fast; I'm not sure if it will auto-reset or if that value gets overwritten? If nothing happens, it could mean you send the value and it's immediately told to be something else by the system?- [ ] you can try the same for the GPU,
ec-probe.exe write 100 0x3A
- [ ] for both these cases, you'd be watching
ec-probe.exe dump
for the output of13
and15
respectively to see if they change as expected- [ ] todo: I have no idea how to determine if you need to select the fan or issue a reset value. I used the Nitro config you had above to make some changes, but I have no idea if they are correct. @UraniumDonut would you be willing to skim this? I'm out of my element...
- I added comments to the CPU section where I was making changes and unsure
- I made the same changes for the GPU fan section
- I don't know how to figure out the reset registers/values
- the whole bottom section is unknown re. manual mode and CoolBoost
@chirick86 you could use this at your own risk or wait for additional input. I don't think there's anything bad going on here, particularly if you already tried this config. I've only left things as they were or modified them to be what I believe to be more accurate for your system. Still, I'm not sure.
If you try and use, rename from .txt to .xml. Acer_Nitro.txt
Hey there, I have skimmed through it because I am on mobile for the week. Because I am not Mr. Hirschmann, my ability to help is limited. The parts that you commented in your config seem to be explained in this Wiki post
Hope this can help. I will try to assist when I have time to
Thanks for commenting @UraniumDonut !
The parts that you commented in your config seem to be explained in this Wiki post
I'm also super new to this and from the results @chirick86 posted most recently, it makes me wonder if we need to identify the correct reset register to trigger manual mode, but I have no idea how to do this. I've looked at some of the other values I skimmed and I don't think I see evidence requiring those settings (words, dual read/write registers, etc.) but I'm not 100%.
Seems like the registers identified are correct, but not how to toggle manual mode?
I looked at all the Acer configs and here's the unique values I see in the reset sections. Not all of these are for CPU, some specifically call out GPU or CoolBoost. Still, just wanted to illustrate the common values.
### for CPU
Configs/Acer Aspire 7741G.xml- <Register>147</Register>
Configs/Acer Aspire 7741G.xml- <Value>20</Value>
Configs/Acer Aspire V5-472PG.xml- <Register>148</Register>
Configs/Acer Aspire V5-472PG.xml- <Value>20</Value>
Configs/Acer Aspire VN7-572G V15 Nitro BE.xml- <Register>150</Register>
Configs/Acer Aspire VN7-572G V15 Nitro BE.xml- <Value>20</Value>
Configs/Acer Aspire VN7-591G V15 Nitro BE.xml- <Register>150</Register>
Configs/Acer Aspire VN7-591G V15 Nitro BE.xml- <Value>20</Value>
Configs/Acer Aspire E1-772.xml- <Register>238</Register>
Configs/Acer Aspire E1-772.xml- <Value>1</Value>
Configs/Acer Predator G3-572.xml- <Register>34</Register>
Configs/Acer Predator G3-572.xml- <Value>12</Value>
Configs/Acer Predator G3-572.xml- <ResetRequired>true</ResetRequired>
Configs/Acer Predator G3-572.xml- <ResetValue>4</ResetValue>
Configs/Acer Predator G3-572.xml: <ResetWriteMode>Set</ResetWriteMode>
Configs/Acer Predator G3-572.xml- <Description>CPU fan manual mode</Description>
Configs/Acer Predator G3-572.xml- <WriteOccasion>OnInitialization</WriteOccasion>
Configs/Acer Predator G3-572.xml- <Register>33</Register>
Configs/Acer Predator G3-572.xml- <Value>48</Value>
Configs/Acer Predator G3-572.xml- <ResetRequired>true</ResetRequired>
Configs/Acer Predator G3-572.xml- <ResetValue>16</ResetValue>
Configs/Acer Predator G3-572.xml: <ResetWriteMode>Set</ResetWriteMode>
Configs/Acer Predator G3-572.xml- <Description>GPU fan manual mode</Description>
Configs/Acer Predator PH315-53.xml- <Register>33</Register>
Configs/Acer Predator PH315-53.xml- <Value>48</Value>
Are any of these closer to the model you have, @chirick86 ? I noticed the one you provided which I modified has register 34, value 12 as the manual mode config. Could you try modifying the config with the value from Acer Aspire 7741G.xml perhaps (register 147, value 20)? I don't think you have to worry about GPU or CoolBoost at the moment. We just want the trigger for manual mode (I think) so that nbfc can do its thing.