darthaffe / rgb.net Goto Github PK
View Code? Open in Web Editor NEWThe one-stop SDK for RGB-peripherals
Home Page: http://lib.arge.be
License: GNU Lesser General Public License v2.1
The one-stop SDK for RGB-peripherals
Home Page: http://lib.arge.be
License: GNU Lesser General Public License v2.1
Hi @DarthAffe , i would like to request support for the MysticLight SDK By MSI. I have a MSI B350 Tomahawk Arctic that is listed as Sync compatible, so i can help you in debugging it.
As requested in Discord by HexF:
Request for MiLight, Protocol documentation: https://github.com/Fantasmos/LimitlessLED-DevAPI
There are a few SDKs for v4 (The old version)
https://github.com/Milfje/MiControl
https://github.com/andy-scott/MiLight.Net
But nothing (that I can find) for v6, the version the protocol documentation is for.
The CAM software they currently use is very buggy, and it would be nice to have their RGBs work in a different program. Don't know how hard it will be but thanks in advance!
The cryorig h7 quad lumi uses the NZXT CAM software as it connect via a usb header in the motherboard. Itβs a fantastic piece of kit but would be great if it can support ASUS Aura.
When i try to control the color of my h100i pump using rgb.net all that happens is that the leds on it turn off.
even when i have disabled "only show connected devices" on icue, all the demo devices obey rgb.net but the cooler pump stays off until i close my program
RGBSurface surface = RGBSurface.Instance;
CorsairDeviceProvider corsair = CorsairDeviceProvider.Instance;
corsair.Initialize(exclusiveAccessIfPossible:true,throwExceptions:true);
surface.LoadDevices(corsair);
foreach (Led LED in surface.Leds)
{
LED.Color = new Color(255, 255, 0, 0);
}
surface.Update(true);
Hi man!
I'm trying to use your wrapper to control my Asus Claymore but it throws an error:
This is not happening with the mainboard for example.
It seems it can't load something.
I then compiled the native sdk in a c++ project and had the same issue with the keyboard.
I was able to solve putting ClaymoreProtocol.dll (given in the test code of aura sdks) in the same folder as my exe was compiled.
I think the issue is the same but in your case (c#) I wasn't able to solve putting this file in the project folder.
Do you have any suggestion?
Thanks!
Remember to implement the new methods like GetColor
HID: C246
Even changing the layer-priority to 127 (the same as CUE) doesn't help.
Hi, Getting an crash when running RGB.NET were it will crash sometimes when i open is or when i save the settings. Crash Log Below.
Setup:
Asus Arua Sync (Lighting Control 1.05.16)
Logitech G810 Keyboard (Logitech Gaming Software 8.96)
Logitech G903 Mouse (Logitech Gaming Software 8.96)
Corsair Link 4.9.4.28
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
Not sure if this is any help but if you were wanting to get LIFX (https://www.lifx.com) support in the future, maybe this would give you a bit of a head start?
https://github.com/dotMorten/LifxNet
https://github.com/roxaskeyheart/Chromatics/blob/master/Chromatics/DeviceInterfaces/LIFXInterface.cs
I've been working with this library for a bit now so feel free to ping me here or on your Discord if you'd like to chat about it, not entirely sure how your devices framework is setup yet, but I'd be keen to help implement it if you'd like.
Hi, could you provide a quick start guide? I don't need a full blown tutorial, but a small explanation about the things it would help me very much.
... and find a solution for "Zones" ~
Prepare Device-Providers for the following Companies/SDKs:
More information about the supported devices can be found here.
This would allow the usage with UWP and stuff like that.
I just stumbled accros your project and it looks verry cool and promesing!
I just have a small question, will this project get an remote interface like a json interface or MQTT interface?
What I am eventually looking for is controlling the RGB lighting inside a desktop (GPU, Motherboard, RAM etc.) remoteley over the local network (wifi or LAN) through a home automation platform like HomeAssistant.
Is something like a remote interface considered for this project?
Hello,
I am trying to work with this lib, but there is no document on how it works. Could you provide me some code samples to turn Aura LEDs Red, please?
Thanks,
Sander
It's currently not possible to change how colors are blended (for example) which would be useful for working with different colorspaces.
Hi, during the last week I tried to find a way to control the lighting on my HOF 1080Ti cause it's software sucks. I come up with this https://github.com/purpl3F0x/GalaxLightingControl .
Feel free to use it in the project. It needs the Galax XT+ running cause it overwrites it's memory resources, thus It can't change the LEDs to many times per second.
P.S If someone is willing to help me with reverse engineering it further to have direct access would be great.
Hi there, I want to create a nodejs wrapper which include using small console program which look something like this
static void Main(string[] args)
{
if (args.Length < 1)
{
throw new ArgumentException("No valid argument.");
}
var arguments = new ExecArguments(args);
var output = new Output();
try
{
RGBSurface surface = RGBSurface.Instance;
surface.LoadDevices(CoolerMasterDeviceProvider.Instance);
surface.LoadDevices(CorsairDeviceProvider.Instance);
surface.LoadDevices(LogitechDeviceProvider.Instance);
surface.LoadDevices(RazerDeviceProvider.Instance);
surface.AlignDevices();
switch (arguments.action.ToLowerInvariant())
{
case "--getdevices":
output.data = GetDevices(surface, arguments.deviceType);
break;
case "--setcolor":
output.data = SetColor(surface, arguments.color);
break;
default:
output.error = "No valid argument.";
break;
}
}
catch (Exception e)
{
output.error = e.ToString();
output.data = null;
}
finally
{
Console.WriteLine(JsonConvert.SerializeObject(output));
}
}
Everything looks good when I run it through cmd (inside the program.exe directory) with something like ./program.exe --getDevices keyboard. The RGBSurface contains all my devices as expected.
But when I run it outside the program.exe directory, something like ./someFolder/moreFolder/program.exe --getDevices keyboard. I can't get my device listed.
Any idea how to solve this? thanks.
Hello! First off a huge THANK YOU for this awesome project! Your code is extremely well organized and brings some sensibility to the rather awful SDK's provided by these companies. I have learned an enormous amount going through it and creating my own project with it.
I have forked your repo and added a project called AuraSync (unsure how to follow naming conventions properly, I tried my best). My goal here is to take the colors sent to the Aura lighting zones by the actual Aura software and send them to corresponding zones in my Corsair products. This allows Aura to control both Aura and Cue devices. Eventually when Corsair releases Sync It I am hoping the Cue SDK expands to control RGB's on the Lighting Node Pro.
I had to tweak your Aura devices so the motherboard colors could be retrieved then sent to the keyboard and mouse pad. Please let me know what you think! Also, I had some trouble using the conical gradient brush in my rectangles (unsure how to do this?) and included what I had written but commented out.
Eventually I want to create one program that unifies all of my lighting systems (Aura, Cue, Link, Zotac Firestorm) by allowing the user to choose an ecosystem to get colors from and send to all other ecosystems. (So Aura can control Cue/Link/Sync It/Firestorm or so Cue can control Aura/Link/Sync It/Firestorm)
Problems I see are:
Zotac Firestorm does not have an SDK, completely unsure how to control this other than some hacky stuff I don't quite comprehend. Ways around this I can think of are physically connecting my GPU lights to my Aura RBG headers but this isn't a software solution and I want everyone to be able to use this creation without modification. Likely going to have to wait for an SDK or learn how to control it myself. I cannot find any community projects around Zotac Firestorm / Spectra or the protocol to control the lighting on my 1080 Ti's.
The Lighting Node PRO that Link uses to control Corsair RGB strips and fans like the HD120 does not have an SDK yet, a possible solution here is to wire everything to an Arduino as in http://forum.corsair.com/v3/showthread.php?t=165029 but again this is not a software solution and I want this to all be plug and play. Fortunately it seems that when Corsair releases Sync It "sometime next year" (source: http://forum.corsair.com/v3/showthread.php?p=925470#post925470) the Cue SDK may be expanded to include their Lighting Node Pro. Going to ignore the LNP for now.
Mostly doing this to make all my lighting respond to sound so changes must happen instantly, this means the Lighting Node PRO's current community created interface(http://forum.corsair.com/forums/showthread.php?t=120092) likely isn't fast enough(I could be wrong here), probably a similar case with my Zotac Firestorm lighting, even if I were to figure out the protocol the device likely updates on a delay (just my observation from using Link or Firestorm when applying changes the LNP and Zotac cards take a moment to update).
I look forward to hearing your thoughts on this project! Once again, thank you for this awesome project! Also, if I mention my addition to your work anywhere how should I cite you?
Btw couldn't find a way to contact you other than submitting an issue, apologies if this isn't proper.
Edit:
Hardware: https://pcpartpicker.com/b/9ZcYcf
Using the K95 RGB, MM800, and an Asus Maximus IX Extreme with aura headers BackIO, PCH, Header 1, Header 2.
Hi there. I have 6x HD120 corsair fans hooked to a commander pro and have them synchronizing with Aura. Everything seems ok except my corsair k55 keyboard (corsair cue) doesn't seem to do anything. Is this supported yet?
Found a Gigabyte SDK, according to docs, it works with C#. I'm not really sure of the exact capabilities, but the docs look pretty nice from what I've seen. The SDK files come in DLLs, and as far as I can tell, has support for motherboards, GPUs, and peripherals.
Here's a link: https://www.gigabyte.com/mb/rgb/sdk
This increases resolution of color-calculations. For example would it be possible to lerp in smaller steps than 1/255 in fast running applications.
Hi,
Wondering your thoughts on getting this working with C# 3.5 or more specifically Unity Game Engine.
I've already implemented my own wrapper for Logitech and Razer's SDK's and saw your's is very similar however better structured and with more devices so hoping to pivot to using this.
I tried a while ago using it and had issues with the C# version
It's implemented on surface-level but not for device-providers which makes it quite hard to see why devices aren't loaded in a non-debug environment.
New version is 9.00
Awesome work on this program from what i saw in windows
love to assist where i can
but currently the program does not open on my system
build list of RGB devices along with cpu and OS:
windows 10
asus b450-F rog
amd 2700x
6 x corsair LL120 farms going to a lighting node (via the 6 port hub)
nzxt x72 kraken
4 x 8 gb G.Skill RBG trident Z
evga 1080 FTW ACX 3.0
let me know if anything i can help test also
thanks !
Seeing how Asus's offical SDK has basically been abandoned (It didn't recieve an update in ages now) I am looking for another alternative to controll both my Asus Aura LEDs on my mainboard aswell as my G.Skill Trident Z RGB ram sticks.
Unfortiounatley Asus never implemented the Dram control functions into their SDK so as of now there is no way for me to control it.
So as the title says I just wanna ask if your software can control the TridentZ RGB ram eventhough Asus SDK doesn't support it (yet and possibly ever) or if I will be stuck with my idea for a project here having it basically die on the step of not having an SDK to control the ram.
can you help i,m trying to sync my evga 1080 ti to asus aura but googling didn't help much thanks in advance
One day it has to be done ...
Seems like an initialization issue in the DeviceProvider instance.
I'm getting the error:
Exception thrown: 'System.AccessViolationException' in RGB.NET.Devices.Msi.dll
An unhandled exception of type 'System.AccessViolationException' occurred in RGB.NET.Devices.Msi.dll
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
This occurs when trying to load the device. My code:
static void Main(string[] argv)
{
RGBSurface surface = RGBSurface.Instance;
surface.Exception += args => Debug.Print(args.Exception.Message);
surface.LoadDevices(MsiDeviceProvider.Instance, throwExceptions: true);
...
}
The exception is thrown in the MsiDeviceProvider at line 98:
if ((errorCode = _MsiSDK.GetDeviceInfo(out string[] deviceTypes, out int[] ledCounts)) != 0)
What's odd is that it should be successfully initialized by this point, and GetDevicesInfo throws an exception rather than returning an error code.
I've tried x86 & x64 builds, and running VS as administrator and not as admin.
I installed the RGB.NET.Resources.* using the "NuGet Package Manager" using RBG.NET as the package source. While I'm new to Visual Studio, I believe this was done properly as I see the dlls in the correct file locations.
My MSI hardware:
From other threads I realize you have no MSI hardware to test with, but still wanted to start an issue in hopes others have found a solution, or maybe a place for future me to write how I fixed it. :)
As a side note, the Corsair dll appears to load correctly, but it cannot find my RGB Vengeance RAM. I'm simply not having any luck..
wanted to know if is possible to add Gigabyte RGB fusion and NZXT hue support.
for rgb fusion is an official sdk avaiable. that sdk can controll Gskill Trident Z RGB rams too. here is the link to the SDK: https://www.gigabyte.com/mb/rgb/sdk?fbclid=IwAR2mIF6Zrz14Aen3-dincOuh7axa_dAduEhACEf4AWRnq2GPpAxjSGPmzLM
and for the nzxt hue i found only unofficial sdks here on github like this one:
i know they have released the sdk for the aura lighting is it possible to have a profile that reacts to sound im asking because the rest of my rgb do just that thanks in advance
heres the link http://www.soundblaster.com/blasterx/aurorasdk/
Have you any plans to add Philips AMBX lights to this. It has an SDK. it's hard to find but I have a copy if you need it and I'm willing to test it if you need someone.
I would like to see PhilipsHue support in the near future.
I receive the following:
System.ArgumentNullException: 'Value cannot be null. Parameter name: ptr'
when trying to initialize Corsair devices with the following code:
var surface = RGBSurface.Instance;
surface.LoadDevices(new CorsairDeviceProviderLoader().GetDeviceProvider(), throwExceptions: true);
surface.AlignDevices();
Of course, it doesn't throw the exception when I omit throwExceptions: true. However, when I try to view surface.Devices, the IEnumerable is empty.
3.0.217 is the new version.
Since there are still no changenotes a drop-in-replacement and some smoke-tests should be done.
Hi,
Last piece of my RGB puzzle, anyway to get the Alienware's AlienFX sync'd up with the bunch?
Thank you in advance
... it seems like at least ASUS is never built against 4.5 - Mainboard-Model-Detection is not working.
3.0.234 is the new version
Line:
surface.LoadDevices(AsusDeviceProvider.Instance);
Error:
System.AccessViolationException: 'Attempted to read or write protected memory. This is often an indication that other memory is corrupt.'
Trace:
at RGB.NET.Devices.Asus.AsusDeviceProvider.Initialize(RGBDeviceType loadFilter, Boolean exclusiveAccessIfPossible, Boolean throwExceptions)
at RGB.NET.Core.RGBSurface.LoadDevices(IRGBDeviceProvider deviceProvider, RGBDeviceType loadFilter, Boolean exclusiveAccessIfPossible, Boolean throwExceptions)
at RGB_Unity.MainWindow.Window_Loaded(Object sender, RoutedEventArgs e) in G:\Personal\2018\Asus Aura\RGB Unity\MainWindow.xaml.cs:line 37
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
at System.Windows.Interop.HwndTarget.OnResize()
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
My motherboard is ASUS ROG Strix x399-E.
When I run the official demo program for the SDK (the one that comes inside the asus aura sdk zip file), it also crashes when I select "motherboard". The GPU demo works just fine though. I don't have an aura mouse/keyboard. But I do have Trident Z RGB ram, which also works with aura.
Is this just me?
HID: 0xC087
("G303", RGBDeviceType.Mouse, 0xC080, 2, "default", @"Mice\G303")
(Reported by Dasky @ Discord)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. πππ
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google β€οΈ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.