<?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>Reduce connection establish time</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/22323/reduce-connection-establish-time</link><description>Hello, 
 i have a BLE Peripheral that has a service that we use to simulate UART over BLE. Very similar to the nRF UART. I consider the time to establish a link that allows to send asynchronous data to be quite high. I&amp;#39;m using an android device to setup</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 24 May 2017 13:45:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/22323/reduce-connection-establish-time" /><item><title>RE: Reduce connection establish time</title><link>https://devzone.nordicsemi.com/thread/87766?ContentTypeID=1</link><pubDate>Wed, 24 May 2017 13:45:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab81c24e-68a0-4fe5-8418-31d6b870450e</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Oh yes, this is kind of known thing. The only mitigations seems to be:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the shortest adv. interval possible (to increase chance that GAP Central will connect).&lt;/li&gt;
&lt;li&gt;Use as high scanning duty cycle as possible (on GAP Central side to increase chance that advertising packet will be detected).&lt;/li&gt;
&lt;li&gt;Avoid any LL/L2CAP/ATT otpional procedures like PDU or ATT_MTU extension, specification version exchange etc.&lt;/li&gt;
&lt;li&gt;Do as small GATT Server as possible (minimum of GATT Primary Service, GAP Primary Service and your own single Proprietary Primary Service with as few Chars/Descriptors as possible).&lt;/li&gt;
&lt;li&gt;Make GATT Server static (= avoid exposing Service Changed Characteristic) so GATT Client may cache it and skip GATT Service discovery procedure next time.&lt;/li&gt;
&lt;li&gt;Use GATT Service Discovery caching on GATT Client side if possible.&lt;/li&gt;
&lt;li&gt;Avoid Security Manager procedures such as pairing/bonding unless you really need them.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As you can see not many things are in your hands on high-level systems such as mobile and desktop platforms (iOS, Android, Windows, MacOS, Linux...) That&amp;#39;s why this usually leads to designing simple GATT Profile with all security and fragmentation/flow/scalability management done on APP layer and also often sticking with default PDU and ATT_MTU sizes (because their gain on throughput is only visible for long connections and transfers - which seems not your problem if you care about connection times;). But maybe this is 2-3 years old approach and modern BT 4.2/5.0 devices will use new tricks how to overcome this problem (I&amp;#39;m curious to learn!).
As you can see&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>