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

Support for MSI Thin GF63 12VF #198

Open
FoxtrotFaux opened this issue Jan 22, 2025 · 9 comments
Open

Support for MSI Thin GF63 12VF #198

FoxtrotFaux opened this issue Jan 22, 2025 · 9 comments
Labels
New firmware Request for a new firmware

Comments

@FoxtrotFaux
Copy link

Laptop model

Thin GF63 12VF

EC firmware version

16R8IMS.111

List of addresses and their values

Exact firmware build (from EC): 16R8IMS1.1110314202410:13:57 (built 2024-03-14 10:13:57)

Memory snapshot from RW on Windows:
Type:Embedded Controller: 0066,0062
Width:01
00=00 01=00 02=00 03=00 04=00 05=00 06=00 07=00 
08=00 09=00 0A=00 0B=00 0C=00 0D=00 0E=00 0F=00 
10=00 11=00 12=00 13=00 14=00 15=00 16=00 17=00 
18=00 19=00 1A=00 1B=00 1C=00 1D=00 1E=00 1F=00 
20=00 21=00 22=00 23=00 24=00 25=00 26=00 27=00 
28=0A 29=05 2A=00 2B=00 2C=00 2D=22 2E=09 2F=1B 
30=02 31=05 32=00 33=05 34=00 35=00 36=50 37=81 
38=94 39=11 3A=88 3B=2C 3C=C2 3D=01 3E=C0 3F=00 
40=FC 41=08 42=40 43=00 44=43 45=10 46=30 47=FA 
48=5D 49=0A 4A=89 4B=2B 4C=72 4D=0B 4E=FA 4F=32 
50=00 51=00 52=00 53=00 54=00 55=00 56=00 57=00 
58=00 59=00 5A=00 5B=00 5C=00 5D=00 5E=00 5F=00 
60=00 61=00 62=00 63=00 64=00 65=00 66=00 67=00 
68=23 69=00 6A=32 6B=3C 6C=41 6D=46 6E=4B 6F=50 
70=64 71=00 72=00 73=28 74=32 75=3C 76=46 77=50 
78=55 79=4B 7A=03 7B=03 7C=03 7D=03 7E=03 7F=03 
80=00 81=00 82=32 83=3C 84=41 85=46 86=4B 87=50 
88=63 89=00 8A=00 8B=28 8C=32 8D=3C 8E=46 8F=50 
90=55 91=64 92=03 93=03 94=03 95=03 96=03 97=03 
98=06 99=05 9A=00 9B=06 9C=0F 9D=00 9E=00 9F=00 
A0=31 A1=36 A2=52 A3=38 A4=49 A5=4D A6=53 A7=31 
A8=2E A9=31 AA=31 AB=31 AC=30 AD=33 AE=31 AF=34 
B0=32 B1=30 B2=32 B3=34 B4=31 B5=30 B6=3A B7=31 
B8=33 B9=3A BA=35 BB=37 BC=00 BD=00 BE=00 BF=08 
C0=00 C1=00 C2=06 C3=24 C4=00 C5=00 C6=12 C7=00 
C8=00 C9=00 CA=00 CB=00 CC=00 CD=00 CE=00 CF=00 
D0=00 D1=00 D2=C2 D3=80 D4=0D D5=00 D6=04 D7=BC 
D8=00 D9=01 DA=00 DB=00 DC=00 DD=07 DE=00 DF=00 
E0=E2 E1=00 E2=00 E3=43 E4=10 E5=00 E6=00 E7=C1 
E8=41 E9=00 EA=00 EB=0F EC=00 ED=C2 EE=00 EF=00 
F0=10 F1=00 F2=70 F3=00 F4=1F F5=64 F6=00 F7=00 
F8=64 F9=00 FA=00 FB=00 FC=00 FD=00 FE=00 FF=00


Address mappings:

Firmware Version & Build Datetime
Addresses: A0-BB 
Value (text): 16R8IMS1.1110314202410:13:57

Battery Charge Profiles
Address: D7
Values:
E4 = charge to 100% & "AI charging"
D0 = 70% min 80% max
BC = 50% min 60% max

Battery Charge %
Address: 42

User Scenarios
Address: D2
Values:
C4 = Extreme
C1 = Balanced
C1 = Silent
C2 = Super Battery

Keyboard Backlight
Address: D3
Values:
80 = Off
81 = Low
82 = Med
83 = Hi
Note: Extreme Scenario sets to 83, Super Bat sets to 80

CPU Thermal Threshold / Active Fan Profile
Address: FD
Values:
00 = Off
01-05 = Custom fan profile levels (higher is hotter)
06 = thermal override - runs fan at max

GPU Thermal Threshold / Active Fan Profile
Address: FE
Note: Values correspond to same profiles as in above. There is no separate fan for the GPU on this laptop and no separate fan settings in MSI Center. It's also possible that F9-FC or FF are temperature thresholds as well, but no change in their value has been observed.

CPU Fan Profiles %
Addresses: 73-77
00 = 0% fan
Note: Maximum allowed in MSI Center is 150% (confirmed 96 in hex). Did not attempt to force higher values in EC memory.

CPU Fan Speed %
Addresses: 
71 = fan speed actual
72 = fan speed setpoint/minimum. 00 when fan profile is set to auto.

Fan Control Governor
Address: 98
Values:
06 = Software controlled (custom fan profile or cooler boost mode)
86 = Hardware controlled? (Auto fan profile)

Fan State
Address: 33
Values:
05 = off
0D = on

CPU Temp Celsius
Address: 68

GPU Temp Celsius
Address: 80
Exception:
00 = GPU off

CPU Usage %
Address: EB

Sound Mute State
Address: 2D
Values:
20 = unmuted
22 = muted
Note: changes state on headphone jack plug/unplug.

Webcam State
Address: 2E
Values:
09 = off
0B = on

USB Power Share State
Address: BF
Values:
08 = off
28 = on

Charger State & More?
Addresses: 30 & 31
Values:
03 01 = plugged
02 05 = unplugged
Note: One of these addresses probably goes to something else.

Last Function/Action Performed?
Address: ED
Values observed:
B7 = brightness lowered (not a brightness value)
B8 = brightness raised
C0 = None? (can be reached by spamming Fn key or toggling webcam)
03 = Unknown 
D1 = charger unplugged
Note: Tried Fn key combos for airplane mode, touchpad toggle, presentation key, "G" power profile key, and volume up/down/mute and did not observe any other value than C0.

Unknown - Related to Super Battery Scenario
Address: FB
Values:
0F = Super Battery User Scenario
00 = All other User Scenarios
Note: Does not get set by Windows power save mode.

Unknown - Battery Related
Addresses: 46 & 47
Values:
00 00 = charger plugged
Note: these change frequently when charger unplugged. Whether I look at them as individual bytes or a word, I am not able to find any hardware sensor that these map to. 

Unknown - Possibly Temperature Related
Address: F4
Values observed: 2D-33
Note: never matches any temperature probe in hardware monitor programs. Does not immediately respond to high load or max fan. Could be a probe in the display or could be resource usage related as primary way of raising temp is through Passmark benchmarking tool.

Unknown
Addresses:
44 = frequently changes
48-4C = frequently change
89 = observed values 28 & 00. Could not track down what state change triggers this.
C6 = observed values 11, 12, & 43
C8 = every time I have noticed this change, I have been checking previously saved values using the RW Compare tool, and it changes back to 00 when I flip back to Hardware. It mocks me...
C9 = observed C3, 00, D8
F0 = changes infrequently. Will try to remember to compile values from my memory snapshots.

GPU

Nvidia

Is your keyboard RGB?

No (single color)

Additional context

Please let me know if you need/want anything more from me.

Thanks

@FoxtrotFaux FoxtrotFaux added the New firmware Request for a new firmware label Jan 22, 2025
@mutchiko
Copy link
Contributor

could you please re check shift mode? usually if you have 4 modes you should have 4 values, you can look for a different address that reacts to shift mode but with 4 values.

other than that everything looks good

@FoxtrotFaux
Copy link
Author

Will do when I get off work. I assume the balanced mode flips between the other 3 states dynamically, but I will check for sure. I also think the auto fan profile levels might be stored in there, but I haven't finished checking this.

Thanks

@glpnk
Copy link
Contributor

glpnk commented Jan 22, 2025

Impressive

@glpnk
Copy link
Contributor

glpnk commented Jan 22, 2025

You can completely ignore any AI modes, they just changed by app itself. These modes are just power limits to CPU and GPU

@FoxtrotFaux
Copy link
Author

I apologize, I wasn't able to get back to this yesterday. Too many frozen pipes at work.

I stand by the values I gathered for user scenario, and I attached snapshots here from each scenario. I did notice that address D4 changes from value 0D on Extreme, Balanced, and Super Battery to 1D when on Silent. That makes 2 values (with address FD) that are scenario specific and have an unknown function.

Balanced.txt
Extreme.txt
Silent.txt
SuperBattery.txt

I do however need to amend my values for fan speed and profiles.

Active Fan Profile Setpoint %
Address: 71

Active Fan Curve (Editable from RW)
Addresses: 72-78
Values:
If custom profile is enabled, these are set to custom profile values. If auto is selected, values from the auto curve range are populated.

Auto Fan Curve Definition (Read Only?)
Addresses: 8A-90
Note: I could not change these values with RW like I can with the keyboard brightness level. They just reset to their original values when the fan profile changes.

Current Fan Speed (Read Only?)
Addresses: C8-C9
Note: C8 is 00 until fan speed is at its lowest: ramping down before turning off. At top fan speed after plenty of time to ramp up, C8 is 00 and C9 is 55. At lower ramp down speeds, C9 approaches FF while C8 starts populating. I'm guessing some sort of 16 bit float or PWM setting or something. Dunno

@mutchiko
Copy link
Contributor

i think everything is set in place, we just need to test shift mode to see if it works as intended or not:

download this fork

do the dkms UNINSTALL step first, then do dkms install
you should have no errors.

now install a graphical interface from here: https://github.com/mutchiko/MControlCenter/tree/reduced-ec-calls
app might not launch if you dont have basic Qt packages installed, or if they are older than version 6.8

once installed, try switching power profiles to see if they work, also test other features just to be sure

@FoxtrotFaux
Copy link
Author

I noticed a couple of mistakes I made. Must have been when I was cleaning up the text file while still on Windows. There's something wrong with the keyboard input on that install.

CPU Usage %
Address: EB DD

Super Battery
Address: FB EB

I also found that the missing 4th shift mode, C0, is the default on boot for Linux as well as on Windows if the MSI Center app is uninstalled/not enabled on startup. Not sure if I'm missing something or if they made a mistake in the app, but I'm pretty sure that's supposed to be the balanced mode, not C1 like silent mode.

Also, the version number in the EC differs from what is listed on the MSI website.

I'm going to submit a PR to your fork with the corrections momentarily.

@mutchiko
Copy link
Contributor

ok your laptop has super battery, but shift mode is still weird, are you able to get C0 each time you select balanced mode?

how about some screenshots from the msi app

@FoxtrotFaux
Copy link
Author

FoxtrotFaux commented Jan 26, 2025

Nope. No way of reaching it from MSI Center at all. It is only set on Linux, or on Windows when MSI Center is fully uninstalled. Screenshots and GIF attached.

Image
Image
Image
Image
Image

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

No branches or pull requests

3 participants