<?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>BLE_GAP_SEC_STATUS_TIMEOUT after connecting to iOS devices</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/79902/ble_gap_sec_status_timeout-after-connecting-to-ios-devices</link><description>Hello, 
 
 we have a system utilizing a nrf52840, running a S140 softdevice and nRF5 SDK v15.0.0. We are already on the market and currently do only support android. Till now, we never experienced any problems when connecting to android device. However</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 24 Sep 2021 10:17:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/79902/ble_gap_sec_status_timeout-after-connecting-to-ios-devices" /><item><title>RE: BLE_GAP_SEC_STATUS_TIMEOUT after connecting to iOS devices</title><link>https://devzone.nordicsemi.com/thread/331030?ContentTypeID=1</link><pubDate>Fri, 24 Sep 2021 10:17:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:870ca938-5b2f-425a-b56b-4fd8393b2077</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;There is no good way to force the iOS&amp;nbsp;device to encrypt the link or not, it will do it as it sees fit (if allready bonded or needing to access a peripheral with higher security level than currently used). So I agree you continue to call&amp;nbsp;pm_conn_secure() secure then, so that you get the desired behavior with Android. And then also handle BLE_GAP_SEC_STATUS_TIMEOUT specifically, simply by ignoring it like you write. It is not an error, but just means that the central decided to ignore the request, so that is OK.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE_GAP_SEC_STATUS_TIMEOUT after connecting to iOS devices</title><link>https://devzone.nordicsemi.com/thread/330899?ContentTypeID=1</link><pubDate>Thu, 23 Sep 2021 14:47:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:078d14e0-72d9-4b13-8909-e7c1fdb2f8c9</guid><dc:creator>BjoernSchmitz</dc:creator><description>&lt;p&gt;Hi Einar,&lt;/p&gt;
&lt;p&gt;thank you for the quick response. Yes &lt;span&gt;pm_conn_secure seems to actually cause the issue.&amp;nbsp;It seems that, when connecting to a bonded iOS device, the central secures the connection automatically, and my one request to secure the connection times out. This does not seem to happen on Android.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The thing is, I would really like to force the central to secure the connection, thus my current solution would be to call&amp;nbsp;pm_conn_secure anyway, ignore the BLE_GAP_EVT_AUTH_STATUS event and use the&amp;nbsp;PM_EVT_CONN_SEC_FAILED from the peer manager to trigger a disconnect. Do you see any problem with that? This seems to solve my problems since this event only occurs if securing the connection actually failed.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: BLE_GAP_SEC_STATUS_TIMEOUT after connecting to iOS devices</title><link>https://devzone.nordicsemi.com/thread/330846?ContentTypeID=1</link><pubDate>Thu, 23 Sep 2021 12:29:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:88e8d53e-7d5a-4ff2-90a5-fd094a3ea43c</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi Björn,&lt;/p&gt;
&lt;p&gt;I assume this happens after a call to&amp;nbsp;pm_conn_secure? If the procedure times out, you will get the BLE_GAP_SEC_STATUS_TIMEOUT event. See snippet from API doc:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt; *          If the connection is a slave connection, the function sends a security request to
 *          the peer (master). It is up to the peer then to initiate pairing or encryption.
 *          If the peer ignores the request, a @ref BLE_GAP_EVT_AUTH_STATUS event occurs
 *          with the status @ref BLE_GAP_SEC_STATUS_TIMEOUT. Otherwise, the peer initiates
 *          security, in which case things happen as if the peer had initiated security itself.
 *          See @ref PM_EVT_CONN_SEC_START for information about peer-initiated security.&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;In that case, I suggest you simply do not call it. The central should secure the link if/when needed.&lt;/p&gt;
&lt;p&gt;Einar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>