# HID - Human Interface Device # HID Report Descriptors ## Items Main Items - Input - Output - Feature - Collection - End Collection Global Items (Säilyvät main itemeitten jälkeen) - Usage Page - Logical Minimum / Logical Maximum (protokollassa olevat arvot) - Physical Minimum / Physical Maximum (reaalimaailman arvot) - Report Size - Report Count - Report ID - Unit - Unit Exponent - Push / Pop Local Items (Määriteltävä aina main itemin käytön jälkeen) - Usage, Usage Minimun / Usage Maximum - Designator Index, Designator Minimum / Designator Maximum - String Index, String Minimum / String Maximum - Delimiter - Reserved ## Esimerkkejä ### Joystick Minimalistic joystick - Joystick must have atleast 2 axis. 2 buttons. char ReportDescriptor[46] = { 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x04, // USAGE (Joystick) 0xa1, 0x01, // COLLECTION (Application) 0x09, 0x01, // USAGE (Pointer) 0xa1, 0x00, // COLLECTION (Physical) 0x15, 0x81, // LOGICAL_MINIMUM (-127) 0x25, 0x7f, // LOGICAL_MAXIMUM (127) 0x09, 0x30, // USAGE (X) 0x09, 0x31, // USAGE (Y) 0x95, 0x02, // REPORT_COUNT (2) 0x75, 0x08, // REPORT_SIZE (8) 0x81, 0x02, // INPUT (Data,Var,Abs) 0xc0, // END_COLLECTION 0x05, 0x09, // USAGE_PAGE (Button) 0x19, 0x01, // USAGE_MINIMUM (Button 1) 0x29, 0x02, // USAGE_MAXIMUM (Button 2) 0x15, 0x00, // LOGICAL_MINIMUM (0) 0x25, 0x01, // LOGICAL_MAXIMUM (1) 0x75, 0x01, // REPORT_SIZE (1) 0x95, 0x02, // REPORT_COUNT (2) 0x81, 0x02, // INPUT (Data,Var,Abs) 0x75, 0x06, // REPORT_SIZE (6) 0x81, 0x01, // INPUT (Cnst,Ary,Abs) 0xc0 // END_COLLECTION }; ### Mouse ### Keyboard ## Arduino - Kannattaa käyttää esim: Arduino Uno r3 tai Arduino 2560 r3, koska niissä toimii dfu-lataus hyvin ja helposti. - LUFA-100807 - arduino-1.0