This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

USB Composite not showing data after a confirmation on sending

Hey Team,

I was playing around with the composite example, and added in my own class a  and used the mouse class to implement it while changing it to suit what i have 
orgianlly to output to EP3 and removing the subclass_boot/ setting it to be a generic device from a mouse device.

on pressing a button, i set a bunch of the 'buttons' to 1 and then organise it into the report buffer and send as like the other examples do. I get no error and it goes go through but looking at the device in test mode no data seems to trigger on.

Not sure what im missing.


Main changes:

/**
 * @brief Initializer of interface descriptor for HID mouse class.
 *
 * @param interface_number Interface number.
 */
#define APP_USBD_HID_GAMEPAD_INTERFACE_DSC(interface_number)      \
        APP_USBD_HID_INTERFACE_DSC(interface_number,            \
                                   1,                           \
                                   APP_USBD_HID_SUBCLASS_NONE ,  \
                                   APP_USBD_HID_PROTO_GENERIC )


/**
 * @brief Global definition macro of app_usbd_hid_mouse_t class.
 *
 * @param instance_name     Name of global instance.
 * @param interface_number  Unique interface number.
 * @param endpoint          Input endpoint (@ref nrf_drv_usbd_ep_t).
 * @param user_ev_handler   User event handler (optional).
 * @param subclass_boot     Subclass boot (@ref app_usbd_hid_subclass_t).
 *
 * @code
   APP_USBD_HID_MOUSE_GLOBAL_DEF(my_awesome_mouse, 0, NRF_DRV_USBD_EPIN1, 3, NULL);
 * @endcode
 */

  //static uint8_t const CONCAT_2(name,  _data)[] = fuck bcnt 

     /*typedef struct {
    size_t                size;
    app_usbd_descriptor_t type;
    uint8_t const * const p_data;
    } app_usbd_hid_subclass_desc_t; */


#define APP_USBD_HID_GAMEPAD_GLOBAL_DEF(instance_name,                                                  \
                                       interface_number,                                                \
                                       endpoint,                                                        \
                                       user_ev_handler,                                                 \
                                       subclass_boot)                                                   \
    APP_USBD_HID_GENERIC_SUBCLASS_REPORT_DESC(gamepad_desc, APP_USBD_HID_GAMEPAD_REPORT_DSC(196));      \
    static const app_usbd_hid_subclass_desc_t * gamepad_descs[] = {&gamepad_desc};                      \
    APP_USBD_HID_GAMEPAD_GLOBAL_DEF_INTERNAL(instance_name,                                             \
                                              interface_number,                                         \
                                              endpoint,                                                 \
                                              user_ev_handler,                                          \
                                              subclass_boot)


#ifdef DOXYGEN
/**
 * @brief HID mouse class instance type.
 *
 * @ref APP_USBD_CLASS_TYPEDEF
 */
typedef struct { } app_usbd_hid_gamepad_t;
#else
// other examples have the config at 0,endpoiint number
/*lint -save -e10 -e26 -e123 -e505 */
APP_USBD_CLASS_TYPEDEF(app_usbd_hid_gamepad,                      \
            APP_USBD_HID_GAMEPAD_CONFIG(0, NRF_DRV_USBD_EPIN1),   \
            APP_USBD_HID_GAMEPAD_INSTANCE_SPECIFIC_DEC,           \
            APP_USBD_HID_GAMEPAD_DATA_SPECIFIC_DEC                \
);
/*lint -restore*/
#endif
// @brief Specific class constant data for HID gamepad class.
//@brief Specific class data for HID gamepad class. 



 //###########################################
 /**
 * @brief Global HID GAMEPAD instance  AT EP1 (use to be at 3, swapped mouse and controller around)
 */
 //###########################################
APP_USBD_HID_GAMEPAD_GLOBAL_DEF(m_app_hid_gamepad,                //@param instance_name     Name of global instance.
                                APP_USBD_INTERFACE_GAMEPAD,       //@param interface_number  Unique interface number.
                                NRF_DRV_USBD_EPIN1,               //@param endpoint          Input endpoint (@ref nrf_drv_usbd_ep_t).
                                hid_gamepad_user_ev_handler,      //@param user_ev_handler   User event handler (optional).
                                APP_USBD_HID_SUBCLASS_NONE        //@param subclass_boot     Subclass boot (@ref app_usbd_hid_subclass_t).
);

APP_USBD_DUMMY_GLOBAL_DEF(m_app_gamepad_dummy, APP_USBD_INTERFACE_GAMEPAD);



Code is attached and the class is in the same folders as the other classes
5658.files.rar



Test showing on pc, no lights showup:



Serial log:

The oldest data was removed. Continue...
li:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J[1;31mLogs dropped (1)[0m

<info> app: hid_gamepad_feed_descriptors

[1;32muarart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: hid_gamepad_feed_descriptors

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 0

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 1

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 0

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 1

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 0

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 1

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 0

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 1

[1;32muart_cli:~$ [1;37m[12D[J<info> app: sending button press 0

[1;32muart_cli:~$ [1;37m[12D[J<info> app: APP_USBD_HID_USER_EVT_IN_REPORT_DONE

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m[12D[J<info> app: SENDING NEW USB DATA

[1;32muart_cli:~$ [1;37m[12D[J<info> app: transfer in progress

[1;32muart_cli:~$ [1;37m






Parents
  • Hi,

    Can you take a look at this example and use it as a basis for adding your gamepad descriptor?
    https://github.com/too1/nrf52-usbd-custom-hid-ep

    Best regards,
    Kenneth

  • Information for device nRF52 USB HID composite GAMEPAD (VID=0x1915 PID=0x520B):
    
    ------------------------------
    Connection Information:
    ------------------------------
    Device current bus speed: FullSpeed
    Device supports USB 1.1 specification
    Device supports USB 2.0 specification
    Device address: 0x0008
    Current configuration value: 0x01
    Number of open pipes: 1
    
    
    ------------------------------
    Device Descriptor:
    ------------------------------
    0x12	bLength
    0x01	bDescriptorType
    0x0200	bcdUSB
    0x00	bDeviceClass      
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 bytes)
    0x1915	idVendor
    0x520B	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer   "Nordic Semiconductor"
    0x02	iProduct        "nRF52 USB HID composite GAMEPAD"
    0x03	iSerialNumber   "000000000000"
    0x01	bNumConfigurations
    
    
    -------------------------
    Configuration Descriptor:
    -------------------------
    0x09	bLength
    0x02	bDescriptorType
    0x0022	wTotalLength   (34 bytes)
    0x01	bNumInterfaces
    0x01	bConfigurationValue
    0x04	iConfiguration   "Default configuration"
    0xE0	bmAttributes   (Self-powered Device, Remote-Wakeup)
    0x32	bMaxPower      (100 mA)
    
    Interface Descriptor:
    ------------------------------
    0x09	bLength
    0x04	bDescriptorType
    0x00	bInterfaceNumber
    0x00	bAlternateSetting
    0x01	bNumEndPoints
    0x03	bInterfaceClass      (Human Interface Device Class)
    0x00	bInterfaceSubClass   
    0x00	bInterfaceProtocol   
    0x00	iInterface
    
    HID Descriptor:
    ------------------------------
    0x09	bLength
    0x21	bDescriptorType
    0x0111	bcdHID
    0x00	bCountryCode
    0x01	bNumDescriptors
    0x22	bDescriptorType   (Report descriptor)
    0x00BC	bDescriptorLength
    
    Endpoint Descriptor:
    ------------------------------
    0x07	bLength
    0x05	bDescriptorType
    0x81	bEndpointAddress  (IN endpoint 1)
    0x03	bmAttributes      (Transfer: Interrupt / Synch: None / Usage: Data)
    0x0040	wMaxPacketSize    (1 x 64 bytes)
    0x01	bInterval         (1 frames)
    
    Microsoft OS Descriptor is not available. Error code: 0x0000001F
    
    
    --------------------------------
    String Descriptor Table
    --------------------------------
    Index  LANGID  String
    0x00   0x0000  0x0409 
    0x01   0x0409  "Nordic Semiconductor"
    0x02   0x0409  "nRF52 USB HID composite GAMEPAD"
    0x03   0x0409  "000000000000"
    0x04   0x0409  "Default configuration"
    
    ------------------------------
    
    Connection path for device: 
    USB xHCI Compliant Host Controller
    Root Hub
    Generic USB Hub
    nRF52 USB HID composite GAMEPAD (VID=0x1915 PID=0x520B) Port: 4
    
    Running on: Windows 10 or greater (Build Version 19041)
    
    Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
    
    attached  a description dumper of the device 

Reply
  • Information for device nRF52 USB HID composite GAMEPAD (VID=0x1915 PID=0x520B):
    
    ------------------------------
    Connection Information:
    ------------------------------
    Device current bus speed: FullSpeed
    Device supports USB 1.1 specification
    Device supports USB 2.0 specification
    Device address: 0x0008
    Current configuration value: 0x01
    Number of open pipes: 1
    
    
    ------------------------------
    Device Descriptor:
    ------------------------------
    0x12	bLength
    0x01	bDescriptorType
    0x0200	bcdUSB
    0x00	bDeviceClass      
    0x00	bDeviceSubClass   
    0x00	bDeviceProtocol   
    0x40	bMaxPacketSize0   (64 bytes)
    0x1915	idVendor
    0x520B	idProduct
    0x0100	bcdDevice
    0x01	iManufacturer   "Nordic Semiconductor"
    0x02	iProduct        "nRF52 USB HID composite GAMEPAD"
    0x03	iSerialNumber   "000000000000"
    0x01	bNumConfigurations
    
    
    -------------------------
    Configuration Descriptor:
    -------------------------
    0x09	bLength
    0x02	bDescriptorType
    0x0022	wTotalLength   (34 bytes)
    0x01	bNumInterfaces
    0x01	bConfigurationValue
    0x04	iConfiguration   "Default configuration"
    0xE0	bmAttributes   (Self-powered Device, Remote-Wakeup)
    0x32	bMaxPower      (100 mA)
    
    Interface Descriptor:
    ------------------------------
    0x09	bLength
    0x04	bDescriptorType
    0x00	bInterfaceNumber
    0x00	bAlternateSetting
    0x01	bNumEndPoints
    0x03	bInterfaceClass      (Human Interface Device Class)
    0x00	bInterfaceSubClass   
    0x00	bInterfaceProtocol   
    0x00	iInterface
    
    HID Descriptor:
    ------------------------------
    0x09	bLength
    0x21	bDescriptorType
    0x0111	bcdHID
    0x00	bCountryCode
    0x01	bNumDescriptors
    0x22	bDescriptorType   (Report descriptor)
    0x00BC	bDescriptorLength
    
    Endpoint Descriptor:
    ------------------------------
    0x07	bLength
    0x05	bDescriptorType
    0x81	bEndpointAddress  (IN endpoint 1)
    0x03	bmAttributes      (Transfer: Interrupt / Synch: None / Usage: Data)
    0x0040	wMaxPacketSize    (1 x 64 bytes)
    0x01	bInterval         (1 frames)
    
    Microsoft OS Descriptor is not available. Error code: 0x0000001F
    
    
    --------------------------------
    String Descriptor Table
    --------------------------------
    Index  LANGID  String
    0x00   0x0000  0x0409 
    0x01   0x0409  "Nordic Semiconductor"
    0x02   0x0409  "nRF52 USB HID composite GAMEPAD"
    0x03   0x0409  "000000000000"
    0x04   0x0409  "Default configuration"
    
    ------------------------------
    
    Connection path for device: 
    USB xHCI Compliant Host Controller
    Root Hub
    Generic USB Hub
    nRF52 USB HID composite GAMEPAD (VID=0x1915 PID=0x520B) Port: 4
    
    Running on: Windows 10 or greater (Build Version 19041)
    
    Brought to you by TDD v2.17.0, Feb 23 2021, 14:04:02
    
    attached  a description dumper of the device 

Children
No Data
Related