<?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>Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/831/broadcaster-observer-low-level-implementation</link><description>In one of my current projects, I need: 
 
 to have access to more than 8 kB of RAM (which is not possible when using SoftDevice) 
 to have Observer role (which apparently is not implemented in SoftDevice) 
 
 Since I don&amp;#39;t use any other functionality</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sat, 04 Oct 2014 03:44:06 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/831/broadcaster-observer-low-level-implementation" /><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4105?ContentTypeID=1</link><pubDate>Sat, 04 Oct 2014 03:44:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:82e52ea8-9c11-4e08-b94e-65a5a8a920a0</guid><dc:creator>Michael Lamming</dc:creator><description>&lt;p&gt;Did you guys get this to work ok?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4104?ContentTypeID=1</link><pubDate>Mon, 04 Aug 2014 02:39:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a726fb39-1590-4d2d-93ac-1df8ee39c3f4</guid><dc:creator>daveln</dc:creator><description>&lt;p&gt;/&lt;em&gt;LENGTH (6 bits) --&amp;gt; Length(6bits)&lt;/em&gt;/
NRF_RADIO-&amp;gt;PCNF0 |= (1 &amp;lt;&amp;lt; RADIO_PCNF0_S0LEN_Pos) | / * 1 byte  &lt;em&gt;/
(8 &amp;lt;&amp;lt; RADIO_PCNF0_LFLEN_Pos) | /&lt;/em&gt; 6 bits &lt;em&gt;/
(0 &amp;lt;&amp;lt; RADIO_PCNF0_S1LEN_Pos);  /&lt;/em&gt; 2 bits */
1)why you set 8 to RADIO_PCNF0_LFLEN_Pos, not 6?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4103?ContentTypeID=1</link><pubDate>Wed, 14 May 2014 12:56:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61436356-af12-48a5-af0b-a76c813a7397</guid><dc:creator>FormerMember</dc:creator><description>&lt;p&gt;Paulo, I guess at some point of time you were wondering why the third byte in there received data is always 0. Did you figure out why?
While playing around I found that your configuration of PCNF0 wasn&amp;#39;t correct, because you assumed wrong endianness. Here&amp;#39;s the fix.
[code type=&amp;quot;xml&amp;quot;]
/* Configure header size.
*
* The Advertise has the following format:
* RxAdd(1b) | TxAdd(1b) | RFU(2b) | PDU Type(4b) | RFU(2b) | Length(6b)
*
* And the nRF51822 RADIO packet has the following format
* (directly editable fields):
* S0 (0/1 bytes) | LENGTH ([0, 8] bits) | S1 ([0, 8] bits)
*
* We can match those fields with the Link Layer fields:
* S0 (1 byte)      --&amp;gt; PDU Type(4bits)|RFU(2bits)|TxAdd(1bit)|RxAdd(1bit)
* LENGTH (6 bits)  --&amp;gt; Length(6bits)
* S1 (0 bits)      --&amp;gt; S1(0bits)
&lt;em&gt;/
NRF_RADIO-&amp;gt;PCNF0 |= (1 &amp;lt;&amp;lt; RADIO_PCNF0_S0LEN_Pos) |  /&lt;/em&gt; 1 byte &lt;em&gt;/
(8 &amp;lt;&amp;lt; RADIO_PCNF0_LFLEN_Pos) |  /&lt;/em&gt; 6 bits &lt;em&gt;/
(0 &amp;lt;&amp;lt; RADIO_PCNF0_S1LEN_Pos);   /&lt;/em&gt; 2 bits */
[/code]&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4102?ContentTypeID=1</link><pubDate>Fri, 14 Mar 2014 15:09:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:21d24e0f-c00d-42e2-bbef-9eeda598b4b6</guid><dc:creator>Arnaud Waels</dc:creator><description>&lt;p&gt;Yes i agree it&amp;#39;s the opposite as here. I&amp;#39;m conscious low level is not trivial ! Thank you for those detailed links to doc.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4101?ContentTypeID=1</link><pubDate>Fri, 14 Mar 2014 14:55:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:225c0744-8983-4e8e-9eb5-0d4cf1100e09</guid><dc:creator>Ole Morten</dc:creator><description>&lt;p&gt;This is really the complete opposite question than here, so it would have much better off separately. However, you may have use in taking a look at the packet configuration in the example here, as that would be very similar for an advertiser. In addition, I&amp;#39;d recommend you to read the RADIO chapter of the nRF51 Reference Manual thoroughly, read the appropriate parts of the Core Specification, primarily Volume 3, Part C, section 9.1 and 11, and Volume 6, Part B, section 2.3 and 4.4, and take a look at the radio_example in the SDK, as well as this here. What you plan to do isn&amp;#39;t trivial, but should be perfectly doable if you read up a little first.&lt;/p&gt;
&lt;p&gt;If you have any further, specific questions, I&amp;#39;d recommend you to post them separately.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4100?ContentTypeID=1</link><pubDate>Fri, 14 Mar 2014 12:53:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d18725a8-b818-42b9-90f6-28b7c1bd5499</guid><dc:creator>Arnaud Waels</dc:creator><description>&lt;p&gt;Hi Ole&lt;/p&gt;
&lt;p&gt;Since &lt;a href="https://devzone.nordicsemi.com/index.php/s120-softdevice-on-nrf51822-how-to-alternate-between-scanning-and-advertising"&gt;the previous post&lt;/a&gt;, i&amp;#39;d like to implement the low level advertising part.&lt;/p&gt;
&lt;p&gt;Which one is the Nordic S110 low level library that implements low level broadcasting ?
Or is there a Nordic lib else than nrf51.h or an existing documentation that i can study as a starting point, in order to understand how S110 implements low level broadcasting ?&lt;/p&gt;
&lt;p&gt;Thanks in advance,
Arnaud&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4097?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2014 22:55:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0d9fed32-d788-4ffc-9b4b-97a8dfe01f22</guid><dc:creator>sashi</dc:creator><description>&lt;p&gt;Answering my own question.&lt;/p&gt;
&lt;p&gt;setting NRF_RADIO-&amp;gt;DATAWHITEIV = (37);  for say channel 37 does work correctly&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4096?ContentTypeID=1</link><pubDate>Tue, 28 Jan 2014 21:44:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5f6eda9f-011f-415b-8815-235579c08d7e</guid><dc:creator>sashi</dc:creator><description>&lt;p&gt;Can you post up a fixed version of your main.c.  Your posed code so far has been useful.
I&amp;#39;d like to see how you did it.
I&amp;#39;m currently setting
NRF_RADIO-&amp;gt;DATAWHITEIV = (channel &amp;lt;&amp;lt; 1) + 1;
but this doesn&amp;#39;t seem to do it. also tried setting to just the channel, as suggested below and also no sucess.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4099?ContentTypeID=1</link><pubDate>Mon, 23 Dec 2013 03:09:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:79550999-b555-495c-b9ce-f5bdea9fc2b3</guid><dc:creator>Paulo Borges</dc:creator><description>&lt;p&gt;Thank you! Setting the DATAWHITEIV register did it.&lt;/p&gt;
&lt;p&gt;About your question, no particular reason. In my current version, I already replaced all of them with functions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Broadcaster/observer low level implementation</title><link>https://devzone.nordicsemi.com/thread/4098?ContentTypeID=1</link><pubDate>Tue, 03 Dec 2013 16:07:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:200aa05b-661a-4d6a-bfe1-ddd532277c40</guid><dc:creator>Ole Morten</dc:creator><description>&lt;p&gt;Your code looks good in general, and I suspect that the only thing you&amp;#39;re missing is to set the data whitening initialization vector. See section 3.2 in the Core Specification, Volume 6, part B.&lt;/p&gt;
&lt;p&gt;Setting this on the nRF51 can be done by just setting the DATAWHITEIV register the channel number (i.e. 37 for the first advertising channel). Doing so, it seems to me that your code is working fine.&lt;/p&gt;
&lt;p&gt;Just out of curiosity, is there any particular reason you&amp;#39;re using defines instead of regular functions?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>