cancel
Showing results for 
Search instead for 
Did you mean: 

Alternative SDK for Aura

boredom101
Level 8
I have found a way to create an SDK that can do just as much as the Aura software. The trick is to communicate directly with the COM object (AsRogAuraServiceLib), which is in charge of controlling the hardware. This allows you to pragmatically set effects or make your own configuration tool. I will be posting a link to a github repository with the code, once I have a working demo.
3,464 Views
15 REPLIES 15

boredom101
Level 8
This is a demo with a Visual Studio project, For it to run you need Aura installed. It takes as a command line argument, a path to a profile XML file, like the one provided. Tell me what you think, and please post any bugs.
Github Link: https://github.com/boredom101/Asus-Aura-Alternative

What device you tested on? I've tried on notebook's keyboard and it doesn't work.
In ServiceMediator works only get_QueryAllDeviceCap method and returns info about my keyboard? but GetProfile and SetProfile do nothing.
I've found a way to controll leds using AuraDevelopement class, but it sets incorrect colors if trying to set per key color and not using one of default effects.


var aura = new AuraDevelopement();
aura.AURARequireToken();
var kb = aura.GetAllDevices()[0];
kb.SetMode(0); // per key color mode
uint color = 255 << 16; //green
for (uint i = 0; i < kb.LightCount; i++)
{
kb.SetLightColor(i, color);
}
kb.Apply();

STRIKER_Perm wrote:
What device you tested on? I've tried on notebook's keyboard and it doesn't work.
In ServiceMediator works only get_QueryAllDeviceCap method and returns info about my keyboard? but GetProfile and SetProfile do nothing.
I've found a way to controll leds using AuraDevelopement class, but it sets incorrect colors if trying to set per key color and not using one of default effects.


var aura = new AuraDevelopement();
aura.AURARequireToken();
var kb = aura.GetAllDevices()[0];
kb.SetMode(0); // per key color mode
uint color = 255 << 16; //green
for (uint i = 0; i < kb.LightCount; i++)
{
kb.SetLightColor(i, color);
}
kb.Apply();


They have inversed the blue and red in the uint... use that snippet :

public static class Generic
{
public static uint ToUint(this System.Drawing.Color c)
{
return (uint)(((c.A << 24) | (c.B << 16) | (c.G << 😎 | c.R) & 0xffffffffL);
}
}

Use it like this :
uint color =System.Drawing.Color.Green.ToUint();

GallantJR2 wrote:
They have inversed the blue and red in the uint... use that snippet :

public static class Generic
{
public static uint ToUint(this System.Drawing.Color c)
{
return (uint)(((c.A << 24) | (c.B << 16) | (c.G << 😎 | c.R) & 0xffffffffL);
}
}

Use it like this :
uint color =System.Drawing.Color.Green.ToUint();


It works, but only when I use kb.SetMode(1); which makes keyboard have only one color for all keys.
When I use kb.SetMode(0); to set color for each key separately it works differently. System.Drawing.Color.Green.ToUint(); becomes red and to set green color I should use System.Drawing.Color.Blue.ToUint();, it is not the big problem, I just need another method with another color order, but it is not the biggest problem. The biggest problem, that green is not so green :). It have slightly different tone and some keys have some red lighting.
75975
It happens only when I set color using my program in official AURA software there is no such problems. Also as you can see the bug appears only for some of the keys.

Nice. I got this alternative api to work with bot my mobo and gpu.

STRIKER_Perm wrote:
It works, but only when I use kb.SetMode(1); which makes keyboard have only one color for all keys.
When I use kb.SetMode(0); to set color for each key separately it works differently. System.Drawing.Color.Green.ToUint(); becomes red and to set green color I should use System.Drawing.Color.Blue.ToUint();, it is not the big problem, I just need another method with another color order, but it is not the biggest problem. The biggest problem, that green is not so green :). It have slightly different tone and some keys have some red lighting.
75975
It happens only when I set color using my program in official AURA software there is no such problems. Also as you can see the bug appears only for some of the keys.


I will look into these two issues:

  • Inaccurate Coloring
  • Requires kb.SetMode(1)

CX_gamer
Level 8
Whoa this is big! Do you think it will be possible to implement DRAM and Addressable RGB? Thanks for doing this, I need this!

CX gamer wrote:
Whoa this is big! Do you think it will be possible to implement DRAM and Addressable RGB? Thanks for doing this, I need this!


No problem, I'm busy right now, but I'll try to add new features and fix bugs as I can. If anyone is able to help I would be very happy.

asder98
Level 7
DRAM works fine as is... :P.
I am an electrical engineer to save time let's assume I am always right!