diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 8472303..d340497 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -395,6 +395,8 @@ internal class Identification return Model.ROG_STRIX_Z390_I_GAMING; case var _ when name.Equals("ROG STRIX Z690-A GAMING WIFI D4", StringComparison.OrdinalIgnoreCase): return Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4; + case var _ when name.Equals("ROG MAXIMUS XI FORMULA", StringComparison.OrdinalIgnoreCase): + return Model.ROG_MAXIMUS_XI_FORMULA; case var _ when name.Equals("ROG MAXIMUS X HERO (WI-FI AC)", StringComparison.OrdinalIgnoreCase): return Model.ROG_MAXIMUS_X_HERO_WIFI_AC; case var _ when name.Equals("ROG MAXIMUS Z690 FORMULA", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs index cc0ecc0..41f2dc8 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Lpc/EC/EmbeddedController.cs @@ -174,6 +174,14 @@ public abstract class EmbeddedController : Hardware ECSensor.TempVrm, ECSensor.TempChipset, ECSensor.TempTSensor), + new(Model.ROG_MAXIMUS_XI_FORMULA, + BoardFamily.Intel300, + ECSensor.TempVrm, + ECSensor.TempChipset, + ECSensor.TempWaterIn, + ECSensor.TempWaterOut, + ECSensor.TempTSensor, + ECSensor.FanCPUOpt), new(Model.ROG_STRIX_Z690_A_GAMING_WIFI_D4, BoardFamily.Intel600, ECSensor.TempTSensor, @@ -277,6 +285,8 @@ public abstract class EmbeddedController : Hardware { ECSensor.TempVrm, new EmbeddedControllerSource("VRM", SensorType.Temperature, 0x003e) }, { ECSensor.TempChipset, new EmbeddedControllerSource("Chipset", SensorType.Temperature, 0x003a) }, { ECSensor.TempTSensor, new EmbeddedControllerSource("T Sensor", SensorType.Temperature, 0x003d, blank: -40) }, + { ECSensor.TempWaterIn, new EmbeddedControllerSource("Water In", SensorType.Temperature, 0x0100, blank: -40) }, + { ECSensor.TempWaterOut, new EmbeddedControllerSource("Water Out", SensorType.Temperature, 0x0101, blank: -40) }, { ECSensor.FanCPUOpt, new EmbeddedControllerSource("CPU Optional Fan", SensorType.Fan, 0x00b0, 2) } } }, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 102aee9..b5f1b0d 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -58,6 +58,7 @@ public enum Model ROG_STRIX_Z390_F_GAMING, ROG_STRIX_Z390_I_GAMING, ROG_STRIX_Z690_A_GAMING_WIFI_D4, + ROG_MAXIMUS_XI_FORMULA, ROG_MAXIMUS_X_HERO_WIFI_AC, ROG_MAXIMUS_Z690_FORMULA, ROG_MAXIMUS_Z690_HERO, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index b0034b1..0f945b7 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -2823,6 +2823,45 @@ internal sealed class SuperIOHardware : Hardware break; + case Model.ROG_MAXIMUS_XI_FORMULA: //NC6798D + v.Add(new Voltage("Vcore", 0)); + v.Add(new Voltage("+5V", 1, 4, 1)); + v.Add(new Voltage("AVSB", 2, 34, 34)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+12V", 4, 11, 1)); + v.Add(new Voltage("VIN8", 5)); + v.Add(new Voltage("CPU Graphics", 6)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBat", 8, 34, 34)); + v.Add(new Voltage("VTT", 9, 1, 1)); + v.Add(new Voltage("DIMM", 10)); + v.Add(new Voltage("CPU VCCIO", 11, 1, 1)); + v.Add(new Voltage("PCH Core", 12)); + v.Add(new Voltage("CPU PLLs", 13)); + v.Add(new Voltage("CPU VCCSA", 14)); + + t.Add(new Temperature("Motherboard", 0)); + t.Add(new Temperature("CPU", 1)); + t.Add(new Temperature("Motherboard", 2)); + t.Add(new Temperature("CPU (Weighted)", 6)); + t.Add(new Temperature("CPU (PECI)", 7)); + t.Add(new Temperature("CPU", 8)); + + fanControlNames = new[] { "Chassis Fan 1", "CPU Fan", "Chassis Fan 2", "Chassis Fan 3", "High Amp Fan", "Water Pump+", "AIO Pump" }; + System.Diagnostics.Debug.Assert(fanControlNames.Length == superIO.Fans.Length, + $"Expected {fanControlNames.Length} fan register in the SuperIO chip"); + + System.Diagnostics.Debug.Assert(superIO.Fans.Length == superIO.Controls.Length, + "Expected counts of cans controls and fan speed registers to be equal"); + + for (int i = 0; i < fanControlNames.Length; i++) + f.Add(new Fan(fanControlNames[i], i)); + + for (int i = 0; i < fanControlNames.Length; i++) + c.Add(new Control(fanControlNames[i], i)); + + break; + case Model.ROG_MAXIMUS_X_HERO_WIFI_AC: //NCT6793D v.Add(new Voltage("Vcore", 0, 2, 2)); v.Add(new Voltage("+5V", 1, 4, 1)); @@ -2918,7 +2957,7 @@ internal sealed class SuperIOHardware : Hardware v.Add(new Voltage("Voltage #15", 14)); t.Add(new Temperature("CPU Package", 0)); // Matches CPU Package in HWinfo & Armoury Crate. - t.Add(new Temperature("CPU Weighted", + t.Add(new Temperature("CPU (Weighted)", 1)); // Unsure about this one. HWinfo & Armoury Crate doesn't have anything that match my values. Varies from 34 (idle) to 42C (under load). Hwinfo is 31-32C for same. t.Add(new Temperature("Motherboard", 2)); // Matches MB in HWinfo & Armoury Crate.