Skip to content

Commit a0c04e1

Browse files
committed
Support ASUS ROG Crosshair X870E Apex
* Remove unnecessary HashSet * Adjust Temperature Sensor Mapping Both Temp #1 and Temp #22 move with CPU load, but it looks like Temp #22 is actually CPU which is the same as the Hero. #1 doesn't align mostly with VRM but isn't an exact match. * Refactor temperature sensor mapping Replaces the temperature sensor dictionary mapping with explicit additions for known sensors and a loop to add unmapped sensors.
1 parent b89a887 commit a0c04e1

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed

OpenHardwareMonitorLib/Hardware/Motherboard/Identification.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -629,6 +629,8 @@ public static Model GetModel(string name)
629629
return Model.PRIME_X870_P;
630630
case var _ when name.Equals("ROG STRIX X870-I GAMING WIFI", StringComparison.OrdinalIgnoreCase):
631631
return Model.ROG_STRIX_X870_I_GAMING_WIFI;
632+
case var _ when name.Equals("ROG CROSSHAIR X870E APEX", StringComparison.OrdinalIgnoreCase):
633+
return Model.ROG_CROSSHAIR_X870E_APEX;
632634
case var _ when name.Equals("ROG CROSSHAIR X870E HERO", StringComparison.OrdinalIgnoreCase):
633635
return Model.ROG_CROSSHAIR_X870E_HERO;
634636
case var _ when name.Equals("MAG X870 TOMAHAWK WIFI (MS-7E51)", StringComparison.OrdinalIgnoreCase):

OpenHardwareMonitorLib/Hardware/Motherboard/Model.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ public enum Model
109109
ROG_MAXIMUS_XII_HERO_WIFI,
110110
ROG_STRIX_X870_I_GAMING_WIFI,
111111
PRIME_X870_P,
112+
ROG_CROSSHAIR_X870E_APEX,
112113
ROG_CROSSHAIR_X870E_HERO,
113114
ROG_STRIX_X870E_E_GAMING_WIFI,
114115
PROART_X870E_CREATOR_WIFI,

OpenHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4794,6 +4794,57 @@ private static void GetNuvotonConfigurationD(ISuperIO superIO, Manufacturer manu
47944794

47954795
break;
47964796

4797+
case Model.ROG_CROSSHAIR_X870E_APEX: // NCT6701D
4798+
{
4799+
v.Add(new Voltage("Vcore", 0, 15, 136));
4800+
v.Add(new Voltage("+5V", 1, 4, 1));
4801+
v.Add(new Voltage("AVSB", 2, 34, 34));
4802+
v.Add(new Voltage("+3.3V", 3, 34, 34));
4803+
v.Add(new Voltage("+12V", 4, 11, 1));
4804+
v.Add(new Voltage("VMISC", 5, 9, 82));
4805+
v.Add(new Voltage("CPU SOC", 6, 9, 82));
4806+
v.Add(new Voltage("+3V Standby", 7, 34, 34));
4807+
v.Add(new Voltage("CMOS Battery", 8, 34, 34));
4808+
v.Add(new Voltage("VTT", 9, 34, 34));
4809+
v.Add(new Voltage("Chipset 0 VDD", 10, 1, 1));
4810+
v.Add(new Voltage("Chipset 1 VDD", 11, 1, 1));
4811+
v.Add(new Voltage("Chipset Standby", 12));
4812+
v.Add(new Voltage("CPU VDDIO / MC", 13, 9, 82));
4813+
v.Add(new Voltage("1.8V PLL", 14, 17, 36));
4814+
4815+
// The following mappings only apply when FanXpert is off in Armoury Crate.
4816+
t.Add(new Temperature("CPU Package", 0));
4817+
t.Add(new Temperature("VRM", 1));
4818+
t.Add(new Temperature("Motherboard", 2));
4819+
t.Add(new Temperature("CPU", 22));
4820+
4821+
// Add all unmapped temperature sensors
4822+
for (int i = 3; i < superIO.Temperatures.Length; i++)
4823+
{
4824+
if (i != 22)
4825+
{
4826+
t.Add(new Temperature($"Temperature #{i}", i));
4827+
}
4828+
}
4829+
4830+
fanControlNames = ["Chassis Fan #1", "CPU Fan", "Chassis Fan #2", "Extra Flow Fan", "Unused", "Water Pump", "AIO Pump"];
4831+
4832+
System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length, $"Expected {fanControlNames.Length} fan register in the SuperIO chip");
4833+
System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length, "Expected counts of fan controls and fan speed registers to be equal");
4834+
4835+
for (int i = 0; i < fanControlNames.Length; i++)
4836+
{
4837+
f.Add(new Fan(fanControlNames[i], i));
4838+
}
4839+
4840+
for (int i = 0; i < fanControlNames.Length; i++)
4841+
{
4842+
c.Add(new Control(fanControlNames[i], i));
4843+
}
4844+
}
4845+
4846+
break;
4847+
47974848
case Model.ROG_CROSSHAIR_X870E_HERO: // NCT6701D
47984849
v.Add(new Voltage("Vcore", 0));
47994850
v.Add(new Voltage("+5V", 1, 4, 1));

0 commit comments

Comments
 (0)