New controller for RTX 5080 AORUS MASTER 16G (GV-N5080AORUS M-16GD) with
per-LED fan ring control. This GPU uses a different protocol than legacy
RGB Fusion 2 cards and requires a separate controller.
Hardware info:
- PCI Device ID: 0x2C02 (NVIDIA Blackwell)
- Subsystem ID: 0x4178
- I2C Address: 0x71
LED configuration:
- 3 fan rings × 8 LEDs each = 24 fan LEDs
- 1 logo LED
- Total: 25 individually addressable zones
Protocol details (reverse engineered from Gigabyte Control Center on Windows):
- Mode command (0x88) must include zone selector byte (0x02/0x05/0x06)
- Each fan requires mode command before color registers will respond
- Color registers: 0xB0-0xB3 (left), 0xB4-0xB7 (middle), 0xB8-0xBB (right)
- Logo: 0xBC with mode byte 0x00 (fans use 0x01)
- Apply command (0xAA) must be sent after each zone for multi-zone updates
Verified working on Linux with i2ctransfer and OpenRGB CLI:
- All 24 fan LEDs individually addressable
- Logo LED working
- Color cycling and per-LED gradients tested
Note: Fan LEDs only illuminate when fans are spinning.
* Mountain60KeyboardController's detector was setting the name member directly, this is an outdated convention that breaks the RGBController rework, moved to a Controller member
* Mountain60KeyboardController had some sort of HID redetect logic, this should not be part of the Controller, this will be handled in the future by HID hotplugging
* Both MountainKeyboardControllers defined static variables to keep track of current mode, moved these to class members so that they won't conflict if two instances exist
* Don't send any device updates as part of SetupZones
Commit amended to move from RGB Fusion GPU 2 to RGB Fusion 2 Blackwell GPU controller by Adam Honse <calcprogrammer1@gmail.com>, as address was identified as 0x75