Page 1 of 1

The HID Spy Tool

PostPosted: Sat Apr 23, 2011 2:54 pm
by Support
HID Spy
The HID Spy Tool was created as we are not able to go out and buy all the gaming devices ever made.

Download HIDSpy.zip. (This zip file contains only one file: HIDSpy.exe)

Unpack the zip file and run: HIDSpy.exe

You are welcome to share you custom gaming devices, with other iBox users, here in this forum.

NOTE: Do not have iBox running while using HIDSpy.

Select the device to investigate



The Logitech G15 is used in this exsample.
Select the "G15 GamePanel LCD", not the "G15 Gameing Keyboard" and press the [Connect] button.

(For the Logitech G19 Keyboard, selecting the "G19 Gaming Keyboard (Macro interface)" would be correct.)

Select "G15 GamePanel LCD"



HIDSpy now connects to the keyboard.
As can been seen on the above image, the [GetFeature] button is now enabled.
(In the ReportID dropdown list, all avaiable ReportID's will be listed.)

Now start pressing keys..




Investigateing the G15



After pressing the G1-G6 and the P1-P4 buttons we get the above result.
The text in () are user typed in help remarks.
To investigate the data events we now go to the [Hex] page.

The Hex Page



We know that every 2nd DataEvent is a KeyUp, and we don't need that event, so we delete them.
Press the line no. button to select the DataEvent line, and press the [Del] key on you keyboard.

Investigateing the DataEvents...



Looking into the data, we can see that the key presses are in Byte 1 and Byte 2.
We don't need the data in Byte 3 and Byte 4, so we select them and delete them.
We can now type in G1-G6 and P1-P4 in the "Ident" column in the sheet.
We now need to know about the state of the M keys.

Investigateing the M keys...



As we don't want the DataEvents for this, we press the "View Data Events" so the check is Off.
We press the M1 button and then press the [GetFeature] button, do this for the M2, M3 and MR also.
Again, the () text are user typed in help remarks.
We now need to have a look at the GetFeature data, for this we go to the "Binary" page.

Investigateing the M keys Binary data...



Looking at this data, we can see that the M key light states are stored in the "last" 4 bits of Byte 3.

Byte 3
0010 - 1110 -> M1 Light is On [MR(Off), M3(Off), M2(Off), M1(On)]
0010 - 1101 -> M2 Light is On [MR(Off), M3(Off), M2(On), M1(Off)]
0010 - 1011 -> M3 Light is On [MR(Off), M3(On), M2(Off), M1(Off)]
0010 - 0011 -> MR Light is On + M3 Light is On [MR(On), M3(On), M2(Off), M1(Off)]


We can now type in the M1-M3 Idents in the sheet (Don't type in MR, as this is not a M Key state).

If you investigate futher, you will find that Byte 1 contains the keyboard backlight state and Byte 2 contains the LCD backlight state.
If you press [GetFeature] a few more times, you will find that 0010 sometimes changes to 0011, we suspect this is a timer used when the MR light is flashing during macro recording.

As we don't need to know about Byte 1+2 to identify a M key state we need to fill in some "wildcards".

Using wildcards



To identify the M Key Light states correctly, we now need to use some wildcards.
As the Keyboard backlight state nor the LCD backlight state, dose not effect the M Key state, we put in a wildcard in Byte 1,
and do the same for Byte 2.

We now get to Byte 3 were the state is stored in the "last" 4 bits.
We don't care about the "first" 4 bits, so we wildcard them.

With the information we now have, we are ready to add the device to iBox.

Adding the Device to iBox



We now type in the "Ident" and "Product" names, and press the [Create Device] button.
This will create the script seen on the above image.

If no errors are detected, you are now able to press the [Add Device to iBox] button.

Pressing the [Add Device to iBox] checks if the Device is already pressent in the HID.ibx file (File containing supported devices).
The HID.c.ibx file (File contaning custom user devices) is also checked.

If all checkes are passed you will get a MessageBox with the text:
"The new Device (DeviceName) was saved to HID.c.ibx"

You are now able to use the Device with iBox.