Thank you Charles for these valuable information, thanks a lot. I have a deeper understanding now. Still need help though.<br><br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Endpoint Descriptor:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bLength&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7<br>&gt;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bDescriptorType&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bEndpointAddress&nbsp;&nbsp;&nbsp;&nbsp; 0x81&nbsp;&nbsp;EP 1 IN<br>&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bmAttributes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Transfer Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Interrupt<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Synch Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; None<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Usage Type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wMaxPacketSize&nbsp;&nbsp;&nbsp;&nbsp; 0x0008&nbsp;&nbsp;1x 8 bytes<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bInterval&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;10<br>&gt;<br>&gt; bInterval suggests that you poll the device every 10 milliseconds.<br>&gt; Sometimes, you need to send a SET_IDLE request to start the data flowing:
<br>&gt; <a href="http://www.ghz.cc/~clepple/libhid/doc/html/hid__exchange_8c.html#">http://www.ghz.cc/~clepple/libhid/doc/html/hid__exchange_8c.html#</a><br>&gt; c96f8781c3ce92199eda3d18c98406e3<br>&gt; Then, you can use hid_interrupt_read() to read reports. Unfortunately, this function does not
<br>&gt; integrate well with the rest of libhid, so you will need to calculate byte offsets by hand<br>&gt; as I have done above.<br><br>What am I supposed to receive from hid_interrupt_read?<br>8 bytes I thought, but then they are always the same one. I tried with 65 bytes, just in case, but I get mostly the same bytes too, mostly zeros.
<br>Can you detail a bit more? What do you mean by calculate byte offset? Is it that I should receive 65 bytes and then interpret it bit per bit to retrieve control keys, padding, leds, keycodes..?<br><br><br>Thanks<br><br>