<?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>Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/23595/service-discovery-and-connection-delay</link><description>Hello, 
 I&amp;#39;m trying to connect as fast as possible two devices (central : 52832 S132v5 and peripheral : 51422 S130v2), for a given advertisement interval. The central will always be connected to the same kind of peripherals, all identicals. 
 Regarding</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 18 Aug 2020 14:06:59 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/23595/service-discovery-and-connection-delay" /><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/265146?ContentTypeID=1</link><pubDate>Tue, 18 Aug 2020 14:06:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4132c243-d30a-47e0-b4f6-8c9bcc327ec2</guid><dc:creator>Parabit</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;hardcoded the characteristic values in iOS, but without discovering the services I couldn&amp;#39;t read it. May I know which platform you did it (iOS or Android).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/92715?ContentTypeID=1</link><pubDate>Wed, 19 Jul 2017 11:09:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57320942-a46f-4c30-8e20-260fe033d52b</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;Great :) If I answered your question I would appreciate if you accept it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/92714?ContentTypeID=1</link><pubDate>Wed, 19 Jul 2017 11:02:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11e2043f-4919-4806-9821-a0949b89ab5b</guid><dc:creator>Guillaume76</dc:creator><description>&lt;p&gt;Thanks, it works! I also use a whitelist with sd_ble_gap_connect() to connect directly to any device I already know.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/92713?ContentTypeID=1</link><pubDate>Wed, 19 Jul 2017 10:28:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7b78198e-a399-4ca3-9af0-2aef84bdf8f4</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;If the central knows the address of the device it wants to connect to it can call sd_ble_gap_connect() directly without scanning first (sd_ble_gap_scan_start()), if not it needs to receive a advertisement from the device it wants to connect to (to collect the address).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/92717?ContentTypeID=1</link><pubDate>Tue, 18 Jul 2017 12:03:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f0a3928a-73f7-4424-9180-6eb907a30da2</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;There is mechanism defined in BT SIG Core specification for caching of static GATT Server handles, it depends on presence of Service Changed Characteristic under GATT Primary Service.&lt;/p&gt;
&lt;p&gt;Regarding connection request and advertising/scanning detection: it&amp;#39;s logical because once scanner receives broadcast on lower layers it must propagate it up to APP layer to decide what to do with it. So it needs to go out of lower stack through APIs up and then you are way out of 150us window you have for SCAN_REQ or CONNECT_REQ packets after each ADV packet is finished. So GAP Central device will wait for another ADV packet to issue CONNECT_REQ (if you decide to do it on APP layer) and therefore GAP Peripheral devices with long adv. interval provide such bad user experience (= you need to have at least 2 adv. intervals to really connect). And that&amp;#39;s why for good (fast) user experience vendors recommend to advertise as frequently as possible (e.g. old Apple BT guidelines recommend 20ms adv. interval for certain period of time).&lt;/p&gt;
&lt;p&gt;Theoretically you could implement some light-way parsing of ADV packet directly in lower stack but a) it will break all the logic of BLE stack architecture and b) it will be possible only with small logic and open source stack, not Nordic Soft Device.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Service discovery and connection delay</title><link>https://devzone.nordicsemi.com/thread/92716?ContentTypeID=1</link><pubDate>Tue, 18 Jul 2017 11:40:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aa66ad40-ca98-4b5a-8eaf-6e9e25a23cd4</guid><dc:creator>bloobird0</dc:creator><description>&lt;p&gt;First point: yes you can store the handles if you are sure that the profile is never likely to change (I did it in a project, works OK).&lt;/p&gt;
&lt;p&gt;2nd point: I don&amp;#39;t know, we miss information about how the peripheral is implemented.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>