<?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>Which SD and Which Roles Do I Need?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/4786/which-sd-and-which-roles-do-i-need</link><description>I&amp;#39;m just getting started with the nRF51-DK, and I&amp;#39;m still confused about which SD I need to load, and which roles I need to support aka GAP and GATT. 
 My end application will look something like this. I will have my board installed inside another device</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 23 Dec 2014 14:56:27 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/4786/which-sd-and-which-roles-do-i-need" /><item><title>RE: Which SD and Which Roles Do I Need?</title><link>https://devzone.nordicsemi.com/thread/16956?ContentTypeID=1</link><pubDate>Tue, 23 Dec 2014 14:56:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:97924df6-4324-442d-aaf4-84e82ca0a656</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;If you are in a connection, maintaining the link has high priority. If you prioritize serial communcation over maintaining the link you will most likely get a disconnect. Then you would have to connect again. If you must do your serial communication during a connection, you should do this inbetween connection events, by using the &lt;a href="http://developer.nordicsemi.com/nRF51_SDK/doc/7.1.0/s110/html/a01004.html"&gt;&lt;strong&gt;radio notification event handler&lt;/strong&gt;&lt;/a&gt; or the timeslot API (see Section 8 in the S110 SoftDevice Specification). If you are not in a connection then you might lose a few advertising packets. This is not critical, as long as you don&amp;#39;t have any tough real time requirements.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Which SD and Which Roles Do I Need?</title><link>https://devzone.nordicsemi.com/thread/16957?ContentTypeID=1</link><pubDate>Tue, 16 Dec 2014 19:13:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:00a78da2-0af7-40c2-8873-6856b774d87a</guid><dc:creator>Jeff Wormsley</dc:creator><description>&lt;p&gt;Thank you.  This was very helpful.  At the top level, the board should not need to talk to both the device and the phone at the same time, it should be more lockstep than that, but there may be lower level things going on with the radio that I don&amp;#39;t know about.  Hopefully the radio can retry, so that if I need to spend 50 or 100 ms sending a pulse to a device, the radio can recover from the interruption.  Until I get farther with the evaluation board to test these things, I won&amp;#39;t know for sure if this is a problem or not, and that&amp;#39;s probably many weeks away.&lt;/p&gt;
&lt;p&gt;Jeff.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Which SD and Which Roles Do I Need?</title><link>https://devzone.nordicsemi.com/thread/16955?ContentTypeID=1</link><pubDate>Tue, 16 Dec 2014 15:18:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc3aa132-f960-4d02-9334-86c1af57e251</guid><dc:creator>Petter Myhre</dc:creator><description>&lt;p&gt;There are four GAP roles, explained in Vol 3, Part C, Section 2.2.2 in &lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/8053.Core_5F00_v4.2.pdf"&gt;Bluetooth Core Specification 4.2&lt;/a&gt;. These are related to the different states in the link layer, see Table 2.1-&lt;/p&gt;
&lt;p&gt;A Broadcaster can only advertise, while a peripheral can advertise and be in a connection (in the slave role).&lt;/p&gt;
&lt;p&gt;Your evaluation seems correct, you need a peripheral. The phone will be a central.&lt;/p&gt;
&lt;p&gt;There are two GATT roles, explained in Vol 3, Part G, Section 2.2 in the Bluetooth Core Specification 4.2.&lt;/p&gt;
&lt;p&gt;The device with the information is usually the server while the device that wants to access the information is the client, so you evaluation seems correct again, you need a server. The phone will be a client.&lt;/p&gt;
&lt;p&gt;SoftDevice S110 is our peripheral stack, so it is suitable, and most of the SDK examples also implement a server.&lt;/p&gt;
&lt;p&gt;A peripheral can be connected to multiple centrals (phones), but not at the same time. A central can be connected to multiple peripherals at the same time.&lt;/p&gt;
&lt;p&gt;Your interrupt requirement is more complicated. If you are in a connection, maintaining the link has high priority, so some connection events need to be handled, but it is usually not a problem. If you are not in a connection, it should certainly not be a problem, but it depends on the requirements of your serial communication. If you come into trouble on this, I recommend you to raise a separate question.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>