RGB-Fusion-Tool icon indicating copy to clipboard operation
RGB-Fusion-Tool copied to clipboard

Support Z390 boards

Open rwcrowe opened this issue 5 years ago • 52 comments

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

rwcrowe avatar Nov 16 '18 00:11 rwcrowe

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?

tylerszabo avatar Nov 16 '18 00:11 tylerszabo

no luck

rwcrowe avatar Nov 16 '18 00:11 rwcrowe

I really hope someone figures this out. RGB Fusion is pure garbage.

Aluminite avatar Dec 28 '18 00:12 Aluminite

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 rgbfusion error

zybeon avatar Feb 05 '19 00:02 zybeon

@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.

tylerszabo avatar Feb 05 '19 04:02 tylerszabo

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.

zybeon avatar Feb 05 '19 17:02 zybeon

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

sunaurus avatar Mar 19 '19 06:03 sunaurus

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.

tylerszabo avatar Mar 19 '19 17:03 tylerszabo

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.

Cheerpipe avatar Sep 23 '19 20:09 Cheerpipe

That's really interesting!

tylerszabo avatar Sep 24 '19 01:09 tylerszabo

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!

Torbikini avatar Sep 25 '19 03:09 Torbikini

Have you tried unplugging the power or turning off the PSU after shutting down? Sometimes that's what's needed to reset the controller.

tylerszabo avatar Sep 25 '19 04:09 tylerszabo

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

dwieles avatar Sep 25 '19 09:09 dwieles

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

windows2000bug avatar Sep 25 '19 10:09 windows2000bug

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.)

Cheerpipe avatar Sep 25 '19 11:09 Cheerpipe

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

Cheerpipe avatar Sep 25 '19 14:09 Cheerpipe

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

Tried it out pretty quickly, seems to work pretty well. Audio issues are gone for me too now. Thank you.

dwieles avatar Sep 25 '19 15:09 dwieles

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.

erichamk avatar Sep 25 '19 15:09 erichamk

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.

Torbikini avatar Sep 25 '19 17:09 Torbikini

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.

Cheerpipe avatar Sep 25 '19 17:09 Cheerpipe

@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.

tylerszabo avatar Sep 25 '19 18:09 tylerszabo

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)

RGBFusion360SetColor.zip

Cheerpipe avatar Sep 25 '19 18:09 Cheerpipe

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)

RGBFusion360SetColor.zip

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.

erichamk avatar Sep 25 '19 19:09 erichamk

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

windows2000bug avatar Sep 25 '19 19:09 windows2000bug

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

Cheerpipe avatar Sep 25 '19 19:09 Cheerpipe

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.

Cheerpipe avatar Sep 25 '19 19:09 Cheerpipe

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.

RGBFusion390SetColor.zip

Cheerpipe avatar Sep 25 '19 21:09 Cheerpipe

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.zip

Cheerpipe avatar Sep 25 '19 21:09 Cheerpipe

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.zip

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: image

Torbikini avatar Sep 25 '19 22:09 Torbikini

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.zip

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: image

Format and reinstall Windows

Cheerpipe avatar Sep 25 '19 22:09 Cheerpipe