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

MacBook Pro (16-inch, 2019) Support #96

Open
aanttila opened this issue Nov 20, 2019 · 27 comments
Open

MacBook Pro (16-inch, 2019) Support #96

aanttila opened this issue Nov 20, 2019 · 27 comments

Comments

@aanttila
Copy link

I just received my new 16-inch MacBook Pro (MacBookPro16,1) with an 8-core 2.4 GHz CPU, and of course, I wanted to customize the fan profiles using smcFanControl. Unfortunately, there seem to be enough software/hardware changes that fan speeds are reported incorrectly and cannot currently be modified.

@kleuter
Copy link

kleuter commented Nov 20, 2019

@aanttila
Did you try this app?

@aanttila
Copy link
Author

@kleuter I did, with similar problems; I've also tried iStatus Menus. All 3 have similar issues; they can't read the actual status of the fans or can't control them.

@kleuter
Copy link

kleuter commented Nov 22, 2019

@aanttila strange they claim full support
image

@aanttila
Copy link
Author

So it does work now, but only for a single custom setting without paying the license fee; I prefer smcFanControl for the simpler user interface and cost (free), which is why I submitted the bug for this project instead of ignoring it and using a different software product.

@alvinnguyen
Copy link

alvinnguyen commented Dec 2, 2019

Would love to see this happening :)

The new Mac wants to be quiet more than be cool so I have to find a solution while waiting for a hero to make SMC compatible with the new Mac.

But I'm happy to report the iStat Menu is working, it's a bit of a waste getting it just for the fan control but it works.

image

@mikeziri
Copy link

No one got it running yet?
not even with
sudo /Applications/smcFanControl.app/Contents/Resources/smc
?

@mikeziri
Copy link

mikeziri commented Jun 29, 2020

when running
/Applications/smcFanControl.app/Contents/Resources/smc -k "FS! " -w 0003
I allways get Error: SMCWriteKey() = e00002bc

this forces manual mode on the fans allowing you to set custom speeds on the fans. for the mbpro it has 2 fans so:
smc -k F0Tg -w 36b0
smc -k F1Tg -w 36b0

the 36b0 is is hex for 3500 dec left shifted by 2:
python -c "print hex(3500 << 2)"

probably need to dig into the code but I don't really know any objective-c.

@jlehrer1
Copy link

Any luck? @mikeziri

@jlehrer1
Copy link

@aanttila When are you open sourcing yours?

@mikeziri
Copy link

unfortunately no. the smc keys must be new.

@mgalijot
Copy link

mgalijot commented Jul 18, 2020

Can confirm that latest version (v2.48) of TG Pro can control fans on MacBook Pro (16-inch, 2019)

@CasperPas
Copy link
Contributor

#77 (comment)

@pokekrishna
Copy link

Hey folks,

I tried using smcFanControl on my MBP 16 2019, and as I can see you are mentioning SMC keys have changed.

I went ahead and installed Mac Fan Control and it did work for me. I am on the latest GA Mac OS version. Interesting thing is that the logs of the Mac Fan Control app dumps the values of the SMC Keys. Could you please take a look at my logs snippet.

[2020-08-08 07:25:57:322] [thread 163436] [SMC/Service.cpp#335] setFanRPM 5297 for F0Tg [2020-08-08 07:25:58:325] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Tg 0088a545 OK [2020-08-08 07:25:58:325] [thread 163436] [SMC/Service.cpp#335] setFanRPM 5297 for F0Tg [2020-08-08 07:26:08:367] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Md 01 OK [2020-08-08 07:26:08:367] [thread 163436] [SMC/Service.cpp#511] Set fan 0 mode 1 [2020-08-08 07:26:08:368] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F1Md 01 OK [2020-08-08 07:26:08:368] [thread 163436] [SMC/Service.cpp#511] Set fan 1 mode 1 [2020-08-08 07:26:08:368] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Tg 0088a545 OK [2020-08-08 07:26:08:368] [thread 163436] [SMC/Service.cpp#335] setFanRPM 5297 for F0Tg [2020-08-08 07:26:09:371] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Tg 0088a545 OK [2020-08-08 07:26:09:371] [thread 163436] [SMC/Service.cpp#335] setFanRPM 5297 for F0Tg [2020-08-08 07:26:10:372] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Tg 0088a545 OK [2020-08-08 07:26:10:372] [thread 163436] [SMC/Service.cpp#335] setFanRPM 5297 for F0Tg [2020-08-08 07:26:35:439] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F0Md 01 OK [2020-08-08 07:26:35:439] [thread 163436] [SMC/Service.cpp#511] Set fan 0 mode 1 [2020-08-08 07:26:35:440] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F1Md 01 OK [2020-08-08 07:26:35:440] [thread 163436] [SMC/Service.cpp#511] Set fan 1 mode 1 [2020-08-08 07:26:35:441] [thread 163436] [SMC/Platform_mac_smcwrite.mm#251] process_command_write: SMCWriteKey F1Tg 00489945 OK [2020-08-08 07:26:35:441] [thread 163436] [SMC/Service.cpp#335] setFanRPM 4905 for F1Tg [2020-08-08 07:26:36:408] [thread 163252] [SMC/Service.cpp#647] WARNING: getTemperature - skipping sensor TC7C with value of 129.0 [2020-08-08 07:26:36:409] [thread 163252] [SMC/Service.cpp#647] WARNING: getTemperature - skipping sensor TC8C with value of 129.0 [2020-08-08 07:26:36:413] [thread 163252] [SMC/Service.cpp#647] WARNING: getTemperature - skipping sensor TGDT with value of 255.934

@jlehrer1
Copy link

jlehrer1 commented Aug 8, 2020

@pokekrishna Huh that is very interesting. Thank you!

@CasperPas
Copy link
Contributor

yes, it might be affected by the recent macOS update. Both smc & iStat Menus stopped working, only Macs Fan Control works now.
@pokekrishna Thank you for your logs

@theRealSuperMario
Copy link

I tried macOS Fan control and hate to say that it is a little bit too complicated for me. Can anyone share their fan control settings with me maybe?

All I want is to increase the minimum fan speed so that it is a little bit cooler by default.

What confuses is which sensor to take for measurement. How to include CPU + GPU to the calculation and keep fan RPM in sync?

@erolrecep
Copy link

I just installed smcFanControl via brew cask. When I open it showed me a warning message of "this software is not tested on your machine but if you follow our instructions it will work". Which is a fair warning. However, on the bar, it just shows "47C and 0000RPM". I understand that it's not tested on this laptop specifically. When I install htop, it says run with sudo to run all features. Is there anyone who have tried running smcFanControl with sudo?

@kamil6x
Copy link

kamil6x commented Apr 26, 2021

Has anyone figured out the smc key for the Macbook Pro 16 to increase max fan speed?

@denysvitali
Copy link

Not sure if it's the maximum, but here it is something useful:

alias smc="/Applications/smcFanControl.app/Contents/Resources/smc"
smc -k "F0Md" -w 01
smc -k "F0Tg" -w 00d8d951
smc -k "F1Md" -w 01
smc -k "F1Tg" -w 0004a651

@kamil6x
Copy link

kamil6x commented Jul 1, 2021 via email

@denysvitali
Copy link

Oh yes, don't use mine, they're not bit shifted (LOL)

@kamil6x
Copy link

kamil6x commented Jul 1, 2021 via email

@denysvitali
Copy link

How do you check your RPMs by the way?

@kamil6x
Copy link

kamil6x commented Jul 1, 2021 via email

@denysvitali
Copy link

After checking, your values (0060ea45 = 7500 rpms (float 32)) are correct, but mines are overflowing (?) and thus causing the fans to spin faster.

Useful bash functions:

utils.sh

SMC="/Applications/smcFanControl.app/Contents/Resources/smc"

function get_bytes(){
  $SMC -r -k "$1" | grep -E -o 'bytes [0-9a-f ]+' | cut -d ' ' -f 2- | sed -E 's/ //g'
}

function hex_to_f32(){
  python3 -c "import struct; print(int(struct.unpack('f', bytes.fromhex('$1'))[0]))"
}

function f32_to_hex(){
  python3 -c "import struct; print(struct.pack('f', $1).hex())"
}

get.sh

#!/bin/bash
set -e
. utils.sh

F0_TARGET_BYTES=$(get_bytes "F0Tg")
F0_MIN_BYTES=$(get_bytes "F0Mn")
F0_MAX_BYTES=$(get_bytes "F0Mx")

F1_TARGET_BYTES=$(get_bytes "F1Tg")
F1_MIN_BYTES=$(get_bytes "F1Mn")
F1_MAX_BYTES=$(get_bytes "F1Mx")

F0_TARGET=$(hex_to_f32 "$F0_TARGET_BYTES")
F0_MIN=$(hex_to_f32 "$F0_MIN_BYTES")
F0_MAX=$(hex_to_f32 "$F0_MAX_BYTES")

F1_TARGET=$(hex_to_f32 "$F1_TARGET_BYTES")
F1_MIN=$(hex_to_f32 "$F1_MIN_BYTES")
F1_MAX=$(hex_to_f32 "$F1_MAX_BYTES")

function print_fan(){
  NUMBER="$1"
  TARGET="$2"
  F_MIN="$3"
  F_MAX="$4"

  echo "F$NUMBER: $2 ($F_MIN, $F_MAX)"
}

print_fan 0 "$F0_TARGET" "$F0_MIN" "$F0_MAX"
print_fan 1 "$F1_TARGET" "$F1_MIN" "$F1_MAX"

@kamil6x
Copy link

kamil6x commented Jul 7, 2021 via email

@henrik242
Copy link

Tried building and running the latest (commit e1bd672). My fans immediately went to full blast and wasn't able to control it. Had to turn the machine off :D

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

No branches or pull requests