<?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>Relay Defination and Question</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/22349/relay-defination-and-question</link><description>Hey,
Just had a quick question... I was doing the Relay example and I don&amp;#39;t totally understand what a &amp;quot;relay&amp;quot; is. Can you explain what the purpose and usage of relay is for? 
 On the same note, if my prediction is correct about what a relay is, is it</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 06 Jun 2017 15:52:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/22349/relay-defination-and-question" /><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87857?ContentTypeID=1</link><pubDate>Tue, 06 Jun 2017 15:52:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b337a7fa-a512-484f-a0fd-7988a4a4cabd</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Oh, this sounds confusing. First Peripheral never connects to Central, it&amp;#39;s the other way around;) Yes, Peripheral might trigger Central by specific advertising but it&amp;#39;s always on Central side what scanning parameters and decision logic it has implemented. To the rest of your question: hard to imagine what exact changes and in what file you need (always talking about source code on the forum is kind of confusing as source code is hard to talk about, you need to see it;) but if you are not OK with the example as is (meaning it doesn&amp;#39;t do what you want) then surely you need to modify it;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87856?ContentTypeID=1</link><pubDate>Tue, 06 Jun 2017 15:45:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a43322c4-2584-40fd-94a8-a9eddbee29ff</guid><dc:creator>binhnguyens</dc:creator><description>&lt;p&gt;in doing so, getting the relay to be an extender.... and having peripheral connect directly to central, i would have to change the FW. Do you think I would have to change the main c or would I have to enter to the GATT server&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87854?ContentTypeID=1</link><pubDate>Fri, 26 May 2017 15:36:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2405c36-b6d3-42d2-9c89-f4f88de279fc</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;It should be visible from the picture in the link: &amp;quot;relay&amp;quot; in this example is connecting to two different devices (GATT Servers - doesn&amp;#39;t really matter if they are GAP Peripheral or Central but I guess they are traditionally GAP Peripherals hence &amp;quot;relay&amp;quot; plays GAP Central towards both of them) and offers their services to third device on the &amp;quot;other&amp;quot; side (being GATT Server, again doesn&amp;#39;t matter much if GAP Peripheral or Central but I guess it keeps traditional &amp;quot;GATT Server + GAP Peripheral&amp;quot; scheme). So to be simple &amp;quot;range extender&amp;quot; you need simply one connection on each side, it should be easy to modify the FW (it might even work like that out of the box: simply if it sees only one GAP Peripheral + GATT Server then it connects to it and offers on the &amp;quot;other&amp;quot; side).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87855?ContentTypeID=1</link><pubDate>Fri, 26 May 2017 15:12:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f9fb396-4beb-4233-a355-83a8a43ab3fc</guid><dc:creator>binhnguyens</dc:creator><description>&lt;p&gt;Hey endnode, I really appreciate your responses. They&amp;#39;re very helpful&lt;/p&gt;
&lt;p&gt;Can you explain what a &amp;quot;service collector&amp;quot; is and what the example you tagged me in is?&lt;/p&gt;
&lt;p&gt;I&amp;#39;m assuming the two peripherals are transmitting their data into the collector so you can read both at once. To change it to a range extender then I would have to turn one of the peripherals into a central.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87853?ContentTypeID=1</link><pubDate>Fri, 26 May 2017 10:00:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bc13d2da-2861-4682-bb36-069316ad82cd</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Sure there is example of relay on GATT layer which works as &amp;quot;service collector&amp;quot; but in principle it could work as range extender as well. See it in &lt;a href="http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk5.v12.3.0/ble_sdk_app_rscs_relay.html?cp=4_0_1_4_2_1_1"&gt;nRF5 SDK&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87852?ContentTypeID=1</link><pubDate>Thu, 25 May 2017 18:53:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:196e1fb5-2c2b-427f-89e9-409fd5938bd8</guid><dc:creator>binhnguyens</dc:creator><description>&lt;p&gt;this is great! thanks for the response :)
is there an example code that I could refer to to modify and use to be the intended range extension?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Relay Defination and Question</title><link>https://devzone.nordicsemi.com/thread/87851?ContentTypeID=1</link><pubDate>Thu, 25 May 2017 16:12:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:aeec7548-dc11-41e7-9f5b-81dcae0e7db8</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Yes, relay basically extends the link in general, now there might be differen types of relays depending on what layer and how they do the job. Your question &amp;quot;can I relay GATT Handle Value Notification or Write command&amp;quot; the answer is yes. You can do &amp;quot;relay&amp;quot; which on one side will look like &amp;quot;client&amp;quot; (&lt;code&gt;\examples\ble_central\experimental\ble_app_blinky_c&lt;/code&gt;) on one side (so it can connect to BLE blinky example) and &amp;quot;server&amp;quot; (&lt;code&gt;examples\ble_peripheral\experimental_ble_app_blinky&lt;/code&gt;) on the other. Typical life-cycle of such &amp;quot;relay&amp;quot; would be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Boot and scan for devices advertising LED Service availability (= BLE Blinky peripherals).&lt;/li&gt;
&lt;li&gt;Once suitable Peripheral is found connect to it.&lt;/li&gt;
&lt;li&gt;Once connection and GATT Service Discovery passes start second GAP role, this time Peripheral (and advertise LED Service capability). Wait for any Central to connect.&lt;/li&gt;
&lt;li&gt;Once some Central connects it can write/read LED Service handles and &amp;quot;relay&amp;quot; will just mirror these actions on the other link.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It can be malicious relay, or intended range extension (on GATT layer instead of doing some simple repeating on Link Layer) or you can even &amp;quot;aggregate&amp;quot; several servers or clients and control numerous LED Service devices at once or even be processing commands from several &amp;quot;masters&amp;quot; commanding LED Service device(s).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>