|
17 | 17 | @effects :white_check_mark:
|
18 | 18 | @detectors DetectGigabyteSuperIORGBControllers
|
19 | 19 | @comment
|
| 20 | + Testing was done on an ITE8688 Chipset, and adds the support for motherboards that can only be controlled with Gigabyte’s “Ambient Led” NOT EITHER RGB Fusion 1.0/2.0. |
| 21 | +
|
| 22 | + You should first check to confirm that you DO NOT HAVE EITHER A USB OR SMBUS controllable chipset, use the following powershell command to confirm if you have a USB device: |
| 23 | + ```powershell |
| 24 | + gwmi Win32_USBControllerDevice |%{[wmi]($_.Dependent)} | Sort Manufacturer,Description,DeviceID | Ft -GroupBy Manufacturer Description,Service,DeviceID |
| 25 | + ``` |
| 26 | +
|
| 27 | + If you see anything with a VID of 048D or 8297, DO NOT PROCEED, the software is likely supportable by OpenRGB's Fusion2 USB controller. |
| 28 | +
|
| 29 | + After that check output on the SMBus: Using the OpenRGB I2C Sniffer to confirm that no data is output on either bus while changing colors in “Ambient LED”, if either bus outputs data, DO NOT PROCEED, the software is likely supportable in Gigabyte RGB Fusion. |
| 30 | +
|
| 31 | + The following chipsets are likely supported: |
| 32 | + | Chipset ID | |
| 33 | + | :---: | |
| 34 | + | ITE8620E | |
| 35 | + | ITE8626 | |
| 36 | + | ITE8686E | |
| 37 | + | ITE8688 | |
| 38 | + | ITE8689 | |
| 39 | + | ITE8728F | |
| 40 | + | ITE8790F | |
| 41 | + | ITE8791E | |
| 42 | +
|
| 43 | + To confirm your chipset, you can open CPU-Z, the MCU chipset model is found under Mainboard like below: |
| 44 | +
|
| 45 | + To confirm that your RGB is compatible with this Controller in OpenRGB, you will need to add the motherboard DMI Model name, which is the output of the following powershell command: |
| 46 | +
|
| 47 | + ```powershell |
| 48 | + wmic baseboard get product |
| 49 | + ``` |
| 50 | +
|
| 51 | + To the struct array that is found in GigabyteSuperIORGBControllerDetect.cpp, like below |
| 52 | +
|
| 53 | + ```c++ |
| 54 | + gig_device compatible_devices[] = |
| 55 | + { |
| 56 | + {"X570 UD"}, |
| 57 | + {"EXAMPLEBASEBOARDPRODUCTNAME"} |
| 58 | + }; |
| 59 | + ``` |
| 60 | +
|
| 61 | + If your chipset is also NOT an ITE8688, you will also need to add the chipset, to get this is a bit harder, for myself I added a breakpoint, on this line, in GigabyteSuperIORGBControllerDetect.cpp: |
| 62 | + ```c++ |
| 63 | + switch (val & SIO_ID_MASK) |
| 64 | + ``` |
| 65 | +
|
| 66 | + For an ITE8688, the value was 0x8688 in Hexidecimal, it is likely the case with other models as well that the code matches the MCU model. |
| 67 | +
|
| 68 | + To add this chipset you will need to first add it to the SuperIO definitions file, which is named super_io.h like below |
| 69 | + ```c++ |
| 70 | + #define SIO_ITE688_ID 0x8688 // Device ID for ITE8688 (8688) |
| 71 | + #define SIO_NEWCHIPSETMODEL_ID 0xFOUNDHEXIDECIMALVALUE // Device ID for NEWCHIPSETMODEL (FOUNDHEXIDECIMALVALUE) |
| 72 | + ``` |
| 73 | +
|
| 74 | + And lastly you will need to add the chip to the |
| 75 | +
|
| 76 | + GigabyteSuperIORGBControllerDetect.cpp like below: |
| 77 | + ```c++ |
| 78 | + switch (val & SIO_ID_MASK) |
| 79 | + { |
| 80 | + case SIO_ITE688_ID: |
| 81 | + case SIO_NEWCHIPSETMODEL_ID: |
| 82 | + ``` |
20 | 83 | \*-------------------------------------------------------------------*/
|
21 | 84 |
|
22 | 85 | RGBController_GigabyteSuperIORGB::RGBController_GigabyteSuperIORGB(GigabyteSuperIORGBController* controller_ptr)
|
|
0 commit comments