<?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>Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/24575/programming-a-fleet-of-beacons</link><description>What is the best way to go about mass programming a fleet of beacons all with unique UUIDs? Do you really have to program them one by one?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 23 Aug 2017 08:45:57 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/24575/programming-a-fleet-of-beacons" /><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96758?ContentTypeID=1</link><pubDate>Wed, 23 Aug 2017 08:45:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:96a684ef-8b87-4067-8101-87761015458f</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;@endnode I somehow overlooked your answer and only realized you already brought up FICR after I post mine :S&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96757?ContentTypeID=1</link><pubDate>Wed, 23 Aug 2017 08:28:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb6fcdd0-eb1b-4d6a-8666-12acfe8c666a</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;(always good to hear the same twice;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96756?ContentTypeID=1</link><pubDate>Wed, 23 Aug 2017 02:41:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:11f4aa5e-0a99-43e9-b5e6-d4114d8a8a3c</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;If you don&amp;#39;t want to hard code anything, there are the Factory Information Configuration Registers.
One of those registers store a Device Address randomly generated during the manufacturing process.&lt;/p&gt;
&lt;p&gt;You can access that via &lt;code&gt;NRF_FICR-&amp;gt;DEVICEADDR[0]&lt;/code&gt; and &lt;code&gt;NRF_FICR-&amp;gt;DEVICEADDR[1]&lt;/code&gt;.
You can read more about this Device Address here: &lt;a href="https://devzone.nordicsemi.com/question/6566/how-to-get-6-byte-mac-address-at-nrf51822/#6677"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;There is also a Device ID stored in those registers, as discussed in this question.
&lt;a href="https://devzone.nordicsemi.com/question/81402/what-is-the-difference-between-the-deviceid-and-deviceaddr/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is a code snippet of how I use the Device Address registers in my code for unique ID.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;scanrsp_manuf_data[2] = NRF_FICR-&amp;gt;DEVICEADDR[0] &amp;amp; 0x000000FF;
scanrsp_manuf_data[3] = (NRF_FICR-&amp;gt;DEVICEADDR[0] &amp;gt;&amp;gt; 8) &amp;amp; 0x000000FF;
scanrsp_manuf_data[4] = (NRF_FICR-&amp;gt;DEVICEADDR[0] &amp;gt;&amp;gt; 16) &amp;amp; 0x000000FF;
scanrsp_manuf_data[5] = (NRF_FICR-&amp;gt;DEVICEADDR[0] &amp;gt;&amp;gt; 24) &amp;amp; 0x000000FF;
scanrsp_manuf_data[6] = NRF_FICR-&amp;gt;DEVICEADDR[1] &amp;amp; 0x000000FF;
scanrsp_manuf_data[7] = ((NRF_FICR-&amp;gt;DEVICEADDR[1] | 0x0000C000) &amp;gt;&amp;gt; 8) &amp;amp; 0x000000FF;
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96755?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 19:42:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3505a2a8-c7ac-4c5a-85d5-468d6f472dee</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;I was surprised by different UUID, that wouldn&amp;#39;t work with GATT Clients much;) If you are fine to have major minor random then either generate them on first boot (in large sample of hundreds of thousands of beacons you should arrive to pretty much equal distro;) or steal few bytes from that FICR S/N...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96754?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 19:28:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:dc2fa76a-813d-4ce3-89ac-0f47c2a729c0</guid><dc:creator>mstewart</dc:creator><description>&lt;p&gt;I&amp;#39;m sorry.  Same UUID, but unique major/minor, although I think this answer still answers my question.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Programming a fleet of Beacons</title><link>https://devzone.nordicsemi.com/thread/96753?ContentTypeID=1</link><pubDate>Tue, 22 Aug 2017 19:20:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c6e50a25-a93c-4586-893d-ba836c17e43b</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;If you want to have UUIDs really unique then yes. Alternatively you could hard-code some UUID &amp;quot;base&amp;quot; into the FW and the rest take from S/N stored in FICR area (which isn&amp;#39;t guaranteed t be 100% unique but it&amp;#39;s randomly generated 8-byte string and so far no one has spotted any collisions;) You can either place that string into part of 128-bit UUID directly or do some hashing/concealing before...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>