RGB-Fusion-Tool
RGB-Fusion-Tool copied to clipboard
Support Z390 boards
Feature request
Support for Z390 boards ? Gigabyte Aorus Z390 Pro Wifi
Summary
Support for Z390 boards ? Gigabyte Aorus Z390 Pro Wifi
Detailed Description and Additional Context
Support for Z390 boards ? Gigabyte Aorus Z390 Pro Wifi
Caveats
- Windows Version: 10.0.17134.0
- RGB Fusion Tool Version: 0.9.3
- Motherboard: Z390 AORUS PRO WIFI-CF
- BIOS: F6
Hashes:
D39AB2041C3A93ECB38CE446BBBC1C3DA1E3292EC25A301E4ADF3A588EE7A8F3 GLedApi.dll
7015114DAEE108681472B156C6F8EF950EDBFC9B14AE0B2126CA3E1A4CDD9BFC GLedApiDotNet.dll
BA2D8D9BB811644A0F6794082EB028F4F610BDAB361825E1197D1D94283F1A31 layout.ini
05FC657EB5B5D563DE7807DF6EE07FC8B89DC6F6F08EB76C30E5192429FBBDCF Mono.Options.dll
F62D13CAFD785908D663E0C95FA83497FF1C20F53C7408BCDFDB0102E0721F3E RGBFusionTool.exe
64BF4B2F0C84333E239DDA24F82BF8EAD22B7DB905C50FADE262283CA96703AD ycc.dll
I think the options here are to fiddle with the layout.ini
(so far that hasn't worked) or request Gigabyte to add support via the SDK. I'm not familiar enough with how they do low-level configuration (I've been unable to find documentation on it) to manually support motherboards the Gigabyte doesn't already support.
With that said, there may be a possibility that GvLedLib could allow some configuration of the motherboard (I've seen it appear as an undocumented peripheral type on my system). If you run with the exe in the zip in issue #38 do you get any peripherals listed before the exception?
no luck
I really hope someone figures this out. RGB Fusion is pure garbage.
I have this board and when using release v0.9.3 I get a
RGBFusionTool.exe : Open driver handle failure!! in MapMem_Phys_To_Linear
@zybeon I think that's a slightly different issue; but even after that's resolved I'd suggest reaching out to Gigabyte and asking about SDK support for your motherboard.
In the newest SDK there is an entry in the layout file for a Z390 board but doesn't fully list the board name. So I am not 100% that it matches to our motherboard. Though I can use the legacy RGBFusion app as well as the newer RGBFusion 2.0 app to control the LEDs.
I wrote to Gigabyte support regarding this issue and I got some (disappointing) info, thought I should share here:
According to the information we have from SDK team, support of SDK on the Z390 models are not planned.
Best Regards, GIGABYTE Technology
Curses; well, if anyone comes across a project that lets you talk more directly to the controller (and avoids a dependency on Gigabyte's SDK) I'm very interested in retargeting it.
I am working on a proof of concept for, at least, 390 motherboards (Tested just with Aorus Master). of a tool to change leds color in a 390 motherboard. (Very basic code).
At this moment, i can change the color of all zones on the motherboard (Aorus Master) and vga (Aorus 2080). (no individual zone control so far, but working on it). (Im using it with Aurora Project to Sync some Magic Home strips and Logitech peripherals
)
I am not using RGB Fusion SDK, instead, i am using some public methods of the rgb fusion dlls (SelLEDControl.dll and LedLib2.dll. Both of them in RGBFusion folder
) and some very basic reflection to avoid a nasty save_to_flash command every time a color has changed.
Will spend some time this weekend to figureout how to make individual zones works.
Here is the source code and a simple NET command line tool to set colors on, at least, motherboard and VGA (just excluded RAM, and other Aorus peripherals for performance reasons).
PD: The .exe needs to be in RGBFusion Folder and run as admin. PD2: Just still mode working so far. PD3: The good news are we can have full control over leds (even more control than RGBFusion). The bad news is this job will be obscure trial and error.
Sorry my english.
That's really interesting!
I hope that you get this working. For some reason my RGB fusion just stopped working and I cannot change colors at all. I just want my color spectrum back!
Have you tried unplugging the power or turning off the PSU after shutting down? Sometimes that's what's needed to reset the controller.
I am working on a proof of concept for, at least, 390 motherboards (Tested just with Aorus Master). of a tool to change leds color in a 390 motherboard. (Very basic code).
At this moment, i can change the color of all zones on the motherboard (Aorus Master) and vga (Aorus 2080). (no individual zone control so far, but working on it). (Im using it with Aurora Project to Sync some Magic Home strips and Logitech peripherals
)
I am not using RGB Fusion SDK, instead, i am using some public methods of the rgb fusion dlls (SelLEDControl.dll and LedLib2.dll. Both of them in RGBFusion folder
) and some very basic reflection to avoid a nasty save_to_flash command every time a color has changed.
Will spend some time this weekend to figureout how to make individual zones works.
Here is the source code and a simple NET command line tool to set colors on, at least, motherboard and VGA (just excluded RAM, and other Aorus peripherals for performance reasons).
PD: The .exe needs to be in RGBFusion Folder and run as admin. PD2: Just still mode working so far. PD3: The good news are we can have full control over leds (even more control than RGBFusion). The bad news is this job will be obscure trial and error.
Sorry my english.
Wow. Thank you so much for this, I've been wanting something like this for ages, and now I can make it work. It seems to work pretty good on my Z390 Aorus Elite and my friends Z390 Aorus Master, although I do experience a little bug (?) where my system hangs for a bit and makes a loud buzzing noise, as if it's locking up.
Besides that, if you can get individual zones and RGB headers to work too, I'd be willing to donate a bit for your work. RGB Fusion is proper trash, so thank you a ton <3
I am taking a different route and doing a HW solution: https://youtu.be/HVSMHsauHQE
Granted I can only control things that connect via a header. Rumor has it that there might be a new SDK at EOY.
Here is a Digital to Analog RGB Converter I developed; https://youtu.be/FSCzS2mA_oo
I am working on a proof of concept for, at least, 390 motherboards (Tested just with Aorus Master). of a tool to change leds color in a 390 motherboard. (Very basic code). At this moment, i can change the color of all zones on the motherboard (Aorus Master) and vga (Aorus 2080). (no individual zone control so far, but working on it). (Im using it with Aurora Project to Sync some Magic Home strips and Logitech peripherals ) I am not using RGB Fusion SDK, instead, i am using some public methods of the rgb fusion dlls (SelLEDControl.dll and LedLib2.dll. Both of them in RGBFusion folder ) and some very basic reflection to avoid a nasty save_to_flash command every time a color has changed. Will spend some time this weekend to figureout how to make individual zones works. Here is the source code and a simple NET command line tool to set colors on, at least, motherboard and VGA (just excluded RAM, and other Aorus peripherals for performance reasons). RGBFusionSetColor.zip PD: The .exe needs to be in RGBFusion Folder and run as admin. PD2: Just still mode working so far. PD3: The good news are we can have full control over leds (even more control than RGBFusion). The bad news is this job will be obscure trial and error. Sorry my english.
Wow. Thank you so much for this, I've been wanting something like this for ages, and now I can make it work. It seems to work pretty good on my Z390 Aorus Elite and my friends Z390 Aorus Master, although I do experience a little bug (?) where my system hangs for a bit and makes a loud buzzing noise, as if it's locking up.
Besides that, if you can get individual zones and RGB headers to work too, I'd be willing to donate a bit for your work. RGB Fusion is proper trash, so thank you a ton <3
Yeah a know, there is a bug in gb libraries that causes some audio cracking.
The good news is I have a better poc now without this problem, with area support and faster color change.
The only downside (not a real problem) is my tool needs to be in memory to avoid do initialization stuff every time you need to change led status (just like rgbfusion tool).
I will also try to play with others modes (music, wave, flash, etc.)
Pls check this new version. Audio cracking problem should be solved.
First run will take some seconds to load.
This tool will persist in memory. It is necessary to allow faster color change.
Working pretty well in my Aorus Master with Aurora.
Pls check this new version. Audio cracking problem should be solved.
First run will take some seconds to load.
This tool will persist in memory. It is necessary to allow faster color change.
Working pretty well in my Aorus Master with Aurora.
Tried it out pretty quickly, seems to work pretty well. Audio issues are gone for me too now. Thank you.
Pls check this new version. Audio cracking problem should be solved.
First run will take some seconds to load.
This tool will persist in memory. It is necessary to allow faster color change.
Working pretty well in my Aorus Master with Aurora.
Would like to add that this works with my x570 Master too. Great alternative to the official software for now, just missing zone control (RAM rgb specifically). As a side note, do you think individual/addressable led control will be possible for RAM modules? Or is that feature missing in the dlls? Would be awesome for creating scripted effects, just an idea.
Have you tried unplugging the power or turning off the PSU after shutting down? Sometimes that's what's needed to reset the controller.
So I tried that and it kinda worked. The RGBs all turned to white when I plugged the PC back in but when it booted into windows it got set back to seemingly random colors. RGBFusion and the tool from @Cheerpipe cannot change the color. In event viewer I keep getting errors such as:
- The description for Event ID 1 from source SMBCtrl cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
- [ex362]: AdvApply_v4(), Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
It appears to me that for some reason the computer is not able to communicate with the motherboard to tell it what colors to use.
Have you tried unplugging the power or turning off the PSU after shutting down? Sometimes that's what's needed to reset the controller.
So I tried that and it kinda worked. The RGBs all turned to white when I plugged the PC back in but when it booted into windows it got set back to seemingly random colors. RGBFusion and the tool from @Cheerpipe cannot change the color. In event viewer I keep getting errors such as:
- The description for Event ID 1 from source SMBCtrl cannot be found. Either the component that raises this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
- [ex362]: AdvApply_v4(), Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
It appears to me that for some reason the computer is not able to communicate with the motherboard to tell it what colors to use.
Try uninstalling and reinstalling rgbfusion.
Also remember run rgbfusion and/or my tool with admin rights.
@cookieman768 if open a ticket with Gigabyte they might be able to get you back to a good default state with respect to the tools they ship. The only other thing that jumps out would be to verify that other sources of power that could potentially keep the board from completely powering down - like powered USB hubs (I've had issues where they kept the board just a little bit powered before). Also ensure it's off for ~30 seconds so everything can discharge.
I'd try to see if you can still do some config in the BIOS, too, as I've found that is a good indicator of whether the controller is responding.
If you're using the RGB Fusion Utility from Gigabyte ensure they you've shut down all of the daemons they run in the background - it's been my experience that not shutting down other configuration sources can either override other tools or confuse the controller.
Pls check this new version. Audio cracking problem should be solved. First run will take some seconds to load. This tool will persist in memory. It is necessary to allow faster color change. Working pretty well in my Aorus Master with Aurora. RGBFusion390SetColor.zip
Would like to add that this works with my x570 Master too. Great alternative to the official software for now, just missing zone control (RAM rgb specifically). As a side note, do you think individual/addressable led control will be possible for RAM modules? Or is that feature missing in the dlls? Would be awesome for creating scripted effects, just an idea.
Might work with x570 too. Can u try?
This is de source of this version (very low quality code because im not a real dev, just a curious man)
Might work with x570 too. Can u try?
This is de source of this version (very low quality code because im not a real dev, just a curious man)
It does work for setting all zones (including RAM) to the same color, was just referring to setting individual zones to different colors, for example MB red and RAM white. Looking at your source it seems possible, will see if I can make it work. Thanks.
I will see if I can give this a try on my Z370. Tyler did you give it a try yet on yours? What what I looked at tear downs from Tweak Town the older boards use a different MCU:
ITE 8297FN-56A - Z390 & X570 Master/Xtreme ITE 8295FN-56A - Z370 & X470 Gaming 7; X299 Gaming 9
I think both of these ICs use the SMBus to communicate to the system. This might explain how the SDK easily works with the older boards, but not the newer ones. I wonder if Cheerpipe's solution will work on the older boards or just newer boards with the 8297 MCUs.
Side note, it looks like someone is started a github repo for a IT8297 RGB controller: https://github.com/jackun/IT8297-rgb-controller
Other devices that use these controllers: ITE 8297FN-56A - MSI GTX 1080 ti trio GPU - https://www.guru3d.com/articles-pages/msi-geforce-gtx-1080-ti-gaming-x-trio-review,4.html --Though it is used apparently for fan control. ITE 8295FN - Lenovo Legion Y730 - https://forums.lenovo.com/t5/Gaming-Laptops/LEGION-Y740-17ICHg-ISSUE/td-p/4465009/page/2 --RGB Control via iCUE...hrmm...
Another option might be to try to control the MCUs via the SMBus directly, instead of with the SDK. Someone did that with some MSI boards: https://kazlauskas.me/entries/i-reverse-engineered-a-motherboard.html and his repo: https://github.com/nagisa/msi-rgb
or example MB red and RAM white. Looking at your source it seems
It is already done. I just need some time to write a command parser to allow use of more advanced stuff like:
--areas //to get list of areas and available features. --setarea:areanumber:mode:R:G:B
I will see if I can give this a try on my Z370. Tyler did you give it a try yet on yours? What what I looked at tear downs from Tweak Town the older boards use a different MCU:
ITE 8297FN-56A - Z390 & X570 Master/Xtreme ITE 8295FN-56A - Z370 & X470 Gaming 7; X299 Gaming 9
I think both of these ICs use the SMBus to communicate to the system. This might explain how the SDK easily works with the older boards, but not the newer ones. I wonder if Cheerpipe's solution will work on the older boards or just newer boards with the 8297 MCUs.
Side note, it looks like someone is started a github repo for a IT8297 RGB controller: https://github.com/jackun/IT8297-rgb-controller
Other devices that use these controllers: ITE 8297FN-56A - MSI GTX 1080 ti trio GPU - https://www.guru3d.com/articles-pages/msi-geforce-gtx-1080-ti-gaming-x-trio-review,4.html --Though it is used apparently for fan control. ITE 8295FN - Lenovo Legion Y730 - https://forums.lenovo.com/t5/Gaming-Laptops/LEGION-Y740-17ICHg-ISSUE/td-p/4465009/page/2 --RGB Control via iCUE...hrmm...
Another option might be to try to control the MCUs via the SMBus directly, instead of with the SDK. Someone did that with some MSI boards: https://kazlauskas.me/entries/i-reverse-engineered-a-motherboard.html and his repo: https://github.com/nagisa/msi-rgb
My tool works over gigabyte RGBFusion HAL (this HAL takes care of several controllers, including some USB stuff and some propietary hardware like RAM), so in theory it should work on older and newer models, also in peripherals like VGA Cards (Working with an Aorus 2080), RAM, KB, displays, etc.
Ok, this version has zone control but only for color change. No mode support...get.
How to use:
To get total available areas use:
--areas
This command will return just a number. In my case it is 8 (7 areas for the mainboard plus 1 in the VGA).
To set a new color for all zone use:
--setarea:-1:MODE_ID:R:G:B
Where MODE_ID is one of these, -1 means All Zones and R, G and B are numbers between 2 and 255 (just like the previous version).
Possible mode values: Still = 0; Breath = 1; Beat = 2; MixColor = 3; Flash = 4; Random = 5; Wave = 6; Scenes = 7; off = 8; auto = 9; other = 10; DFlash = 11;
Example:
--setarea:-1:1:255:0:255
And to set one or more zones use:
--setarea:AREA_ID:MODE_ID:R:G:B
Where AREA_ID is a number between 1 and value returned by --areas inclusive. (the second param will be used to change operation mode.)
Example:
--setarea:1:0:255:0:255 --setarea:2:0:0:200:200 --setarea:3:0:40:0:0 --setarea:6:0:0:100:0 --setarea:8:1:0:0:200
The above command will set four areas on my motherboard (areas 1, 2, 3, and 6) and one area on my VGA (area 8).
You will have to discover what area id is for that led or component at your own.
Ok, now we can set operation modes using second area param.
Remember not all areas support all modes.
Possible mode values: Still = 0; Breath = 1; Beat = 2; MixColor = 3; Flash = 4; Random = 5; Wave = 6; Scenes = 7; off = 8; auto = 9; other = 10; DFlash = 11;
Example: To set Aorus Master Wave on Aorus Logo:
--setarea:6:6:255:255:255 (RGB values are not actually used)
Ok, now we can set operation modes using second area param.
Remember not all areas support all modes.
Possible mode values: Still = 0; Breath = 1; Beat = 2; MixColor = 3; Flash = 4; Random = 5; Wave = 6; Scenes = 7; off = 8; auto = 9; other = 10; DFlash = 11;
Example: To set Aorus Master Wave on Aorus Logo:
--setarea:6:6:255:255:255 (RGB values are not actually used)
Can't seem to get this working with the Aorus Z390 ultra still. Event viewer shows: [ex362]: AdvApply_v4(), Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
@cookieman768 if open a ticket with Gigabyte they might be able to get you back to a good default state with respect to the tools they ship. The only other thing that jumps out would be to verify that other sources of power that could potentially keep the board from completely powering down - like powered USB hubs (I've had issues where they kept the board just a little bit powered before). Also ensure it's off for ~30 seconds so everything can discharge.
I'd try to see if you can still do some config in the BIOS, too, as I've found that is a good indicator of whether the controller is responding.
If you're using the RGB Fusion Utility from Gigabyte ensure they you've shut down all of the daemons they run in the background - it's been my experience that not shutting down other configuration sources can either override other tools or confuse the controller.
Thank you for the idea. I have tried so many things from uninstalling, updating the BIOS, trying different versions, etc. It's weird because the RGB fusion app was working fine before I moved my computer then it just stopped working all of a sudden. I'm not sure what's going on with the motherboard but it is driving me to insanity. I definitely should have done more digging into GIGABYTE before choosing this motherboard since the software side is terrible.
Also, I reached out to their support team about the RGB fusion SDK and got the following response:
Ok, now we can set operation modes using second area param. Remember not all areas support all modes. Possible mode values: Still = 0; Breath = 1; Beat = 2; MixColor = 3; Flash = 4; Random = 5; Wave = 6; Scenes = 7; off = 8; auto = 9; other = 10; DFlash = 11; Example: To set Aorus Master Wave on Aorus Logo:
--setarea:6:6:255:255:255 (RGB values are not actually used)
RGBFusion390SetColor.zipCan't seem to get this working with the Aorus Z390 ultra still. Event viewer shows: [ex362]: AdvApply_v4(), Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index
@cookieman768 if open a ticket with Gigabyte they might be able to get you back to a good default state with respect to the tools they ship. The only other thing that jumps out would be to verify that other sources of power that could potentially keep the board from completely powering down - like powered USB hubs (I've had issues where they kept the board just a little bit powered before). Also ensure it's off for ~30 seconds so everything can discharge. I'd try to see if you can still do some config in the BIOS, too, as I've found that is a good indicator of whether the controller is responding. If you're using the RGB Fusion Utility from Gigabyte ensure they you've shut down all of the daemons they run in the background - it's been my experience that not shutting down other configuration sources can either override other tools or confuse the controller.
Thank you for the idea. I have tried so many things from uninstalling, updating the BIOS, trying different versions, etc. It's weird because the RGB fusion app was working fine before I moved my computer then it just stopped working all of a sudden. I'm not sure what's going on with the motherboard but it is driving me to insanity. I definitely should have done more digging into GIGABYTE before choosing this motherboard since the software side is terrible.
Also, I reached out to their support team about the RGB fusion SDK and got the following response:
Format and reinstall Windows