-
Notifications
You must be signed in to change notification settings - Fork 4
How to make a config for YAMDCC
Open the YAMDCC config editor, and load the config corresponding to your laptop model (9th-gen or older, or 10th-gen or newer):
TODO: screenshot
Go to Options
> Get default fan profile from EC...
:
TODO: screenshot
Click Yes
on the message box that appears, then reboot your laptop.
After rebooting, open YAMDCC again, and you should see a message box like this:
TODO: screenshot. The message will say: "Your laptop's default fan curves have been saved to the currently applied config successfully. Make sure to save your config! (using the "Save config" button)"
Do as it asks (save your new config). Name it after your laptop, e.g. MSI-GF63-Thin-11SC.xml
.
For MSI laptops, one of the included template configs will already have all the correct EC registers for you, and all you need to do is fill the default temperature thresholds.
Open an Administrator Command Prompt to YAMDCC's install directory, and run ec-monitor --dump
.
You will see output similar to the following (I have added notes for where the fan curves and temp
thresholds are located):
C:\Windows\System32>ec-monitor --dump
| 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
---|------------------------------------------------
00 | 00 80 00 00 00 00 00 00 00 00 00 00 00 00 00 00
10 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
20 | 00 00 00 00 00 00 00 00 0A 05 00 00 00 04 09 0B
30 | 03 01 00 0D 00 00 50 81 94 11 88 2C C2 01 C0 00
40 | FC 08 3D 00 46 0D 00 00 F7 07 F0 2C BE 0B FA 32
50 | 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60 | 00 00 00 00 00 00 00 00 2A 00 37 40 49 4C 52 58 <-- CPU temp up thresholds (0x69-0x6F)
70 | 64 26 26 2B 30 36 3C 46 55 64 08 03 03 03 03 03 <-- CPU fan curve (0x72-0x78), CPU temp down thresholds (0x7A-0x7F)
80 | 00 00 37 3D 43 49 4F 55 63 26 26 2B 30 36 3C 46 <-- GPU temp up thresholds (0x81-0x87), GPU fan curve (0x8A-0x90)
90 | 55 64 08 03 03 03 03 03 06 0F 64 06 0F 64 23 00 <-- GPU temp down thresholds (0x92-0x97)
A0 | 31 36 52 36 45 4D 53 31 2E 31 30 34 31 31 31 34
B0 | 32 30 32 31 31 35 3A 35 36 3A 33 31 00 00 00 28
C0 | 00 00 01 33 00 00 00 00 01 10 00 00 00 00 00 00 <-- Fan RPMs (0xC8-0xC9)
D0 | 00 00 C0 81 4D 00 05 BC 21 01 00 00 00 00 00 00
E0 | E2 00 00 46 0D 00 00 40 00 00 00 00 00 83 00 01
F0 | 40 00 70 00 00 64 00 00 64 00 00 00 00 00 00 00
To get the decimal number, open Windows' built in programmer calculator, switch to Hex input, copy and paste your value in, then switch to Dec(imal) input:
TODO: screenshots
You may notice that the CPU/GPU temp down thresholds are stored in the EC as an offset of the CPU/GPU up thresholds.
YAMDCC stores temperature thresholds as actual values (not offsets), so the true thresholds must be calculated.
The formula for calculating the true down threshold is as follows:
Tdown = Tup - Toffset
In the case of my laptop, the full temperature thresholds for the CPU fan would look like this:
- Up threshold: 0, down threshold: 0 (this will always be the same across YAMDCC configs)
- Up threshold: 55, down threshold: 47
- Up threshold: 64, down threshold: 61
- Up threshold: 73, down threshold: 70
- Up threshold: 76, down threshold: 73
- Up threshold: 82, down threshold: 79
- Up threshold: 88, down threshold: 85
And for the GPU fan:
- Up threshold: 0, down threshold: 0
- Up threshold: 55, down threshold: 47
- Up threshold: 61, down threshold: 58
- Up threshold: 67, down threshold: 64
- Up threshold: 73, down threshold: 70
- Up threshold: 79, down threshold: 76
- Up threshold: 85, down threshold: 82
You will then need to copy your obtained values into the appropriate section of the config (CPU Fan or GPU Fan). Note that laptops with one physical fan still have controls for two "virtual" fans. An example fan curve config follows:
<FanCurveConfs>
<FanCurveConf>
<Name>Default</Name>
<Desc>The manufacturer default CPU fan curve.</Desc>
<TempThresholds>
<TempThreshold>
<UpThreshold>0</UpThreshold>
<DownThreshold>0</DownThreshold>
<FanSpeed>38</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>55</UpThreshold>
<DownThreshold>47</DownThreshold>
<FanSpeed>43</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>64</UpThreshold>
<DownThreshold>61</DownThreshold>
<FanSpeed>48</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>73</UpThreshold>
<DownThreshold>70</DownThreshold>
<FanSpeed>54</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>76</UpThreshold>
<DownThreshold>73</DownThreshold>
<FanSpeed>60</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>82</UpThreshold>
<DownThreshold>79</DownThreshold>
<FanSpeed>70</FanSpeed>
</TempThreshold>
<TempThreshold>
<UpThreshold>88</UpThreshold>
<DownThreshold>85</DownThreshold>
<FanSpeed>85</FanSpeed>
</TempThreshold>
</TempThresholds>
</FanCurveConf>
...
</FanCurveConfs>
You're on your own. See NBFC's wiki for a comprehensive guide on how to reverse-engineer your laptop's EC for fan control purposes.
You can read more about YAMDCC's config layout here.
Wiki under construction (that means stuff is going to be missing)!
The contents of this wiki are licensed under CC BY-SA 4.0.
YAMDCC, including the program and documentation (including this wiki) are not endorsed by or affiliated with Micro-Star International Co., Ltd. in any way, shape, or form.