<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Getting HID Input report -  WriteEP Vs GetReport? in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874526#M34893</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK First for all, does USB_EVT_IN event occurs every time the device sends&lt;/P&gt;&lt;P&gt;an input report to host irrespective of whether it has sent using control&lt;/P&gt;&lt;P&gt;or interrupt EP?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are experiencing something strange. We are testing different report ID&lt;/P&gt;&lt;P&gt;format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have one simple report descriptor without any report ID or anything&lt;/P&gt;&lt;P&gt;which we took from the sample code and it looks like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const uint8_t HID_ReportDescriptor[] = {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_UsagePageVendor(0x00),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Collection(HID_Application),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMin(0),          // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportSize(8),         // 8 bits    -- /bns 3/4 chaning&lt;/P&gt;&lt;P&gt;this to 10 from 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_INPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Input(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(HID_OUTPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Output(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_FEATURE_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Feature(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_EndCollection,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we use the above report descriptor, we do get USB_EVT_IN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, when we use the following report descriptor, the host receives&lt;/P&gt;&lt;P&gt;input report, however at the device end we never receive USB_EVT_IN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const uint8_t HID_ReportDescriptor[] = {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_UsagePageVendor(0x45),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x00),              //name of hhe usage for the entire&lt;/P&gt;&lt;P&gt;application&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Application),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA010),            //name of the usage for the entire&lt;/P&gt;&lt;P&gt;input report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA011),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA012),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA013),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(3),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA014),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA015),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA016),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(60),       //when input length is 8 there is no&lt;/P&gt;&lt;P&gt;EV_In so changing this  from 4 to 60 total 64&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,  //end of input collection&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x02),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_OUTPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA020),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Output(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0001),              //name of the usage for the entire&lt;/P&gt;&lt;P&gt;feature report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x03),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0002),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0003),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0004),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0005),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0006),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(61),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,                 //end of feature&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        //testing another feature report with ID 4 format is the same&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x30),              //name of the usage for the entire&lt;/P&gt;&lt;P&gt;feature report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x04),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x32),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x33),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x34),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x35),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x36),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(5),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,                 //end of feature&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Apr 2019 20:23:15 GMT</pubDate>
    <dc:creator>ssudhir</dc:creator>
    <dc:date>2019-04-03T20:23:15Z</dc:date>
    <item>
      <title>Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874522#M34889</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;We are using a small Python program as HID host that communicates with our LPC4357 based HID device.&lt;/P&gt;&lt;P&gt;Inside the EP Handler, after reading, we are sending an input buffer. Example code&lt;/P&gt;&lt;P&gt;{input_report as well as output_report is allocated in the USB ram area)&lt;/P&gt;&lt;P&gt;case USB_EVT_OUT::&lt;/P&gt;&lt;P&gt;USBD_API-&amp;gt;hw-&amp;gt;ReadEP(hUsb, pHidCtrl-&amp;gt;epout_adr, output_report);&lt;/P&gt;&lt;P&gt;//do some processing&lt;/P&gt;&lt;P&gt;USBD_API-&amp;gt;hw-&amp;gt;WriteEP(hUsb, pHidCtrl-&amp;gt;epin_adr, input_report, 64);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then in the GetReport Handler we have the following code&lt;/P&gt;&lt;P&gt;case HID_REPORT_INPUT:&lt;/P&gt;&lt;P&gt;*pBuffer = input_report;&lt;/P&gt;&lt;P&gt;&amp;nbsp;*plength = 64;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now at the host end, we are receiving input report due to getreport not due to WriteEP in the EP handler.&amp;nbsp; For example, even if we comment the WriteEP, the fetching input at the host end works, not the other way around. &amp;nbsp;What is the use of WriteEP ?&amp;nbsp; Does it depend on the host command whether the host receives Input sent via WriteEP Vs GetReport? In other words, maybe we are not using the right command to receive what WriteEP has sent?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Mar 2019 19:43:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874522#M34889</guid>
      <dc:creator>ssudhir</dc:creator>
      <dc:date>2019-03-20T19:43:11Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874523#M34890</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;HID_SetReport() and HID_GetReport() are called just when your host sends Set/GetReport request over the control transfer. These routines are not called by the interrupt OUT/IN endpoint events.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;When the interrupt OUT EP receives an output report, HID_Ep_Hdlr() callback is called with USB_EVT_OUT "event" parameter. Your code reads out the report using USBD_API-&amp;gt;hw-&amp;gt;ReadEP(), as the HID_Ep_Hdlr( USB_EVT_OUT ) does on usbd_rom_hid_generic example, hid_generic.c&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;You may send an input report over the interrupt IN EP, using USBD_API-&amp;gt;hw-&amp;gt;WriteEP(), as the above routine does.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;Please check the following threads and let me know if this helps,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;A href="https://community.nxp.com/thread/457788"&gt;USBD API: How to use WriteEP reliably?&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;A href="https://community.nxp.com/thread/476197"&gt; timing&lt;/A&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;&lt;DIV class="" style="border: 0px; font-weight: inherit; margin: 20px 0px;"&gt;&lt;P style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;Have a nice day!&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;Sol&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV style="border: 0px; font-weight: inherit; font-size: 14px;"&gt;&lt;/DIV&gt;&lt;DIV class="" style="border: 0px; font-weight: inherit; font-size: 14px; margin: 20px 0px 0px;"&gt;&lt;DIV class="" data-comment-id="1131680" style="color: #646464; border: none; font-weight: inherit; font-size: 0.8571rem;"&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Mar 2019 16:41:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874523#M34890</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2019-03-28T16:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874524#M34891</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Sol.&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;As we mentioned earlier, we are able to get Input report using the GetReport (at the device end we hit a break point inside GerReport and also we are modifying report value inside GerReport and able to see that at the host end.) At the host side, when we use output report to send data to the device, our EPHandler gets executed and our device is able to see the output report the Host sends. &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;In Our EP handler code &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;case USB_EVT_OUT:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;We have WriteEP call after reading and the host never receives that. Do we need to use any special command at the host side to receive through interrupt endpoint Vs control?&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;We never hit a break point at our case USB_EVT_IN: despite of calling WriteEP immediately after ReadEP.&amp;nbsp; Since host never acknowledges, it is fair to assume that host is not receiving that.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;static ErrorCode_t HID_Ep_Hdlr(USBD_HANDLE_T hUsb, void *data, uint32_t event)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB_HID_CTRL_T *pHidCtrl = (USB_HID_CTRL_T *) data;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static unsigned int report_pending = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static uint8_t fail_count = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (event) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case USB_EVT_IN:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; report_pending = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case USB_EVT_OUT_NAK:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBD_API-&amp;gt;hw-&amp;gt;ReadReqEP(hUsb, pHidCtrl-&amp;gt;epout_adr, output_report, 64);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case USB_EVT_OUT:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //bns - testing some communication logic between the host and this device&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBD_API-&amp;gt;hw-&amp;gt;ReadEP(hUsb, pHidCtrl-&amp;gt;epout_adr, output_report);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (output_report[1] == 0xff)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input_report[25] = 25;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; input_report[25] = 55;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!report_pending) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; report_pending = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USBD_API-&amp;gt;hw-&amp;gt;WriteEP(hUsb, pHidCtrl-&amp;gt;epin_adr, input_report, 8);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return LPC_OK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin: 0in; margin-bottom: .0001pt; background: white;"&gt;&lt;SPAN style="font-size: 11.5pt; color: #51626f;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Mar 2019 20:32:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874524#M34891</guid>
      <dc:creator>ssudhir</dc:creator>
      <dc:date>2019-03-29T20:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874525#M34892</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please check the following thread and let me know if this helps.&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.nxp.com/thread/457788"&gt;https://community.nxp.com/thread/457788&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sol&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Apr 2019 17:16:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874525#M34892</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2019-04-02T17:16:33Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874526#M34893</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK First for all, does USB_EVT_IN event occurs every time the device sends&lt;/P&gt;&lt;P&gt;an input report to host irrespective of whether it has sent using control&lt;/P&gt;&lt;P&gt;or interrupt EP?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are experiencing something strange. We are testing different report ID&lt;/P&gt;&lt;P&gt;format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We have one simple report descriptor without any report ID or anything&lt;/P&gt;&lt;P&gt;which we took from the sample code and it looks like this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const uint8_t HID_ReportDescriptor[] = {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_UsagePageVendor(0x00),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Collection(HID_Application),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMin(0),          // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportSize(8),         // 8 bits    -- /bns 3/4 chaning&lt;/P&gt;&lt;P&gt;this to 10 from 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_INPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Input(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(HID_OUTPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Output(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_FEATURE_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Usage(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_Feature(HID_Data | HID_Variable | HID_Absolute),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_EndCollection,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When we use the above report descriptor, we do get USB_EVT_IN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, when we use the following report descriptor, the host receives&lt;/P&gt;&lt;P&gt;input report, however at the device end we never receive USB_EVT_IN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;const uint8_t HID_ReportDescriptor[] = {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_UsagePageVendor(0x45),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x00),              //name of hhe usage for the entire&lt;/P&gt;&lt;P&gt;application&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Application),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA010),            //name of the usage for the entire&lt;/P&gt;&lt;P&gt;input report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x01),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA011),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA012),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA013),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(3),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA014),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA015),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA016),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(60),       //when input length is 8 there is no&lt;/P&gt;&lt;P&gt;EV_In so changing this  from 4 to 60 total 64&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Input(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,  //end of input collection&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x02),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_ReportCount(HID_OUTPUT_REPORT_BYTES),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA020),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Output(HID_Variable),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0001),              //name of the usage for the entire&lt;/P&gt;&lt;P&gt;feature report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x03),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0002),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0003),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0004),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0005),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0xA0006),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(61),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,                 //end of feature&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        //testing another feature report with ID 4 format is the same&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x30),              //name of the usage for the entire&lt;/P&gt;&lt;P&gt;feature report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportID(0x04),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Collection(HID_Logical),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x32),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x33),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x34),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMaxS(0xF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(4),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(2),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x35),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(1),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Usage(0x36),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_LogicalMin(0), // value range: 0 - 0xFF&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                HID_LogicalMaxS(0xFF),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportSize(8),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_ReportCount(5),&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_Feature(HID_Variable| HID_Volatile),   //device might change&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,                 //end of feature&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        HID_EndCollection,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any idea?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Apr 2019 20:23:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874526#M34893</guid>
      <dc:creator>ssudhir</dc:creator>
      <dc:date>2019-04-03T20:23:15Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874527#M34894</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Any idea about this?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 09 Apr 2019 12:20:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874527#M34894</guid>
      <dc:creator>ssudhir</dc:creator>
      <dc:date>2019-04-09T12:20:33Z</dc:date>
    </item>
    <item>
      <title>Re: Getting HID Input report -  WriteEP Vs GetReport?</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874528#M34895</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I only can add the USB stack it is based on the USB 2.0 protocol standard and the EP has the same information that any, so&amp;nbsp; I am little confuse about what you want to accomplish with the report of the EP or the reading&amp;nbsp; of the EP.&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: inherit; font-size: 14px;"&gt;Have a nice day!&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: inherit; font-size: 14px;"&gt;Sol&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: inherit; font-size: 14px;"&gt;-------------------------------------------------------------------------------&lt;BR /&gt;Note:&lt;BR /&gt;- If this post answers your question, please click the "Mark Correct" button. Thank you!&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: inherit; font-size: 14px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: inherit; font-size: 14px;"&gt;- We are following threads for 7 weeks after the last post, later replies are ignored&lt;BR /&gt;Please open a new thread and refer to the closed one, if you have a related question at a later point in time.&lt;BR /&gt;-------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Apr 2019 17:46:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Getting-HID-Input-report-WriteEP-Vs-GetReport/m-p/874528#M34895</guid>
      <dc:creator>soledad</dc:creator>
      <dc:date>2019-04-15T17:46:37Z</dc:date>
    </item>
  </channel>
</rss>

