From e7468b1cad6bafae908e85c9a6193dac75219aff Mon Sep 17 00:00:00 2001 From: Pomian Date: Mon, 9 Aug 2021 12:46:51 +0200 Subject: [PATCH] Add support for Asus ROG Strix B550-I Gaming motherboard (#503) * Add support for Asus B550-I Gaming motherboard * Change detection to switch in case if any fan are not present * Keep consistent naming * Update Identification.cs * Update SuperIOHardware.cs Co-authored-by: PhyxionNL <7643972+PhyxionNL@users.noreply.github.com> --- .../Hardware/Motherboard/Identification.cs | 2 + .../Hardware/Motherboard/Model.cs | 1 + .../Hardware/Motherboard/SuperIOHardware.cs | 81 +++++++++++++++++++ 3 files changed, 84 insertions(+) diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs index 3cae3ad..8b01dba 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Identification.cs @@ -176,6 +176,8 @@ namespace LibreHardwareMonitor.Hardware.Motherboard return Model.LP_BI_P45_T2RS_Elite; case var _ when name.Equals("ROG STRIX X470-I GAMING", StringComparison.OrdinalIgnoreCase): return Model.ROG_STRIX_X470_I; + case var _ when name.Equals("ROG STRIX B550-I GAMING", StringComparison.OrdinalIgnoreCase): + return Model.ROG_STRIX_B550_I_GAMING; case var _ when name.Equals("ROG STRIX X570-E GAMING", StringComparison.OrdinalIgnoreCase): return Model.ROG_STRIX_X570_E_GAMING; case var _ when name.Equals("LP DK P55-T3eH9", StringComparison.OrdinalIgnoreCase): diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs index 0e7bf02..5ae1a54 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/Model.cs @@ -40,6 +40,7 @@ namespace LibreHardwareMonitor.Hardware.Motherboard ROG_CROSSHAIR_VIII_HERO, ROG_CROSSHAIR_VIII_DARK_HERO, ROG_STRIX_X470_I, + ROG_STRIX_B550_I_GAMING, ROG_STRIX_X570_E_GAMING, M2N_SLI_Deluxe, M4A79XTD_EVO, diff --git a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs index 6289531..cef3f7b 100644 --- a/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs +++ b/LibreHardwareMonitorLib/Hardware/Motherboard/SuperIOHardware.cs @@ -2366,6 +2366,87 @@ namespace LibreHardwareMonitor.Hardware.Motherboard break; } + case Model.ROG_STRIX_B550_I_GAMING: //NCT6798D + { + v.Add(new Voltage("Vcore", 0, 10, 10)); + v.Add(new Voltage("+5V", 1, 4, 1)); //Probably not updating properly + v.Add(new Voltage("AVCC", 2, 10, 10)); + v.Add(new Voltage("+3.3V", 3, 34, 34)); + v.Add(new Voltage("+12V", 4, 11, 1)); //Probably not updating properly + //v.Add(new Voltage("#Unused #5", 5, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #6", 6, 0, 1, 0, true)); + v.Add(new Voltage("3VSB", 7, 34, 34)); + v.Add(new Voltage("VBat", 8, 34, 34)); + v.Add(new Voltage("VTT", 9)); + //v.Add(new Voltage("#Unused #9", 9, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #10", 10, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #11", 11, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #12", 12, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #13", 13, 0, 1, 0, true)); + //v.Add(new Voltage("#Unused #14", 14, 0, 1, 0, true)); + + t.Add(new Temperature("CPU", 1)); + t.Add(new Temperature("Motherboard", 2)); + //t.Add(new Temperature("AUX 0", 3)); //No software from Asus reports this temperature ~82C + //t.Add(new Temperature("#Unused 4", 4)); + //t.Add(new Temperature("#Unused 5", 5)); + //t.Add(new Temperature("#Unused 6", 6)); + //t.Add(new Temperature("#Unused 7", 7)); + //t.Add(new Temperature("#Unused 8", 8)); + //t.Add(new Temperature("#Unused 9", 9)); + //t.Add(new Temperature("#Unused 10", 10)); + t.Add(new Temperature("PCH Chip CPU Max", 11)); + t.Add(new Temperature("PCH Chip", 12)); + t.Add(new Temperature("PCH CPU", 13)); + t.Add(new Temperature("PCH MCH", 14)); + t.Add(new Temperature("Agent 0 DIMM 0", 15)); + //t.Add(new Temperature("Agent 0 DIMM 1", 16)); + t.Add(new Temperature("Agent 1 DIMM 0", 17)); + //t.Add(new Temperature("Agent 1 DIMM 1", 18)); + t.Add(new Temperature("Device 0", 19)); + t.Add(new Temperature("Device 1", 20)); + t.Add(new Temperature("PECI 0 Calibrated", 21)); + t.Add(new Temperature("PECI 1 Calibrated", 22)); + t.Add(new Temperature("Virtual", 23)); + + //todo + //Find a way to read the value of VRM HS FAN + //It is definitely not controllable as it only supports ON / OFF options but the RPM can be read somewhere + + for (int i = 0; i < superIO.Fans.Length; i++) + { + switch (i) + { + case 0: + f.Add(new Fan("Chassis Fan", 0)); + break; + case 1: + f.Add(new Fan("CPU Fan", 1)); + break; + case 4: + f.Add(new Fan("AIO Pump", 4)); + break; + } + } + + for (int i = 0; i < superIO.Controls.Length; i++) + { + switch (i) + { + case 0: + c.Add(new Ctrl("Chassis Fan Control", 0)); + break; + case 1: + c.Add(new Ctrl("CPU Fan Control", 1)); + break; + case 4: + c.Add(new Ctrl("AIO Pump Control", 4)); + break; + } + } + + break; + } default: { v.Add(new Voltage("Vcore", 0));