nagisa / msi-rgb

Linux utility for controlling RGB header on select MSI motherboards
ISC License
418 stars 40 forks source link

MSI B450 Tomahawk Max #108

Open Paul-Chaffey opened 4 years ago

Paul-Chaffey commented 4 years ago

Hello, Well the code is doing something, but the colors are messed up.

I think this motherboard uses a slightly different chip to control RGB on the Motherboard.

I am happy to debug and get this working - also, I will get the exact chip set used and try to find a datasheet as I guess the registers to program this device are slightly different.

Paul-Chaffey commented 4 years ago

Some extra info:

Found Nuvoton NCT6797D Super IO Sensors' Success! (address 0xa20, drivernct6775')

Paul-Chaffey commented 4 years ago

OK some more info: The bitstream seems to be inverted... sudo ./target/release/msi-rgb FFFFFFFF 00000000 FFFFFFFF produces some pulses of Green and White. I guess the registers are inverted including the pulse bit(s).

I tested this by putting a quick hack into the code so it excepted the following: sudo ./target/release/msi-rgb FFFFFFFF 00000000 FFFFFFFF -b 7

This turned off the blinking, but it looks like fade-in is still on as it goes from White to Green back to white gradually (with no blink !).

P.S. Sorry I didn't see the open issues #106 and #107 - These are all duplicates 🤔

bpiero commented 4 years ago

I guess

bpiero commented 4 years ago

Did you tried -ir -ig -ib option?

Paul-Chaffey commented 4 years ago

yes and this works fine, so: sudo ./target/release/msi-rgb 00000000 00000000 FFFFFFFF -ir -ig -ib -b 0 Stops blinking, but is slowly faded from black, blue, black...

sudo ./target/release/msi-rgb 00000000 00000000 FFFFFFFF -ir -ig -ib -b 1 Blinking fast, but with the same black, blue, black fading...

Its like the fade bits need inverting - possibly 🤔

P.S. forget my experiment above with blinking with value 7 - blinking 0 is correct for off

Paul-Chaffey commented 4 years ago

Here's some debug is this helps: sudo ./target/release/msi-rgb FFFFFFFF FFFFFFFF FFFFFFFF -ir -ig -ib -b 0 -fr -fg -fb --verbose Bank 12 (d0...100): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff e0 08 00 00 00 00 00 00 ff ff 11 00 00 34 01 40 ff ff ff ff ff ff ff ff ff ff ff ff 0e 07 ff 1e Bank 09 (20...40): d4 51 ff 00 00 00 40 00 00 ff 58 00 11 00 00 02 0f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Bank 0b (60...70): 0a 20 0a 30 00 00 ff ff ff ff ff ff ff ff ff ff Chip identifier is: d451

sudo ./target/release/msi-rgb FFFFFFFF FFFFFFFF FFFFFFFF -ir -ig -ib -b 0 --verbose Bank 12 (d0...100): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff e0 08 00 00 00 00 00 00 ff ff 11 00 00 34 01 40 ff ff ff ff ff ff ff ff ff ff ff ff 0e 07 ff 1e Bank 09 (20...40): d4 51 ff 00 00 00 40 00 00 ff 58 00 11 00 00 02 0f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Bank 0b (60...70): 0a 20 0a 30 00 00 ff ff ff ff ff ff ff ff ff ff Chip identifier is: d451

Paul-Chaffey commented 4 years ago

Actually the pulse flag has some effect. With pulse on the leds are off permanently: sudo ./target/release/msi-rgb 00000000 00000000 FFFFFFFF -ir -ig -ib -b 0 -p --verbose Bank 12 (d0...100): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff e0 08 00 00 00 00 00 00 ff ff 11 00 00 34 01 40 00 00 00 00 00 00 00 00 ff ff ff ff 0e 07 ff fe Bank 09 (20...40): d4 51 ff 00 00 00 40 00 00 ff 58 00 11 00 00 02 0f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Bank 0b (60...70): 0a 20 0a 30 00 00 ff ff ff ff ff ff ff ff ff ff Chip identifier is: d451

With pulse off, standard blue pulsing in and out (not blinking) sudo ./target/release/msi-rgb 00000000 00000000 FFFFFFFF -ir -ig -ib -b 0 --verbose Bank 12 (d0...100): ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff e0 08 00 00 08 00 00 00 ff ff 11 00 00 34 01 40 00 00 00 00 00 00 00 00 ff ff ff ff 0e 07 ff fe Bank 09 (20...40): d4 51 ff 00 00 00 40 00 00 ff 58 00 11 00 00 02 0f ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff Bank 0b (60...70): 0a 20 0a 30 00 00 ff ff ff ff ff ff ff ff ff ff Chip identifier is: d451

robertpartridge commented 4 years ago

If it's at all helpful - I just installed today on my B450 Tomahawk Max and I'm seeing the same results as described above ... even if this message serves no purpose other than to let you know you're not crazy.

Paul-Chaffey commented 4 years ago

Yes thanks, always good to know I am not crazy 😉

Paul Chaffey +49 1746 741179

On Sat, 25 Apr 2020, 07:54 Robert Partridge, notifications@github.com wrote:

If it's at all helpful - I just installed today on my B450 Tomahawk Max and I'm seeing the same results as described above ... even if this message serves no purpose other than to let you know you're not crazy.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/nagisa/msi-rgb/issues/108#issuecomment-619326848, or unsubscribe https://github.com/notifications/unsubscribe-auth/APE5S4MXI4RCOZJSRYQVTVLROJ3HRANCNFSM4MGRCCQQ .

bdonvr commented 4 years ago

I can confirm this is the case for the B450 Tomahawk non-Max

pradyunsg commented 4 years ago

Looking at #73 and #87... this looks similar. Notably, Results from https://github.com/nagisa/msi-rgb/issues/73#issuecomment-534797074 match what happens on my B450 Tomahawk Max.

There seems to be some relevant information in https://github.com/nagisa/msi-rgb/issues/102 as well (basically, try booting into Windows and disabling LEDs, then controlling w/ msi-rgb).

pradyunsg commented 4 years ago

Okay, so as far as I can tell, there's 2 things going on here:

  1. Colors need to be inverted with the -i/--invert flag.
  2. There seems to be some "pulsing" state, that's not being reset.

I have a feeling that the latter is caused by running --pulse. That would probably set some flag in the MB's memory, and there's no way with msi-rgb to reset that flag/value (and it doesn't do it automatically). #102 points out a workaround for this issue:

dberliner commented 4 years ago

I can confirm the same issue on my B450 Tomahawk Max.

Slater91 commented 4 years ago

It seems like a solution was found in the discussion for #92: "It doesn't really, it only reacts if you invert the colours, and It pulses if you invert all 3, so here's a fudge :

msi-rgb 0 0 0 -ig -ib # gives red msi-rgb 0 0 0 -ir -ig # gives blue msi-rgb 0 0 0 -ir -ig # gives green

Just inverting two values causes it to set max for the other and doesn't then pulse." I tried this on my B450M Mortar Titanium and it works, whereas before I had the pulsating effect.

TannerHarman commented 4 years ago

It seems like a solution was found in the discussion for #92: "It doesn't really, it only reacts if you invert the colours, and It pulses if you invert all 3, so here's a fudge :

msi-rgb 0 0 0 -ig -ib # gives red msi-rgb 0 0 0 -ir -ig # gives blue msi-rgb 0 0 0 -ir -ig # gives green

Just inverting two values causes it to set max for the other and doesn't then pulse." I tried this on my B450M Mortar Titanium and it works, whereas before I had the pulsating effect.

I can confirm that this works on my B450 Tomohawk Max. Inverting Red & Green as suggested gave me a stead Blue without Pulse.

pradyunsg commented 4 years ago

Let's get this into the README. Anyone up for filing a PR?

Slater91 commented 4 years ago

Let's get this into the README. Anyone up for filing a PR?

I can do that in the next several days.

anbarsaleem commented 4 years ago

Also experiencing these issues with the b450 tomahawk max, thanks for the informative discussion! I'm looking to see where in the code I could look to figure out if there's a way for me to create a custom "profile" that unfudges the rgb values for this card. Do you have any suggestions as to where I should dig?