UraniumDonut / nbfc-revive

NoteBook FanControl
Other
160 stars 24 forks source link

Razer Blade Pro 2020 #34

Open Alphafox992 opened 2 years ago

Alphafox992 commented 2 years ago

I am truly sorry if this asking to much, but I have been fruitless trying to command my EC.

Razer appears to use a different EC for each year, and there are updates. I am on bios 1.06, and EC 1.1.1.2

I can identify the temperature bytes, at 86, and 88, but cannot find the fans. the conversion from decimal to hex (using rweverything since I was taking so long to find any pattern at all, and ECprobe was running off the screen and breaking) This is honestly a little over my head, and I would figuratively kill for a working config.

Appreciate any help, and happy to teamviewer or whatever needed if someone is willing to take the time to baby step me.

As of right now, the inbuilt 2014 razer config does not work, and crashes the service every second or so. Thank you for any help with this. RWtemp

Alphafox992 commented 2 years ago

Will literally pay someone for their time. I have found that running synapse 3.0 or not changes how fast everything updates significantly. (much higher rate of change with it running)

jwhendy commented 2 years ago

Can you take a look at #38 ? If you can stress your cpu and the fans change accordingly, I'm willing to look at a log file for you. Do the following:

If you use python at all, here's code that will read in and plot all registers:

# you'll have to have pandas and plotnine installed
import pandas as pd
from plotnine import *

# change ec-monitor.txt to whatever your path/file is
df = pd.read_csv("ec-monitor.txt", index_col=False)

# this changes the column headers (register names) and register data to decimal from hex
df.columns = [int(str(x), base=16) for x in df.columns]
df = df.apply(lambda x: x.astype(str).map(lambda x: int(x, base=16)))

# adds an index column so we can plot the ith value; also rearranges data into long form for plotting
df['i'] = range(len(df))
df = df.melt(id_vars='i')
ggplot(df, aes(x='i', y='value')) + geom_line() + facet_wrap('~variable')

This let me get a plot like so, which identified 46/47 and 53/54 as the proper registers. I set 47 (write) to 50 (off is 255, max is 0) then back to 255, then the same with 54. You can see 46 and 53 (read registers for the speed) ramp up and settle in at speed 50, then go back to 255 (off). I think a plot like this might help you figure out which are the possible candidates, assuming you can get your cpu/fans to actually kick on. grab_2021-09-04_132930

In my case, my fans were not working at all, no matter what. I got lucky and found that the Zbook 15 G3 config used the correct registers, just with the wrong min/max values. Still, this at least produced a fan speed change, which let me feel confident monkeying with the speeds manually using ec-probe write and nbfc set -f 0 -s 100 to see what would happen.

Edits: fixed mistaken register numbers

Alphafox992 commented 2 years ago

Managed to brick device.

Thanks tho. Good luck.

On Sat, Sep 4, 2021, 1:09 PM John Hendy @.***> wrote:

Can you take a look at #38 https://github.com/UraniumDonut/nbfc-revive/issues/38 ? If you can stress your cpu and the fans change accordingly, I'm willing to look at a log file for you. Do the following:

  • run ec-probe monitor -c -i 1 -r ec-monitor.txt
  • wait 15sec
  • start a process that makes the CPU/temps spike and kicks the fan on
  • wait 15sec
  • stop the stress process so the cpu/temps fall and the fans stop
  • wait 15sec
  • kill the recording process, which will generate ec-monitor.txt
  • attach the file

If you use python at all, here's code that will read in and plot all registers:

you'll have to have pandas and plotnine installed

import pandas as pd from plotnine import *

change ec-monitor.txt to whatever your path/file is

df = pd.read_csv("ec-monitor.txt", index_col=False)

this changes the column headers (register names) and register data to decimal from hex

df.columns = [int(str(x), base=16) for x in df.columns] df = df.apply(lambda x: x.astype(str).map(lambda x: int(x, base=16)))

adds an index column so we can plot the ith value; also rearranges data into long form for plotting

df['i'] = range(len(df)) df = df.melt(id_vars='i') ggplot(df, aes(x='i', y='value')) + geom_line() + facet_wrap('~variable')

This let me get a plot like so, which identified 46/47 and 50/53 as the proper registers. I set 47 (write) to 50 (off is 255, max is 0) then back to 255, then the same with 53. You can see 46 and 50 (read registers for the speed) ramp up and settle in at speed 50, then go back to 255 (off). I think a plot like this might help you figure out which are the possible candidates, assuming you can get your cpu/fans to actually kick on. [image: grab_2021-09-04_132930] https://user-images.githubusercontent.com/379357/132106734-5db7ec28-949a-4322-b4c8-7c294676de99.png

In my case, my fans were not working at all, no matter what. I got lucky and found that the Zbook 15 G3 config used the correct registers, just with the wrong min/max values. Still, this at least produced a fan speed change, which let me feel confident monkeying with the speeds manually using ec-probe write and nbfc set -f 0 -s 100 to see what would happen.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/UraniumDonut/nbfc-revive/issues/34#issuecomment-913033706, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVD27ZSNMMA27WYM7MIACXLUAJ4F3ANCNFSM5BXMNTBA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

jwhendy commented 2 years ago

Sorry to hear :( You might as well close this, I guess?

Alphafox992 commented 2 years ago

Yeah.

On Wed, Sep 8, 2021, 12:38 PM John Hendy @.***> wrote:

Sorry to hear :( You might as well close this, I guess?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/UraniumDonut/nbfc-revive/issues/34#issuecomment-915516057, or unsubscribe https://github.com/notifications/unsubscribe-auth/AVD27ZTFEBJPAR4GVQSXM6LUA63RZANCNFSM5BXMNTBA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

RepublicOfKorokke commented 2 years ago

I tried https://github.com/UraniumDonut/nbfc-revive/issues/34#issuecomment-913033706 (Thank you @jwhendy) method 3 times on Razer Balde 14 2021(AMD, 3070 model) But I dont see any address to correspoding to fan speed. So newer Razer Blade's fans might not be controled by EC? (Is it possible?) Figure_3 Figure_1 Figure_2

Gabboxl commented 2 years ago

Hi, I'm trying to figure out which EC register controls the fans' speed for my Razer Blade 15 Early 2020 (RTX 2070 Max-Q) too but I came across the same situation as https://github.com/UraniumDonut/nbfc-revive/issues/34#issuecomment-922167112...

I noticed that the values ​​of the register number 86 could relate to the fans' RPM (or CPU temp most probably) during my test. I tried changing its values but I think it operates as a read only register.

Here's the chart: RazerBlade15-early2020-2070

I know this thread is a little bit old but... did anyone find a solution?