Finding Initialization Packets
After creating a proper RGB packet, our device is still not working or is not functioning properly. This means that we are missing some initialization packets.
- If your device is already functioning as intended, you can skip this page.
Initialization packets are any packets that a device requires to be sent to it before SignalRGB can properly control it.
To find our initialization packets, we need to go back into our Wireshark capture.
We are going to brute force our initialization packets to start off with. This means that we are going to try every packet our device gets sent before the RGB data until it works.
To start off with, we are just going to try the first packet that the Scimitar is sent and see if that makes our RGB stop flickering.

First, we are going to make a new function and fill the packet in using the data above.
function initpacket1()
{
let packet = [];
packet[0] = 0x00;
packet[1] = 0x07;
packet[2] = 0x04;
packet[3] = 0x02;
device.write(packet,65)
}
Then we are going to call that function inside of our initialization function so that it gets called whenever the plugin is started or reloaded.
export function Initialize() {
initpacket1();
}
Now we can save our plugin, and see if our any changes were made to our device's lighting.
After saving our plugin, the device now functions as intended.
Most of the time, this will not be the case, and multiple packets are sometimes required to initialize a device. Keep trying packets until the device starts working as intended.
Once the device is functioning as intended, try to get rid of any extra packets that are not needed. This is done through trial and error.
Now we have our mouse in sync with SignalRGB, but the LEDs are not named and they do not map correctly to their physical positions. So we are going to fix that next.