<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/80877/usb-composite-not-showing-data-after-a-confirmation-on-sending</link><description>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</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 22 Oct 2021 04:15:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/80877/usb-composite-not-showing-data-after-a-confirmation-on-sending" /><item><title>RE: USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/thread/335391?ContentTypeID=1</link><pubDate>Fri, 22 Oct 2021 04:15:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f9fd87e7-008c-4db1-a997-b47f063d08b6</guid><dc:creator>lolcatsnin</dc:creator><description>&lt;p&gt;Found out the report was the issue. i shouldnt of trusted the setup. !!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/thread/335385?ContentTypeID=1</link><pubDate>Fri, 22 Oct 2021 03:12:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:73edeb09-d844-4c35-8781-b8be11e04025</guid><dc:creator>lolcatsnin</dc:creator><description>&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;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   &amp;quot;Nordic Semiconductor&amp;quot;
0x02	iProduct        &amp;quot;nRF52 USB HID composite GAMEPAD&amp;quot;
0x03	iSerialNumber   &amp;quot;000000000000&amp;quot;
0x01	bNumConfigurations


-------------------------
Configuration Descriptor:
-------------------------
0x09	bLength
0x02	bDescriptorType
0x0022	wTotalLength   (34 bytes)
0x01	bNumInterfaces
0x01	bConfigurationValue
0x04	iConfiguration   &amp;quot;Default configuration&amp;quot;
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  &amp;quot;Nordic Semiconductor&amp;quot;
0x02   0x0409  &amp;quot;nRF52 USB HID composite GAMEPAD&amp;quot;
0x03   0x0409  &amp;quot;000000000000&amp;quot;
0x04   0x0409  &amp;quot;Default configuration&amp;quot;

------------------------------

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
&lt;/pre&gt;attached&amp;nbsp; a description dumper of the device&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/thread/335380?ContentTypeID=1</link><pubDate>Fri, 22 Oct 2021 01:21:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e537c019-8885-455e-988f-d7223eeaa293</guid><dc:creator>lolcatsnin</dc:creator><description>&lt;p&gt;A better question might be&amp;nbsp;&lt;br /&gt;1) From looking at how it&amp;#39;s setup the feeddescriptors doesnt seem to be something i would need to modify&lt;br /&gt;as it looks as if its pulling alot of data from other locations. Although it then has missing values from the&lt;br /&gt;&amp;nbsp;app_usbd_descriptor_configuration_t and&amp;nbsp;app_usbd_descriptor_iface_t..&amp;nbsp;&lt;br /&gt;&lt;br /&gt;2) is my process for sending data out correct ? im trying to understand where my problem lies as it shows up nicely on the device manager but no data updates.&lt;br /&gt; so i would initially think these an issue with the endpoint&lt;br /&gt;and maybe how i used those define functions that those other two examples used, but since those two work fine and have different sized reports but the same setup for the feeddescriptors function im kind of at a loss with what i may of missed.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/thread/335290?ContentTypeID=1</link><pubDate>Thu, 21 Oct 2021 11:48:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:52575a0c-95ea-4c4e-9fd0-5ce61932c98b</guid><dc:creator>lolcatsnin</dc:creator><description>&lt;p&gt;Hey, thanks for the page. unforutantly thats confused me a tad bit more.&lt;br /&gt;If anything i would think the fault would lie within the descriptors function your examples use as i havnt modified them at all (hid_gamepad_feed_descriptors). Although in the example you offered the descriptors are layered out nicely. one think im having a hard time understanding is what value i would be writing to through the protothreads ie:&lt;pre class="ui-code" data-mode="text"&gt;static bool hid_gamepad_feed_descriptors(app_usbd_class_descriptor_ctx_t  * p_ctx,
                                         app_usbd_class_inst_t const      * p_inst,
                                         uint8_t                          * p_buff,
                                         size_t                             max_size)
{
 NRF_LOG_INFO(&amp;quot;hid_gamepad_feed_descriptors&amp;quot;);
    static uint8_t ifaces   = 0;

    ifaces = app_usbd_class_iface_count_get(p_inst);
 NRF_LOG_INFO(&amp;quot;Number of ifaces are %d&amp;quot;,ifaces);

    app_usbd_hid_gamepad_t const * p_gamepad = hid_gamepad_get(p_inst);

    APP_USBD_CLASS_DESCRIPTOR_BEGIN(p_ctx, p_buff, max_size);

    static uint8_t i = 0;

    for (i = 0; i &amp;lt; ifaces; i++)
    {
        /* INTERFACE DESCRIPTOR */ 
        //Offset	Field                   Size                      Value                     Description
        //  0           bLength                   1                       Number              Size of Descriptor in Bytes 
        APP_USBD_CLASS_DESCRIPTOR_WRITE(0x09); // bLength  
        //  1          bDescriptionType           1                       Constant                  DescriptorType
        APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_DESCRIPTOR_INTERFACE); // bDescriptorType = Interface

        static app_usbd_class_iface_conf_t const * p_cur_iface = NULL;
        p_cur_iface = app_usbd_class_iface_get(p_inst, i);

        APP_USBD_CLASS_DESCRIPTOR_WRITE(app_usbd_class_iface_number_get(p_cur_iface));            // bInterfaceNumber
        APP_USBD_CLASS_DESCRIPTOR_WRITE(0x00);                                                    // bAlternateSetting
        APP_USBD_CLASS_DESCRIPTOR_WRITE(app_usbd_class_iface_ep_count_get(p_cur_iface));          // bNumEndpoints
        APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_HID_CLASS);                                      // bInterfaceClass = HID  // unable to find an alternative 
        APP_USBD_CLASS_DESCRIPTOR_WRITE(p_gamepad-&amp;gt;specific.inst.hid_inst.subclass_boot);         // bInterfaceSubclass (Boot Interface)
        APP_USBD_CLASS_DESCRIPTOR_WRITE(p_gamepad-&amp;gt;specific.inst.hid_inst.protocol);              // bInterfaceProtocol
        APP_USBD_CLASS_DESCRIPTOR_WRITE(0x00);                                                    // iInterface

        /* HID DESCRIPTOR */
        //Offset	Field                   Size                      Value                     Description
        APP_USBD_CLASS_DESCRIPTOR_WRITE(0x09);                                                    // bLength
        //  1         bDescriptorType             1                       Constant            Device Descriptor (0x01)
        APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_HID_DESCRIPTOR_HID);                             // bDescriptorType = HID
        //  2           bcdUSB                    2                         BCD             USB Specification Number which device complies too.
        APP_USBD_CLASS_DESCRIPTOR_WRITE(LSB_16(APP_USBD_HID_BCD_VER));                            // bcdHID LSB
        APP_USBD_CLASS_DESCRIPTOR_WRITE(MSB_16(APP_USBD_HID_BCD_VER));                            // bcdHID MSB

        APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_HID_COUNTRY_NOT_SUPPORTED);                      // bCountryCode
        APP_USBD_CLASS_DESCRIPTOR_WRITE(hid_gamepad_get_class_descriptors_count(p_inst));         // bNumDescriptors

        static uint8_t class_desc_cnt = 0;
        class_desc_cnt = hid_gamepad_get_class_descriptors_count(p_inst);
        static uint8_t  j              = 0;
        static uint16_t class_desc_len = 0;

        for (j = 0; j &amp;lt; class_desc_cnt; j++)
        {
            APP_USBD_CLASS_DESCRIPTOR_WRITE(hid_gamepad_get_class_descriptors_type(p_inst, j));   // bDescriptorType

            class_desc_len = hid_gamepad_get_class_descriptors_length(p_inst, j);
            APP_USBD_CLASS_DESCRIPTOR_WRITE(LSB_16(class_desc_len));                              // wDescriptorLength LSB
            APP_USBD_CLASS_DESCRIPTOR_WRITE(MSB_16(class_desc_len));                              // wDescriptorLength MSB
        }

        static uint8_t endpoints = 0;
        endpoints = app_usbd_class_iface_ep_count_get(p_cur_iface);

        for (j = 0; j &amp;lt; endpoints; j++)
        {
            /* ENDPOINT DESCRIPTOR */
            APP_USBD_CLASS_DESCRIPTOR_WRITE(0x07);                                                // bLength
            APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_DESCRIPTOR_ENDPOINT);                        // bDescriptorType = Endpoint

            static app_usbd_class_ep_conf_t const * p_cur_ep = NULL;
            p_cur_ep = app_usbd_class_iface_ep_get(p_cur_iface, j);
            APP_USBD_CLASS_DESCRIPTOR_WRITE(app_usbd_class_ep_address_get(p_cur_ep));             // bEndpointAddress
            APP_USBD_CLASS_DESCRIPTOR_WRITE(APP_USBD_DESCRIPTOR_EP_ATTR_TYPE_INTERRUPT);          // bmAttributes
            APP_USBD_CLASS_DESCRIPTOR_WRITE(LSB_16(NRF_DRV_USBD_EPSIZE));                         // wMaxPacketSize LSB
            APP_USBD_CLASS_DESCRIPTOR_WRITE(MSB_16(NRF_DRV_USBD_EPSIZE));                         // wMaxPacketSize MSB
            APP_USBD_CLASS_DESCRIPTOR_WRITE(p_gamepad-&amp;gt;specific.inst.hid_inst.p_ep_interval[j]);  // bInterval
        }
    }

    APP_USBD_CLASS_DESCRIPTOR_END();
}&lt;/pre&gt;&lt;br /&gt;Then comparing the examples setup:&amp;nbsp;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;/** Maximum size of the packed transfered by EP0 */
#define EP0_MAXPACKETSIZE NRF_DRV_USBD_EPSIZE

/** Device descriptor */
#define USBD_DEVICE_DESCRIPTOR \
    0x12,                        /* bLength | size of descriptor                                                  */\
    0x01,                        /* bDescriptorType | descriptor type                                             */\
    0x00, 0x02,                  /* bcdUSB | USB spec release (ver 2.0)                                           */\
    0x00,                        /* bDeviceClass &amp;#194;&amp;#166; class code (each interface specifies class information)        */\
    0x00,                        /* bDeviceSubClass &amp;#194;&amp;#166; device sub-class (must be set to 0 because class code is 0) */\
    0x00,                        /* bDeviceProtocol | device protocol (no class specific protocol)                */\
    EP0_MAXPACKETSIZE,           /* bMaxPacketSize0 | maximum packet size (64 bytes)                              */\
    0x15, 0x19,                  /* vendor ID  (0x1915 Nordic)                                                    */\
    0x0B, 0x52,                  /* product ID (0x520B nRF52 HID mouse on nrf_drv)                                */\
    0x01, 0x01,                  /* bcdDevice | final device release number in BCD Format                         */\
    USBD_STRING_MANUFACTURER_IX, /* iManufacturer | index of manufacturer string                                  */\
    USBD_STRING_PRODUCT_IX,      /* iProduct | index of product string                                            */\
    USBD_STRING_SERIAL_IX,       /* iSerialNumber | Serial Number string                                          */\
    0x01                         /* bNumConfigurations | number of configurations                                 */

/** Configuration descriptor */
#define DEVICE_SELF_POWERED 1
#define REMOTE_WU           1

#define USBD_CONFIG_DESCRIPTOR_SIZE   9
#define USBD_CONFIG_DESCRIPTOR_FULL_SIZE   (9 + (9 + 9 + 7) + (9 + 9 + 7 + 7)) // 66
#define USBD_CONFIG_DESCRIPTOR  \
    0x09,         /* bLength | length of descriptor                                             */\
    0x02,         /* bDescriptorType | descriptor type (CONFIGURATION)                          */\
    USBD_CONFIG_DESCRIPTOR_FULL_SIZE, 0x00,    /* wTotalLength | total length of descriptor(s)  */\
    0x02,         /* bNumInterfaces                                                             */\
    0x01,         /* bConfigurationValue                                                        */\
    0x00,         /* index of string Configuration | configuration string index (not supported) */\
    0x80| (((DEVICE_SELF_POWERED) ? 1U:0U)&amp;lt;&amp;lt;6) | (((REMOTE_WU) ? 1U:0U)&amp;lt;&amp;lt;5), /* bmAttributes    */\
    49            /* maximum power in steps of 2mA (98mA)                                       */

#define USBD_INTERFACE0_DESCRIPTOR  \
    0x09,         /* bLength                                                                          */\
    0x04,         /* bDescriptorType | descriptor type (INTERFACE)                                    */\
    0x00,         /* bInterfaceNumber                                                                 */\
    0x00,         /* bAlternateSetting                                                                */\
    0x01,         /* bNumEndpoints | number of endpoints (1)                                          */\
    0x03,         /* bInterfaceClass | interface class (3..defined by USB spec: HID)                  */\
    0x00,         /* bInterfaceSubClass |interface sub-class (0.. no boot interface)                  */\
    0x02,         /* bInterfaceProtocol | interface protocol (1..defined by USB spec: mouse)          */\
    0x00          /* interface string index (not supported)      */     
                                    
/**
 * HID Table must normally be between Interface and EndPoint Descriptor
 * as written in HID spec&amp;#194;&amp;#167;7.1 but it doesn&amp;#39;t work with OSR2.1
 */
#define USBD_HID0_DESCRIPTOR  \
    0x09,         /* bLength | length of descriptor (9 bytes)                    */\
    0x21,         /* bHIDDescriptor | descriptor type (HID)                      */\
    0x11, 0x01,   /* HID wBcdHID | Spec version 01.11                            */\
    0x00,         /* bCountryCode | HW Target country                            */\
    0x01,         /* bNumDescriptors | Number of HID class descriptors to follow */\
    0x22,         /* bDescriptorType | Report descriptor type is 0x22 (report)   */\
    (uint8_t)(USBD_MOUSE_REPORT_DESCRIPTOR_SIZE),      /* Total length of Report descr., low byte */ \
    (uint8_t)(USBD_MOUSE_REPORT_DESCRIPTOR_SIZE / 256) /* Total length of Report descr., high byte */

#define USBD_ENDPOINT1_DESCRIPTOR  \
    0x07,         /* bLength | length of descriptor (7 bytes)                                     */\
    0x05,         /* bDescriptorType | descriptor type (ENDPOINT)                                 */\
    0x81,         /* bEndpointAddress | endpoint address (IN endpoint, endpoint 1)                */\
    0x03,         /* bmAttributes | endpoint attributes (interrupt)                               */\
    0x08,0x00,    /* bMaxPacketSizeLowByte,bMaxPacketSizeHighByte | maximum packet size (8 bytes) */\
    0x08          /* bInterval | polling interval (10ms)                                          */

#define USBD_INTERFACE1_DESCRIPTOR  \
    0x09,         /* bLength                                                                          */\
    0x04,         /* bDescriptorType | descriptor type (INTERFACE)                                    */\
    0x01,         /* bInterfaceNumber                                                                 */\
    0x00,         /* bAlternateSetting                                                                */\
    0x02,         /* bNumEndpoints | number of endpoints (2)                                          */\
    0x03,         /* bInterfaceClass | interface class (3..defined by USB spec: HID)                  */\
    0x00,         /* bInterfaceSubClass |interface sub-class (0.. no boot interface)                  */\
    0x00,         /* bInterfaceProtocol | interface protocol (1..defined by USB spec: mouse)          */\
    0x00          /* interface string index (not supported)    */

#define USBD_HID1_DESCRIPTOR  \
    0x09,         /* bLength | length of descriptor (9 bytes)                    */\
    0x21,         /* bHIDDescriptor | descriptor type (HID)                      */\
    0x11, 0x01,   /* HID wBcdHID | Spec version 01.11                            */\
    0x00,         /* bCountryCode | HW Target country                            */\
    0x01,         /* bNumDescriptors | Number of HID class descriptors to follow */\
    0x22,         /* bDescriptorType | Report descriptor type is 0x22 (report)   */\
    (uint8_t)(USBD_CUSTOM_REPORT_DESCRIPTOR_SIZE),      /* Total length of Report descr., low byte */ \
    (uint8_t)(USBD_CUSTOM_REPORT_DESCRIPTOR_SIZE / 256) /* Total length of Report descr., high byte */

#define USBD_ENDPOINT2_DESCRIPTOR  \
    0x07,         /* bLength | length of descriptor (7 bytes)                                     */\
    0x05,         /* bDescriptorType | descriptor type (ENDPOINT)                                 */\
    0x82,         /* bEndpointAddress | endpoint address (IN endpoint, endpoint 2)                */\
    0x03,         /* bmAttributes | endpoint attributes (interrupt)                               */\
    0x40,0x00,    /* bMaxPacketSizeLowByte,bMaxPacketSizeHighByte | maximum packet size (64 bytes) */\
    0x08          /* bInterval | polling interval (10ms)    */   

#define USBD_ENDPOINT2_OUT_DESCRIPTOR  \
    0x07,         /* bLength | length of descriptor (7 bytes)                                     */\
    0x05,         /* bDescriptorType | descriptor type (ENDPOINT)                                 */\
    0x02,         /* bEndpointAddress | endpoint address (OUT endpoint, endpoint 2)                */\
    0x03,         /* bmAttributes | endpoint attributes (interrupt)                               */\
    0x40,0x00,    /* bMaxPacketSizeLowByte,bMaxPacketSizeHighByte | maximum packet size (64 bytes) */\
    0x08          /* bInterval | polling interval (10ms)    */   
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;im currently trying to make sense of how things are sorted out from the app_usbd_core.c file&lt;br /&gt;regarding&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define APP_USBD_CORE_DEVICE_DESCRIPTOR  {                                                               \
   .bLength = sizeof(app_usbd_descriptor_device_t),    /* descriptor size */                             \
   .bDescriptorType = APP_USBD_DESCRIPTOR_DEVICE,      /* descriptor type */                             \
   .bcdUSB = APP_USBD_BCD_VER_MAKE(2,0,0),             /* USB BCD version: 2.0 */                        \
   .bDeviceClass = 0,                                  /* device class: 0 - specified by interface */    \
   .bDeviceSubClass = 0,                               /* device subclass: 0 - specified by interface */ \
   .bDeviceProtocol = 0,                               /* device protocol: 0 - specified by interface */ \
   .bMaxPacketSize0 = NRF_DRV_USBD_EPSIZE,             /* endpoint size: fixed to: NRF_DRV_USBD_EPSIZE*/ \
   .idVendor = APP_USBD_VID,                           /* Vendor ID*/                                    \
   .idProduct = APP_USBD_PID,                          /* Product ID*/                                   \
   .bcdDevice = APP_USBD_BCD_VER_MAKE(                 /* Device version BCD */                          \
       APP_USBD_DEVICE_VER_MAJOR,                                                                        \
       APP_USBD_DEVICE_VER_MINOR,                                                                        \
       APP_USBD_DEVICE_VER_SUB),                                                                         \
   .iManufacturer = APP_USBD_STRING_ID_MANUFACTURER,   /* String ID: manufacturer */                     \
   .iProduct = APP_USBD_STRING_ID_PRODUCT,             /* String ID: product */                          \
   .iSerialNumber = APP_USBD_STRING_ID_SERIAL,         /* String ID: serial */                           \
   .bNumConfigurations = 1                             /* Fixed value: only one configuration supported*/\
}


#define APP_USBD_CORE_CONFIGURATION_DESCRIPTOR {                                        \
    .bLength = sizeof(app_usbd_descriptor_configuration_t),                             \
    .bDescriptorType = APP_USBD_DESCRIPTOR_CONFIGURATION,                               \
    .wTotalLength = 0,          /*Calculated dynamically*/                              \
    .bNumInterfaces = 0,        /*Calculated dynamically*/                              \
    .bConfigurationValue = 1,   /*Value passed to set configuration*/                   \
    .iConfiguration = APP_USBD_STRING_ID_CONFIGURATION,        /*Configuration ID*/     \
    .bmAttributes = APP_USBD_DESCRIPTOR_CONFIGURATION_ATTRIBUTE_ALWAYS_SET_MASK |       \
                    ((APP_USBD_CONFIG_SELF_POWERED) ?                                   \
                        APP_USBD_DESCRIPTOR_CONFIGURATION_ATTRIBUTE_SELF_POWERED_MASK   \
                        :                                                               \
                        0),                                                             \
    .bMaxPower = APP_USBD_POWER_MAKE(APP_USBD_CONFIG_MAX_POWER),                        \
}
&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;am i on the right path regarding this being the issue ?&lt;br /&gt;&lt;br /&gt;i also noticed changing the endpoint of my setup to 0 kills it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: USB Composite not showing data after a confirmation on sending</title><link>https://devzone.nordicsemi.com/thread/335216?ContentTypeID=1</link><pubDate>Thu, 21 Oct 2021 08:14:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d569fe1a-243e-4359-b3cf-b061507141b2</guid><dc:creator>Kenneth</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Can you take a look at this example and use it as a basis for adding your gamepad descriptor?&lt;br /&gt;&lt;a href="https://github.com/too1/nrf52-usbd-custom-hid-ep"&gt;https://github.com/too1/nrf52-usbd-custom-hid-ep&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;br /&gt;Kenneth&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>