<?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>CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/66087/cdc-acm-transmission-tx-is-broken-on-mac-os-catalina</link><description>Hello, 
 we are using nrf5 SDK version is 17.0.2 and nrf52840. 
 Our product uses nrf52840 and its USB capabilities being configured as a composite device (HID keyboard + CDC ACM). The CDC ACM is used for a custom text protocol data transmission between</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 13 Oct 2020 15:10:43 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/66087/cdc-acm-transmission-tx-is-broken-on-mac-os-catalina" /><item><title>RE: CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/thread/274719?ContentTypeID=1</link><pubDate>Tue, 13 Oct 2020 15:10:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:034aec0a-6642-4ff8-ae24-9f2f63bfd7d8</guid><dc:creator>Oleh Hordiichuk</dc:creator><description>&lt;p&gt;Joakim, thank you so much for your help and deep investigation of this.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We also tried to dig deeper and I tried to provide a minimum source code to reproduce the probelm. But eventually I&amp;#39;ve updated to 10.15.7 and my colleagues too. And it seems that the problem disappeared and it was somehow related to OS X, not Nordic\our implementation. However, other CDC ACM devices (from different vendors) worked perfectly on 10.15.6 that&amp;#39;s why we&amp;nbsp;considered it&amp;#39;s an issue in our code or SoftDevice.&lt;/p&gt;
&lt;p&gt;In any case it would be great if&amp;nbsp;USB implementation could throw some kind of error in case it&amp;#39;s stuck in NRF_BUSY forever, so the device could somehow recover or this problem could be handled by the code. However, I understand, that it might be almost impossible&amp;nbsp;without knowing the cause of such possibilities.&lt;/p&gt;
&lt;p&gt;We are going to test&amp;nbsp;on more versions in different environments to ensure this problem is not reproducing. Once we are done I&amp;#39;m going to provide an answer for this topic.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Oleh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/thread/272226?ContentTypeID=1</link><pubDate>Wed, 30 Sep 2020 10:04:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d4c68b2f-e102-4bdd-a979-54ec178a6807</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;I&amp;#39;ve been looking at this, but I&amp;#39;m unable to reproduce the issue. So I can&amp;#39;t debug it to find the reason behind the NRF_ERROR_BUSY.&lt;/p&gt;
&lt;p&gt;Have you tried debugging yourself, to find where exactly the error code is returned from?&lt;/p&gt;
&lt;p&gt;Maybe you have a minimal project that can be run from on my end, so that I can take a closer look?&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t been able to reproduce using our examples, so I&amp;#39;m guessing that it could be something with your implementation.&lt;/p&gt;
&lt;p&gt;Br, &lt;br /&gt;Joakim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/thread/270790?ContentTypeID=1</link><pubDate>Tue, 22 Sep 2020 10:34:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6674143b-1b2a-418d-9797-7c14154b4918</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Oh sorry! I wasn&amp;#39;t aware that the fix was added in the new SDK.&lt;/p&gt;
&lt;p&gt;Let me take a closer look, and see if I can find a solution to this :)&lt;/p&gt;
&lt;p&gt;Br, &lt;br /&gt;Joakim&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/thread/270589?ContentTypeID=1</link><pubDate>Mon, 21 Sep 2020 12:35:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:99f13e8e-89f8-46b9-bf02-53b47c9cd513</guid><dc:creator>Oleh Hordiichuk</dc:creator><description>&lt;p&gt;Hello Joakim,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;thank you for the suggestion. But as I mentioned we are using SDK 17.0.2 and I checked the&amp;nbsp;app_usbd_hid.c file and it already contains the changes you have suggested.&lt;/p&gt;
&lt;p&gt;So, no&amp;nbsp;this patch doesn&amp;#39;t solve the issue &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f61e.svg" title="Disappointed"&gt;&amp;#x1f61e;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Kind regards,&lt;/p&gt;
&lt;p&gt;Oleh&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: CDC ACM transmission(tx) is broken on Mac OS Catalina</title><link>https://devzone.nordicsemi.com/thread/270526?ContentTypeID=1</link><pubDate>Mon, 21 Sep 2020 09:49:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1cbef22e-54d4-43d1-9a52-6962d7300b38</guid><dc:creator>Joakim Jakobsen</dc:creator><description>&lt;p&gt;Hi.&lt;/p&gt;
&lt;p&gt;This is a known issue for us for this specific combination.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Following is a patch for the issue. Please confirm the patch solves the issue.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;diff --git a/sdk/nrf5/components/libraries/usbd/class/hid/app_usbd_hid.c b/sdk/nrf5/components/libraries/usbd/class/hid/app_usbd_hid.c
index 68dc300..51fe575 100644
--- a/sdk/nrf5/components/libraries/usbd/class/hid/app_usbd_hid.c
+++ b/sdk/nrf5/components/libraries/usbd/class/hid/app_usbd_hid.c
@@ -74,11 +74,6 @@ static uint16_t hid_sof_required(app_usbd_hid_ctx_t * p_hid_ctx, uint16_t framec
     return APP_USBD_HID_SOF_NOT_REQ_FLAG;
 }
 
-static bool hid_idle_on(app_usbd_class_inst_t const * p_inst, app_usbd_hid_ctx_t * p_hid_ctx)
-{
-    return p_hid_ctx-&amp;gt;idle_on;
-}
-
 /**
  * @brief User event handler.
  *
@@ -405,11 +400,6 @@ static ret_code_t endpoint_in_event_handler(app_usbd_class_inst_t const * p_inst
         return NRF_SUCCESS;
     }
 
-    if (!hid_idle_on(p_inst, p_hid_ctx))
-    {
-        return p_hinst-&amp;gt;p_hid_methods-&amp;gt;ep_transfer_in(p_inst);
-    }
-    else
     {
         uint8_t i = 0;
         for(i=0; i &amp;lt; APP_USBD_HID_REPORT_IDLE_TABLE_SIZE; i++)
@@ -425,8 +415,11 @@ static ret_code_t endpoint_in_event_handler(app_usbd_class_inst_t const * p_inst
                 break;
             }
         }
-        return NRF_SUCCESS;
     }
+
+    /* HID 1.11 specification states that in case the report has changed, 
+       it should be transfered immediately  even when idle is enabled. */
+    return p_hinst-&amp;gt;p_hid_methods-&amp;gt;ep_transfer_in(p_inst);
 }&lt;/pre&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Br, &lt;br /&gt;Joakim&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>