HID read speed?
Posted: Thu Aug 15, 2013 6:18 pm
I am creating a new HID device to deliver real-time data to a PC (or Mac). I have used a template for a game controller with a single slider and no buttons to get the smallest report descriptor:
My problem is that this only seems to get read every 35mS or so, and I need to be able to go at least three times as fast. I tried this with a more complicated report descriptor (X & Y 2-byte axes and 8 buttons) and the speed was about the same.
I'm developing on win 7-64 (but will also have a Mac application). Is this a windows limitation, or maybe an HID limitation? Can I not send data over an HID interface faster than this? If not, I'll have to go to a much messier plan B, and whatever drivers that entails. I do like the HID interface, given the lack of drivers and the clean installation that allows.
Code: Select all
PROGMEM const char usbHidReportDescriptor[24] = {
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x05, // USAGE (Game Pad)
0xa1, 0x01, // COLLECTION (Application)
0xa1, 0x00, // COLLECTION (Physical)
0x05, 0x01, // USAGE_PAGE (Generic Desktop)
0x09, 0x36, // USAGE (Slider)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x7f, // LOGICAL_MAXIMUM (127)
0x75, 0x08, // REPORT_SIZE (8)
0x95, 0x01, // REPORT_COUNT (1)
0x81, 0x02, // INPUT (Data,Var,Abs)
0xc0, // END_COLLECTION
0xc0 // END_COLLECTION
};
My problem is that this only seems to get read every 35mS or so, and I need to be able to go at least three times as fast. I tried this with a more complicated report descriptor (X & Y 2-byte axes and 8 buttons) and the speed was about the same.
I'm developing on win 7-64 (but will also have a Mac application). Is this a windows limitation, or maybe an HID limitation? Can I not send data over an HID interface faster than this? If not, I'll have to go to a much messier plan B, and whatever drivers that entails. I do like the HID interface, given the lack of drivers and the clean installation that allows.