<?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 KSDK 2.0 USB API questions and suggestions in Kinetis Software Development Kit</title>
    <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484423#M4223</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear NXP USB developers,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all, let me just say that I'm very happy with the new KSDK 2.0 USB examples that you included. The compound keyboard + mouse example is exactly what I've been looking for. That being said, there are still a couple of issues that could be improved from the perspective of an application developer. Please let me highlight some that I noticed.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* A fair number of USB examples has a lite and non-lite (regular?) version. What is supposed to be the difference between the two? When should one be picked over the other? Is one planned to be obsoleted?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* I think the most error prone data structure is g_UsbDeviceConfigurationDescriptor by far. It's super long, weakly typed (uint8[]), and contains a multitude of different descriptors. Modifying it is like walking on a minefield. It'd be great to decompose it to multiple smaller (typed) data structures.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* I think that the API could be significantly nicer and easier to use. &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.fourwalledcubicle.com%2FLUFA.php" rel="nofollow" target="_blank"&gt;LUFA&lt;/A&gt; exposes the most beautiful USB API I've ever seen and it's a joy to work with.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Regarding the usb_device_ch9.[ch] files, what ch9 is supposed to mean?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* "Device" is often mispelled as "Devcie" across the codebase.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's pretty much all I wanted to share for now. I do understand that implementing a great API takes time and you're probably pushed to churn out features. Thank you for your hard work and keep it up!&lt;/P&gt;&lt;P&gt;- Laci&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Feb 2016 23:27:56 GMT</pubDate>
    <dc:creator>laszlomonda</dc:creator>
    <dc:date>2016-02-02T23:27:56Z</dc:date>
    <item>
      <title>KSDK 2.0 USB API questions and suggestions</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484423#M4223</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear NXP USB developers,&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;First of all, let me just say that I'm very happy with the new KSDK 2.0 USB examples that you included. The compound keyboard + mouse example is exactly what I've been looking for. That being said, there are still a couple of issues that could be improved from the perspective of an application developer. Please let me highlight some that I noticed.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* A fair number of USB examples has a lite and non-lite (regular?) version. What is supposed to be the difference between the two? When should one be picked over the other? Is one planned to be obsoleted?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* I think the most error prone data structure is g_UsbDeviceConfigurationDescriptor by far. It's super long, weakly typed (uint8[]), and contains a multitude of different descriptors. Modifying it is like walking on a minefield. It'd be great to decompose it to multiple smaller (typed) data structures.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* I think that the API could be significantly nicer and easier to use. &lt;A _jive_internal="true" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.fourwalledcubicle.com%2FLUFA.php" rel="nofollow" target="_blank"&gt;LUFA&lt;/A&gt; exposes the most beautiful USB API I've ever seen and it's a joy to work with.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* Regarding the usb_device_ch9.[ch] files, what ch9 is supposed to mean?&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;* "Device" is often mispelled as "Devcie" across the codebase.&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's pretty much all I wanted to share for now. I do understand that implementing a great API takes time and you're probably pushed to churn out features. Thank you for your hard work and keep it up!&lt;/P&gt;&lt;P&gt;- Laci&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Feb 2016 23:27:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484423#M4223</guid>
      <dc:creator>laszlomonda</dc:creator>
      <dc:date>2016-02-02T23:27:56Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK 2.0 USB API questions and suggestions</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484424#M4224</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Laci, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for the kind words and feedback. See my answers below.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;P&gt;L&amp;amp;amp;amp;aacute;szl&amp;amp;amp;amp;oacute; Monda wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dear NXP USB developers,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First of all, let me just say that I'm very happy with the new KSDK 2.0 USB examples that you included. The compound keyboard + mouse example is exactly what I've been looking for. That being said, there are still a couple of issues that could be improved from the perspective of an application developer. Please let me highlight some that I noticed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* A fair number of USB examples has a lite and non-lite (regular?) version. What is supposed to be the difference between the two? When should one be picked over the other? Is one planned to be obsoleted? &lt;STRONG&gt;[JM] The lite version of the class examples illustrates an implementation that doesn't require the overhead of the full class implementation. It's a way to achieve specific functionality using less resources. &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* I think the most error prone data structure is g_UsbDeviceConfigurationDescriptor by far. It's super long, weakly typed (uint8[]), and contains a multitude of different descriptors. Modifying it is like walking on a minefield. It'd be great to decompose it to multiple smaller (typed) data structures. &lt;STRONG&gt;[JM] I'll share this feedback with the development team. &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* I think that the API could be significantly nicer and easier to use. &lt;A class="jive-link-external-small" data-content-finding="Community" href="http://www.fourwalledcubicle.com/LUFA.php" onclick="" rel="nofollow"&gt;LUFA&lt;/A&gt; exposes the most beautiful USB API I've ever seen and it's a joy to work with.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* Regarding the usb_device_ch9.[ch] files, what ch9 is supposed to mean?&lt;STRONG&gt; [JM] CH9 is chapter 9 of the USB specification, the USB device framework.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;* "Device" is often mispelled as "Devcie" across the codebase. &lt;STRONG&gt;[JM] I'll get this added to the future improvements.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;That's pretty much all I wanted to share for now. I do understand that implementing a great API takes time and you're probably pushed to churn out features. Thank you for your hard work and keep it up!&lt;/P&gt;&lt;P&gt;- Laci&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Feb 2016 00:21:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484424#M4224</guid>
      <dc:creator>Jmart</dc:creator>
      <dc:date>2016-02-03T00:21:32Z</dc:date>
    </item>
    <item>
      <title>Re: KSDK 2.0 USB API questions and suggestions</title>
      <link>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484425#M4225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the quick reply, Jason!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please also mention LUFA to the development team. I think it should be the de-facto API for USB-capable microcontrollers given its stellar usability. Probably a lot can be learned from it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Feb 2016 00:28:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Software-Development-Kit/KSDK-2-0-USB-API-questions-and-suggestions/m-p/484425#M4225</guid>
      <dc:creator>laszlomonda</dc:creator>
      <dc:date>2016-02-03T00:28:44Z</dc:date>
    </item>
  </channel>
</rss>

