<?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>Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24672/connection-problems-with-android-7-and-sdk12-1</link><description>We have problems when connecting to a device running softdevice S132 version 3.0 with a tablet running Android 7.0. 
 When we use tablet and nRF Connect, we get Error 8 (0x8): GATT CONN TIMEOUT and Error 133 (0x85): GATT ERROR and disconnect.
Softdevice</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 07 Sep 2017 11:14:10 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24672/connection-problems-with-android-7-and-sdk12-1" /><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97102?ContentTypeID=1</link><pubDate>Thu, 07 Sep 2017 11:14:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1f9c9368-461f-411b-99e6-d963204b57b0</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;I think we can live with it for a while.&lt;/p&gt;
&lt;p&gt;But we will consider update softdevice to 5.0.0.
We will have functionality for transferring fairly large amount of data from the device, and we don&amp;#39;t want too long transfer times.&lt;/p&gt;
&lt;p&gt;Anyway thanks for helping.&lt;/p&gt;
&lt;p&gt;Regards, Jan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97106?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 13:23:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a1282416-2685-4b20-b4f9-98f73446500b</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;The side-effect is that you don&amp;#39;t support DLE. With DLE you can set the on-air packet size, and the maximum on-air packet size allowed is 255 bytes including the 4 bytes L2CAP header. This will greatly increase the data throughput for devices that support DLE. Newer devices(Android 7 and upwards) mostly support DLE. S132 v3.0 was the first SoftDevice version that added support for this.
How huge this drawback is depends on if your application need the extra throughput you can get with DLE or not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97112?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 12:32:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:283ec9c5-7045-48c3-b184-a2a0933da7a1</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;Completly disable DLE did the trick. Now it works.&lt;/p&gt;
&lt;p&gt;Does this have an side effect?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97111?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 12:14:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5c7fa977-6570-4997-8911-efa6bf027705</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Ok. Let&amp;#39;s try to disable the DLE feature completely.&lt;/p&gt;
&lt;p&gt;Add&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;err_code = sd_ble_opt_set(BLE_GAP_OPT_DLE_DISABLE, &amp;amp;opt);
APP_ERROR_CHECK(err_code);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;in the buttom of the &lt;code&gt;data_len_ext_set()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;data_len_ext_set()&lt;/code&gt; should then look like this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void data_len_ext_set(void)
{
    ret_code_t err_code;
    ble_opt_t  opt;

    memset(&amp;amp;opt, 0x00, sizeof(opt));

    opt.gap_opt.ext_len.rxtx_max_pdu_payload_size = 0;
    
    

    err_code = sd_ble_opt_set(BLE_GAP_OPT_EXT_LEN, &amp;amp;opt);
    APP_ERROR_CHECK(err_code);
    
    err_code = sd_ble_opt_set(BLE_GAP_OPT_DLE_DISABLE, &amp;amp;opt);
    APP_ERROR_CHECK(err_code);
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97110?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:54:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:32d2238c-44a3-4380-aaac-418e019617bc</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;Moving data_len_ext_set() did not help.&lt;/p&gt;
&lt;p&gt;I have already tried SDK14, and there is no problems with this. Tablet connects fine with ble_app_hrs_freertos example project from SDK14.&lt;/p&gt;
&lt;p&gt;But it is normally a pain to migrate to a new main SDK, i.e. from SDK12 to SDK14...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97104?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:45:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2ee89740-8601-4424-bb56-5aaa7dabf628</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;If it&amp;#39;s still not working, you should try to see if you have the same issue with SDK 14.0 and S132 v.5.0.0&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97103?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:42:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:642cf5a3-3b89-4364-9228-3c9e733ee861</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;The data_len_ext_set() function should have done the trick. Try to call it right before you start advertising, i.e.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;// Start execution.
NRF_LOG_INFO(&amp;quot;Heart Rate Sensor Start!\r\n&amp;quot;);
application_timers_start();
data_len_ext_set();
advertising_start();
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97107?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:26:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc850045-3dfc-41de-abb5-588cca6105c7</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;Same problem with S132 3.1.0, above changes and ble_app_hrs&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97108?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:13:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b428777-9991-4397-9d8f-05cd578effcc</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Could you test with ble_app_hrs with S132 3.1.0 and the above changes ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97105?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 11:03:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:479d0ca8-37aa-4eef-bd16-9b0cd46acf5a</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;I see the size is same now. Hex file was 339K for S132 3.0.0 and 342K for 3.1.0. nRFgo Studio reported them as same (124K). Sorry, my mistake.&lt;/p&gt;
&lt;p&gt;I have the same problem with ble_app_hrs. (I only tested with S132 3.0.0 without any changes)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97109?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 10:42:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eef82254-a03a-495f-9bf5-aea96896eb98</guid><dc:creator>Sigurd</dc:creator><description>&lt;blockquote&gt;
&lt;p&gt;SD132 v.3.1.0 is slightly larger than
v.3.0.0&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;They should both be 124 kB. SDS for 3.1 can be found &lt;a href="http://infocenter.nordicsemi.com/pdf/S132_SDS_v3.1.pdf"&gt;here&lt;/a&gt;. You should not need to change any linker configurations.&lt;/p&gt;
&lt;p&gt;Do you have the same problem with the non-freertos example, i.e. ble_app_hrs ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97101?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 10:31:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0bf2ef05-06f3-4ae7-a4e5-445d8fbb5f10</guid><dc:creator>janR</dc:creator><description>&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;I have now implemented the changes you suggested.&lt;/p&gt;
&lt;p&gt;Unfortunately this didn&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;I still have same error codes on the tablet, and SD now asserts with Id=1 and pc=0x0001A5F2&lt;/p&gt;
&lt;p&gt;I see the SD132 v.3.1.0 is slightly larger than v.3.0.0. Should Linker config settings be changed?
Currently the setting are:
.intvec start: 0x1f000
ROM start: 0x1f000
RAM start: 0x20002128&lt;/p&gt;
&lt;p&gt;I could not find any documentation for S132 v.3.1.0&lt;/p&gt;
&lt;p&gt;Regards, Jan&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Connection problems with Android 7 and SDK12.1</title><link>https://devzone.nordicsemi.com/thread/97100?ContentTypeID=1</link><pubDate>Mon, 28 Aug 2017 09:17:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:10fabdf3-34d0-421c-a7eb-d5c80ac1b098</guid><dc:creator>Sigurd</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;This is a known issue with the SM-T580. It could be that when you upgraded to Android 7.0, long MTU or DLE support was added. These Samsung Tab A tablets are known for breaking the BLE spec by sending version exchange and length request in parallel (i.e., does not wait for the peripheral to respond before sending the next control packet). Since you are using SDK12 and nRF52, I suggest that you upgrade to S132 V3.1.0 and enable compatibility mode 2. This mode enables interoperability with these types of devices. You should also disable DLE via the options API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Upgrade to 132 v.3.1.0:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;When you download S132 V3.0.1 from &lt;a href="http://www.nordicsemi.com/eng/nordic/Products/nRF52-DK/S132-SD-v3/56263"&gt;here&lt;/a&gt;. You should replace the header files in the SDK(located in the folder &lt;code&gt;SDK_folder\components\softdevice\s132\headers\&lt;/code&gt;) with the ones you download(located in folder &lt;code&gt;s132_nrf52_3.1.0\s132_nrf52_3.1.0_API\include&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enable compatibility mode 2:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ble_opt_t ble_opt;
memset(&amp;amp;ble_opt, 0, sizeof(ble_opt));

ble_opt.gap_opt.compat_mode_2.mode_2_enable = 1;

err_code = sd_ble_opt_set(BLE_GAP_OPT_COMPAT_MODE_2,&amp;amp;ble_opt); 
APP_ERROR_CHECK(err_code);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You need to call this after you have enabled the SoftDevice. I.e after &lt;code&gt;softdevice_enable()&lt;/code&gt; in &lt;code&gt;ble_stack_init()&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disable DLE via the options API:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Call this function after you have enabled the SoftDevice:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void data_len_ext_set(void)
{
    ret_code_t err_code;
    ble_opt_t  opt;

    memset(&amp;amp;opt, 0x00, sizeof(opt));

    opt.gap_opt.ext_len.rxtx_max_pdu_payload_size = 0;

    err_code = sd_ble_opt_set(BLE_GAP_OPT_EXT_LEN, &amp;amp;opt);
    APP_ERROR_CHECK(err_code);
}
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>