<?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 Unable to Read BT packets in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Unable-to-Read-BT-packets/m-p/601233#M90350</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I am working on &lt;STRONG&gt;marshmallow BSP[6.0.1.2.1.0] in IMX6sl evk&lt;/STRONG&gt; board. While trying to bring up the bluetooth, I am unable to read the bt driver packet continuously, I am able to send the command from android and response is coming up to my driver but android bt is unable to read the response packet. I found this at eager_reader.c file's following function&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;static void inbound_data_waiting(void *context)&lt;/EM&gt;&lt;/STRONG&gt; {&lt;BR /&gt;&amp;nbsp; eager_reader_t *reader = (eager_reader_t *)context;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; data_buffer_t *buffer = (data_buffer_t *)reader-&amp;gt;allocator-&amp;gt;alloc(reader-&amp;gt;buffer_size + sizeof(data_buffer_t));&lt;BR /&gt;&amp;nbsp; if (!buffer) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_ERROR("%s couldn't aquire memory for inbound data buffer.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; buffer-&amp;gt;length = 0;&lt;BR /&gt;&amp;nbsp; buffer-&amp;gt;offset = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int bytes_read = read(reader-&amp;gt;inbound_fd, buffer-&amp;gt;data, reader-&amp;gt;buffer_size);&lt;BR /&gt;&amp;nbsp; if (bytes_read &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the data for later&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer-&amp;gt;length = bytes_read;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed_queue_enqueue(reader-&amp;gt;buffers, buffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Tell consumers data is available by incrementing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the semaphore by the number of bytes we just read&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventfd_write(reader-&amp;gt;bytes_available_fd, bytes_read);&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes_read == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s fd said bytes existed, but none were found.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s unable to read from file descriptor: %s", __func__, strerror(errno));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader-&amp;gt;allocator-&amp;gt;free(buffer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then I put while(1) to read the packets continuously. Packet reading is happening on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;static void inbound_data_waiting(void *context)&lt;/STRONG&gt;&lt;/EM&gt; {&lt;BR /&gt;&amp;nbsp; eager_reader_t *reader = (eager_reader_t *)context;&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt; while(1){&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* -------------&amp;gt; created by myself */&lt;/STRONG&gt; &lt;BR /&gt;&amp;nbsp; data_buffer_t *buffer = (data_buffer_t *)reader-&amp;gt;allocator-&amp;gt;alloc(reader-&amp;gt;buffer_size + sizeof(data_buffer_t));&lt;BR /&gt;&amp;nbsp; if (!buffer) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_ERROR("%s couldn't aquire memory for inbound data buffer.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; buffer-&amp;gt;length = 0;&lt;BR /&gt;&amp;nbsp; buffer-&amp;gt;offset = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int bytes_read = read(reader-&amp;gt;inbound_fd, buffer-&amp;gt;data, reader-&amp;gt;buffer_size);&lt;BR /&gt;&amp;nbsp; if (bytes_read &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the data for later&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer-&amp;gt;length = bytes_read;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed_queue_enqueue(reader-&amp;gt;buffers, buffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Tell consumers data is available by incrementing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the semaphore by the number of bytes we just read&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventfd_write(reader-&amp;gt;bytes_available_fd, bytes_read);&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes_read == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s fd said bytes existed, but none were found.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s unable to read from file descriptor: %s", __func__, strerror(errno));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader-&amp;gt;allocator-&amp;gt;free(buffer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* --------------&amp;gt; created by myself */&lt;/STRONG&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But While trying to enable the BT form GUI it is not enabled, after three iteration of same procedure, it is turned on in GUI and able to see the list available bt devices. But unable to pair with other device, while other devices trying to pair with my evb, I got assertion &lt;STRONG&gt;assert(ble_supported) &lt;/STRONG&gt;while trying to pair with evb, and GUI disable is not happening on properly. I think by default Marshmallow enables the &lt;STRONG&gt;BLE &lt;/STRONG&gt; on state machine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please tell me that how to switch it to &lt;STRONG&gt;BT&lt;/STRONG&gt; instead of turning on &lt;STRONG&gt;BLE&lt;/STRONG&gt; and avoidance of multiple iteration of GUI turn on and turn off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Vinoth P B&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Oct 2016 13:49:06 GMT</pubDate>
    <dc:creator>vinothpenati</dc:creator>
    <dc:date>2016-10-03T13:49:06Z</dc:date>
    <item>
      <title>Unable to Read BT packets</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Unable-to-Read-BT-packets/m-p/601233#M90350</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; I am working on &lt;STRONG&gt;marshmallow BSP[6.0.1.2.1.0] in IMX6sl evk&lt;/STRONG&gt; board. While trying to bring up the bluetooth, I am unable to read the bt driver packet continuously, I am able to send the command from android and response is coming up to my driver but android bt is unable to read the response packet. I found this at eager_reader.c file's following function&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;static void inbound_data_waiting(void *context)&lt;/EM&gt;&lt;/STRONG&gt; {&lt;BR /&gt;&amp;nbsp; eager_reader_t *reader = (eager_reader_t *)context;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp; data_buffer_t *buffer = (data_buffer_t *)reader-&amp;gt;allocator-&amp;gt;alloc(reader-&amp;gt;buffer_size + sizeof(data_buffer_t));&lt;BR /&gt;&amp;nbsp; if (!buffer) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_ERROR("%s couldn't aquire memory for inbound data buffer.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; buffer-&amp;gt;length = 0;&lt;BR /&gt;&amp;nbsp; buffer-&amp;gt;offset = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int bytes_read = read(reader-&amp;gt;inbound_fd, buffer-&amp;gt;data, reader-&amp;gt;buffer_size);&lt;BR /&gt;&amp;nbsp; if (bytes_read &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the data for later&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer-&amp;gt;length = bytes_read;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed_queue_enqueue(reader-&amp;gt;buffers, buffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Tell consumers data is available by incrementing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the semaphore by the number of bytes we just read&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventfd_write(reader-&amp;gt;bytes_available_fd, bytes_read);&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes_read == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s fd said bytes existed, but none were found.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s unable to read from file descriptor: %s", __func__, strerror(errno));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader-&amp;gt;allocator-&amp;gt;free(buffer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then I put while(1) to read the packets continuously. Packet reading is happening on.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;static void inbound_data_waiting(void *context)&lt;/STRONG&gt;&lt;/EM&gt; {&lt;BR /&gt;&amp;nbsp; eager_reader_t *reader = (eager_reader_t *)context;&lt;BR /&gt;&amp;nbsp;&lt;STRONG&gt; while(1){&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* -------------&amp;gt; created by myself */&lt;/STRONG&gt; &lt;BR /&gt;&amp;nbsp; data_buffer_t *buffer = (data_buffer_t *)reader-&amp;gt;allocator-&amp;gt;alloc(reader-&amp;gt;buffer_size + sizeof(data_buffer_t));&lt;BR /&gt;&amp;nbsp; if (!buffer) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_ERROR("%s couldn't aquire memory for inbound data buffer.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; buffer-&amp;gt;length = 0;&lt;BR /&gt;&amp;nbsp; buffer-&amp;gt;offset = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; int bytes_read = read(reader-&amp;gt;inbound_fd, buffer-&amp;gt;data, reader-&amp;gt;buffer_size);&lt;BR /&gt;&amp;nbsp; if (bytes_read &amp;gt; 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Save the data for later&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buffer-&amp;gt;length = bytes_read;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fixed_queue_enqueue(reader-&amp;gt;buffers, buffer);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Tell consumers data is available by incrementing&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the semaphore by the number of bytes we just read&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eventfd_write(reader-&amp;gt;bytes_available_fd, bytes_read);&lt;BR /&gt;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (bytes_read == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s fd said bytes existed, but none were found.", __func__);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOG_WARN("%s unable to read from file descriptor: %s", __func__, strerror(errno));&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; reader-&amp;gt;allocator-&amp;gt;free(buffer);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;}&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;/* --------------&amp;gt; created by myself */&lt;/STRONG&gt;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But While trying to enable the BT form GUI it is not enabled, after three iteration of same procedure, it is turned on in GUI and able to see the list available bt devices. But unable to pair with other device, while other devices trying to pair with my evb, I got assertion &lt;STRONG&gt;assert(ble_supported) &lt;/STRONG&gt;while trying to pair with evb, and GUI disable is not happening on properly. I think by default Marshmallow enables the &lt;STRONG&gt;BLE &lt;/STRONG&gt; on state machine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please tell me that how to switch it to &lt;STRONG&gt;BT&lt;/STRONG&gt; instead of turning on &lt;STRONG&gt;BLE&lt;/STRONG&gt; and avoidance of multiple iteration of GUI turn on and turn off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Vinoth P B&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2016 13:49:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Unable-to-Read-BT-packets/m-p/601233#M90350</guid>
      <dc:creator>vinothpenati</dc:creator>
      <dc:date>2016-10-03T13:49:06Z</dc:date>
    </item>
    <item>
      <title>Re: Unable to Read BT packets</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Unable-to-Read-BT-packets/m-p/601234#M90351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Vinoth&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please check murata android guide&lt;/P&gt;&lt;P&gt;&lt;A href="http://wireless.murata.com/datasheet?/RFM/data/murata_quick_start_guide_android.pdf"&gt;http://wireless.murata.com/datasheet?/RFM/data/murata_quick_start_guide_android.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;also one can get support from murata registering on&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://wireless.murata.com/eng/products/rf-modules-1/wi-fi-bluetooth-for-nxp-i-mx.html" title="http://wireless.murata.com/eng/products/rf-modules-1/wi-fi-bluetooth-for-nxp-i-mx.html"&gt;Wi-Fi Bluetooth for NXP i.MX | RF Modules | Wireless Products | Murata Manufacturing | Murata Manufacturing&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2016 00:46:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Unable-to-Read-BT-packets/m-p/601234#M90351</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2016-10-04T00:46:23Z</dc:date>
    </item>
  </channel>
</rss>

