<?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>Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/86016/pairing-specific-pairs-among-many</link><description>Hello, we&amp;#39;re trying to make products using BLE with nRF52840(central) and nRF52833(peripheral). 
 
 We did make custom boards and also made a program that once paired(bonded), it won&amp;#39;t connect with others. 
 (eg, once nRF52840 and nRF52833 is paired,</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 18 Mar 2022 09:30:53 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/86016/pairing-specific-pairs-among-many" /><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358990?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2022 09:30:53 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08130d05-5347-41d1-9032-886b74bdc194</guid><dc:creator>Einar Thorsrud</dc:creator><description>[quote user="June20"]Does pairing/bonding affect power consumption?[/quote]
&lt;p&gt;The pairing procedure can consume a bit of power, especially if you use LESC. But this is a one time operation. Using encrypted packets on the link does not contribute significantly to power consumption.&lt;/p&gt;
[quote user="June20"]Can you please add rough code of central whitelisting just in case I decide to add IRK address please?[/quote]
&lt;p&gt;If you want to use IRK (to use resolvable private address), then you need to bond. There are examples of bonding and whitelisting as central, for instance &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/ble_sdk_app_gatts.html"&gt;GATT Service Server Example Application&lt;/a&gt;. If you want to use resolvable address (in any role), you can refer to &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/39921/how-to-set-my-nrf-device-to-use-the-private-resolvable-address/154899#154899"&gt;this post&lt;/a&gt;.&lt;/p&gt;
[quote user="June20"]I planning to change this thread into public since I didn&amp;#39;t post my code, is it ok?[/quote]
&lt;p&gt;Yes, that is more than OK. Public threads are preferable &lt;span class="emoticon" data-url="https://devzone.nordicsemi.com/cfs-file/__key/system/emoji/1f642.svg" title="Slight smile"&gt;&amp;#x1f642;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358989?ContentTypeID=1</link><pubDate>Fri, 18 Mar 2022 06:55:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ecb78709-182c-444a-bdb7-c76e5e9bd32c</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;I guess I&amp;#39;ll leave it on in case of no-address.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Does pairing/bonding affect power consumption?&lt;/p&gt;
&lt;p&gt;Can you please add rough code of central whitelisting just in case I decide to add IRK address please?&lt;/p&gt;
&lt;p&gt;I planning to change this thread into public since I didn&amp;#39;t post my code, is it ok?&lt;/p&gt;
&lt;p&gt;Seriously, those sample codes you added for peripheral was really helpful because sorting out APIs based on limited examples are VERY difficult, especially when functions&amp;#39; name are different based on SDK or version.&lt;/p&gt;
&lt;p&gt;Always, thank you&amp;nbsp;for answering.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358988?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 12:49:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a282b9c0-564b-4823-9452-b5539f9ceba9</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="June20"]with whitelist and filter added, is bonding/pairing necessary? Can I get rid of both? I want to reduce connection time .[/quote]
&lt;p&gt;That depends on your goal. With whitelisting, you ensure that only whitelisted peers can be connected. This is not related to pairing/bonding (other than in the cases where the devices use a resolvable address, the peer needs the IRK which it gets when bonding).&lt;/p&gt;
&lt;p&gt;However, the primary point of pairing/bonding is to establish an encryption key that is used to encrypt the link. If you only whitelist, you will not have this, and anyone can listen in on the communication. Also, with bonding, some state information&amp;nbsp;like the services etc. is stored between connections, and this is sometimes useful. If you only want to ensure that two specific devices can connect, and don&amp;#39;t care about&amp;nbsp;the other things (most notably encryption), then using only whitelisting is fine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358987?ContentTypeID=1</link><pubDate>Thu, 17 Mar 2022 01:19:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:433e9225-2b36-44c2-a00c-13c38699ae12</guid><dc:creator>June20</dc:creator><description>[quote user="eith"] Remove the pm_* calls, and add code handling the whitelis manually, just like in the peripheral example I showed yesterday.[/quote]
&lt;p&gt;I was asking for help on this part because central/scanner&amp;#39;s API seems very different. Is&amp;nbsp;sd_ble_gap_whitelist_set() enough for adding whitelist? A bit confusing because you added whitelist before advertising start and added again(?) during&amp;nbsp;BLE_ADV_EVT_WHITELIST_REQUEST (which can be handled with&amp;nbsp;&lt;span&gt;ble_advertising_whitelist_reply)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Will adding whitelist with&amp;nbsp;sd_ble_gap_whitelist_set() be enough before scanning? In whitelist_req and whitelist_load, there seems nothing but&amp;nbsp;nrf_ble_scan_params_set() if I remove all pm_* and peer_*.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;About the filter part, assuming peripheral is using whitelist with specific address (though BLE_GAP_ADDR_TYPE_RANDOM_STATIC), will there be any trouble connecting each other?&lt;/p&gt;
&lt;p&gt;I know this one is bizarre, can gap address change or different when it is connected? I read ble address then added it UICR to connect it immediately but central&amp;#39;s&amp;nbsp;NRF_BLE_SCAN_EVT_CONNECTED is displaying totally different address when attempting to connect(then get disconnected).&lt;/p&gt;
&lt;p&gt;EDIT: &lt;span style="text-decoration:line-through;"&gt;I did try filter on the central&amp;#39;s side (disabled whitelist) while peripheral whitelist enabled. The problem still persisting is&amp;nbsp;NRF_BLE_SCAN_EVT_CONNECTED - it is displaying different address then what I set on address filter. Funny thing is I&amp;#39;m getting&amp;nbsp;NRF_BLE_SCAN_EVT_FILTER_MATCH.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;I tried disabling whitelist on peripheral&amp;#39;s side and it got connected this time. The problem is that the connected address is displaying totally&amp;nbsp;different address ( I added nrf_log_info of&amp;nbsp;p_ble_evt-&amp;gt;evt.gap_evt.params.connected.peer_addr.addr on&amp;nbsp;BLE_GAP_EVT_CONNECTED. Like central&amp;#39;s case, it is displaying totally different address).&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;address difference eg:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;Central&amp;#39;s device address (NRF_FICR-&amp;gt;DEVICEADDR[0,1]):&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;(hex) B331 9540 C817&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;(bin) 1011 0011 0011 0001 1001 0101 0100 0000 1100 1000 0001 0111&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;What peripheral is connected to&amp;nbsp;(p_ble_evt-&amp;gt;evt.gap_evt.params.connected.peer_addr.addr[0~5]):&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration:line-through;"&gt;(hex) 4095 31B3 17C8&lt;/span&gt;&lt;br /&gt;&lt;span style="text-decoration:line-through;"&gt;(bin) 0100 0000 1001 0101 0011 0001 1011 0011 0001 0111 1100 1000&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;EDIT2: I found interesting pattern looking at both device: address array&amp;nbsp;123456 turns into 432165. Is it intended? does it affect filter and whitelist?&lt;/p&gt;
&lt;p&gt;EDIT3: Holy Christ! I&amp;#39;ve been doing it wrong! after arranging peripheral&amp;#39;s whitelist address in order/pattern I found, it worked! Scanner&amp;#39;s filter address order is the same but peripheral&amp;#39;s whitelist address has to be rearranged.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;My Question changes: with whitelist and filter added, is bonding/pairing necessary? Can I get rid of both? I want to reduce connection time .&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358986?ContentTypeID=1</link><pubDate>Wed, 16 Mar 2022 09:42:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4b95f61e-7c8c-4d9f-b753-5b7d7615ebda</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="June20"]&lt;p&gt;Edit: Central looks very tricky. hrs_c has whitelist-ing stuffs but it&amp;#39;s related to peers&lt;/p&gt;
&lt;p&gt;pm_peer_id_t says it is uint16_t, how does it carry whitelist data??&lt;/p&gt;
&lt;p&gt;does central has something like&amp;nbsp;ble_advertising_whitelist_reply()?&lt;/p&gt;
&lt;p&gt;my central&amp;#39;s&amp;nbsp;NRF_BLE_SCAN_EVT_CONNECTED display totally different ble address compare to my peripheral&amp;#39;s device address(NRF_FICR-&amp;gt;DEVICEADDR[0,1]),&lt;span&gt;&amp;nbsp;&lt;/span&gt;is it&lt;span&gt;&amp;nbsp;&lt;/span&gt;possible?&lt;/p&gt;[/quote]
&lt;p&gt;Just as with peripherals, you don&amp;#39;t need the peer manager to whitelist addresses. You can do it manually. But for a central this is related to scanning, and not advertising. Also as with the peripheral examples, you can see how it is done with the peer manager, but just replace the peer manager calls to get the whitelist from the peer manager with a whitelist you make yourself (which is just a list of addresses). I understand you already have referred to examples\ble_central\ble_app_hrs_c\main.c, and that is a good reference. Here you have the whitelist being handled mostly in the&amp;nbsp;whitelist_load() and&amp;nbsp;on_whitelist_req() functions. Remove the pm_* calls, and add code handling the whitelis manually, just like in the peripheral example I showed yesterday.&lt;/p&gt;
&lt;p&gt;Another point though is that whitelisting might not be relevant on the central.&amp;nbsp;It is mostly useful when using IRKs as then the stack will handle address resolution etc. for you. If you just have a specific &lt;em&gt;static&lt;/em&gt; address you want to connect to, then you can simply select to connect to that address. If you look at the scan_init() implementation in the same example you can see it filters on different things. You can simply filter on the address, and that is that.&lt;/p&gt;
[quote user="June20"]&lt;p&gt;Peripheral&amp;#39;s side doesn&amp;#39;t respond much but central&amp;#39;s side constantly find connection and get disconnected for reason 2 and 3e&lt;/p&gt;
&lt;p&gt;what does it mean unknown connection identifier?&lt;/p&gt;
&lt;p&gt;I believe BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHEDd is due to constantly trying to connect?&lt;/p&gt;[/quote]
&lt;p&gt;I guess this is with the whitelisting code? That has whitelisted a device I used to test, so you need to change the hard coded address to use another device.&amp;nbsp;BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHED (0x3e) is the expected disconnect reason when trying to connect with a device that use whitelist and you are not in it. That is because the peripheral will simply ignore connections from a central that is not in the whitelist. I am not sure why/where you would see&amp;nbsp;BLE_HCI_STATUS_CODE_UNKNOWN_CONNECTION_IDENTIFIER (2), though..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358985?ContentTypeID=1</link><pubDate>Wed, 16 Mar 2022 02:12:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2acb457b-fc21-4fd2-853b-958bff89f3e3</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;Perfect!&lt;/p&gt;
&lt;p&gt;Could you be so kind to do another one for central/scanner please?&lt;/p&gt;
&lt;p&gt;Edit: Central looks very tricky. hrs_c has whitelist-ing stuffs but it&amp;#39;s related to peers&lt;/p&gt;
&lt;p&gt;pm_peer_id_t says it is uint16_t, how does it carry whitelist data??&lt;/p&gt;
&lt;p&gt;does central has something like&amp;nbsp;ble_advertising_whitelist_reply()?&lt;/p&gt;
&lt;p&gt;my central&amp;#39;s&amp;nbsp;NRF_BLE_SCAN_EVT_CONNECTED display totally different ble address compare to my peripheral&amp;#39;s device address(NRF_FICR-&amp;gt;DEVICEADDR[0,1]),&lt;span&gt;&amp;nbsp;&lt;/span&gt;is it&lt;span&gt;&amp;nbsp;&lt;/span&gt;possible?&lt;/p&gt;
&lt;p&gt;Also,&lt;/p&gt;
&lt;p&gt;Peripheral&amp;#39;s side doesn&amp;#39;t respond much but central&amp;#39;s side constantly find connection and get disconnected for reason 2 and 3e&lt;/p&gt;
&lt;p&gt;what does it mean unknown connection identifier?&lt;/p&gt;
&lt;p&gt;I believe BLE_HCI_CONN_FAILED_TO_BE_ESTABLISHEDd is due to constantly trying to connect?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358984?ContentTypeID=1</link><pubDate>Tue, 15 Mar 2022 13:03:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c5f8731d-fa16-4c05-bb8c-cdf9b03f544a</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi Joon,&lt;/p&gt;
&lt;p&gt;None of the pm_* APIs are relevant if you don&amp;#39;t use bonding. I referred to&amp;nbsp;pm_whitelist_get() just to see where it gets the whitelist (which is simply a list of addresses) from the peer manager and how to use it.&lt;/p&gt;
&lt;p&gt;You can see a very simple way to do whitelisting manually here:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/cfs-file/__key/communityserver-discussions-components-files/4/1682.main.c.diff"&gt;devzone.nordicsemi.com/.../1682.main.c.diff&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(this is not very elegant as I just did minimal changes needed for the HRS example without caring about code duplication. As you can see if you compare with the HID mouse example it is basically the same thing, just that you provide the list of addresses (or just one address in this case) yourself instead of getting it from the peer manager.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358983?ContentTypeID=1</link><pubDate>Mon, 14 Mar 2022 08:43:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0b23b7c3-dc71-4276-90cc-532ab826d9ec</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;Thanks for the reply&lt;/p&gt;
&lt;p&gt;I will be using nRF52840 and nRF52833 so I don&amp;#39;t think I will use IRK.&lt;/p&gt;
&lt;p&gt;peripheral/ble_app_hids_keyboard has case&amp;nbsp;BLE_ADV_EVT_WHITELIST_REQUEST: and pm_whitelist_get, but not pm_whitelist_set. pm_whitelist_set has weird parameter which is&amp;nbsp;pm_peer_id_t also uint16_t. I don&amp;#39;t think the parameter has to do with ble address (48bit or 6byte + BLE_GAP_ADDR_TYPE_RANDOM_STATIC).&lt;/p&gt;
&lt;p&gt;I did stumble upon&amp;nbsp;sd_ble_gap_whitelist_set() but it did not affect&amp;nbsp;pm_whitelist_get().&lt;/p&gt;
&lt;p&gt;Can you tell me how to add whitelist manually using address?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;EDITS:&lt;/p&gt;
&lt;p&gt;sample of code will be very nice, I can&amp;#39;t really pull much from s140 hids keyboard BLE_ADV_EVT_WHITELIST_REQUEST.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358982?ContentTypeID=1</link><pubDate>Fri, 11 Mar 2022 09:22:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:eb6c5ebf-5672-49dd-b9d1-43aa3ff307af</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user="June20"]I guess if I increase whitelist, the FDS part will increase too.[/quote]
&lt;p&gt;The whitelist itself does not rely on FDS. But you need to store the information somewhere, and the most typical use case is to whitelist bonded peers. Those are stored in FDS (by the peer manager). The FDS pages are determined by sdk_config.h though, so this is static. It is just that the more data you have, the more of the allocated space you use. You can read more about FDS &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_fds.html"&gt;here&lt;/a&gt; if that is relevant.&lt;/p&gt;
[quote user="June20"]About whitelist, I can&amp;#39;t find much about whitelist create in SDK 17.1.0 version. Is there a way to create a whitelist without connection/pairing/bonding? (I have other address for connection)[/quote]
&lt;p&gt;Yes, even though the SDK examples use bonding, you can do it with a raw address as well. Note one important point, though. Phones typically use resolvable addresses, and you only get the identity resolution key (IRK) via bonding. So whitelisting will not work properly with phones unless you bond with them. That said, to use whitelisting with specific addresses you build the whitelist yourself instead of using the peer manager (pm_whitelist_get()). So if you search for&amp;nbsp;BLE_ADV_EVT_WHITELIST_REQUEST you can see where the&amp;nbsp;whitelist is provided to the BLE stack, and this is where you need to insert your &amp;quot;manually&amp;quot; built whitelist instead.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358981?ContentTypeID=1</link><pubDate>Fri, 11 Mar 2022 03:01:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:df8cf6c5-e19b-4fab-a5ce-50e1e7375d6d</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;Thanks for the answer.&lt;/p&gt;
&lt;p&gt;I guess if I increase whitelist, the FDS part will increase too.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;About whitelist, I can&amp;#39;t find much about whitelist create in SDK 17.1.0 version. Is there a way to create a whitelist without connection/pairing/bonding? (I have other address for connection)&lt;/p&gt;
&lt;p&gt;Old version SDK has pm_whitelist_create but newer version does not.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358980?ContentTypeID=1</link><pubDate>Thu, 10 Mar 2022 07:46:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:75566090-c4e9-4b71-86de-936b020b7b02</guid><dc:creator>Einar Thorsrud</dc:creator><description>[quote user="June20"]I didn&amp;#39;t really used any FDS, is it from SoftDevice?[/quote]
&lt;p&gt;No, the SoftDevice does not use FDS (or persistent flash storage of any kind). However, the peer manager, which is responsible for pairing and bonding use FDS to store bonds. So if you are using the peer manager, you are using FDS. The number of FDS pages are configured in sdk_config.h (default in moste examples are 3, and absolute minimum is 2).&lt;/p&gt;
[quote user="June20"] Since BLE central can use filter, is there a way for peripheral to filter scanners (by ble address/name/etc.)?[/quote]
&lt;p&gt;For&amp;nbsp;peripherals it is a bit different, as it is the central that connects. However, whitelisting is also a concept on the peripheral side. If you advertise with whitelist, only peers that are in the whitelist are allowed to connect. Connections from other centrals are&amp;nbsp;automatically dropped by the stack. This only allows you to filter on address, though. If you need to filter on something else (like name), then you must allow it to connect, read whatever information you want to check, and disconnect if that does not match your criteria.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358979?ContentTypeID=1</link><pubDate>Thu, 10 Mar 2022 05:11:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:791593c1-1312-4a67-8e70-5e65d691768a</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;The third area at top I was talking about was 0xFD000 ~ 0xFD007 (8byte). I think you&amp;#39;re right, Flash Storage - NRF_FSTORAGE_ DEF from info center mentions 0xFD000 address (though mine from fds.c doesn&amp;#39;t mention any address). I didn&amp;#39;t really used any FDS, is it from SoftDevice?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;UICR was very useful, I was able to narrow down to the specific peripheral from BLE central. Since BLE central can use filter, is there a way for peripheral to filter scanners (by ble address/name/etc.)?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358978?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2022 13:14:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44e5191d-777f-4087-88d1-5de00cdc0600</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;I assume that the extra block you see close to the top are FSD pages. FDS is (among other things) used for persistent storage by the peer manager module, and these flash pages are initialized the first time after reset. You can hover over it to see the address range to compare with your memory layout to be 100% sure (refer to &lt;a href="https://infocenter.nordicsemi.com/topic/sdk_nrf5_v17.1.0/lib_bootloader.html?cp=8_1_3_5_0_7#lib_bootloader_memory"&gt;memory layout figure&lt;/a&gt; in the bootloader documentation to get an overview of what you are looking at).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358977?ContentTypeID=1</link><pubDate>Tue, 08 Mar 2022 03:02:33 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0695a11-2401-4a74-b2ec-59c1228776a9</guid><dc:creator>June20</dc:creator><description>&lt;p&gt;Thanks, what I was looking for was UICR, and it checked out when I used &amp;quot;nrfjprog --memwr 0x10001080 --val 0xcc&amp;quot;&lt;/p&gt;
&lt;p&gt;I am now stuck with binary(or hex) files.&lt;/p&gt;
&lt;p&gt;nRF Programmer is showing different memory layout&amp;nbsp; when comparing what I debug via Segger studio versus output/my_app.hex + softdevice_s140.hex.&lt;/p&gt;
&lt;p&gt;Are there other hex file I should consider? (I also added bootloader_setting.hex I generated but they don&amp;#39;t seem to be identical.)&lt;/p&gt;
&lt;p&gt;Top two lines on the right side is bootloader_setting.hex, and the rest are my_app.hex + softdevice_s140.hex&lt;/p&gt;
&lt;p&gt;bootloader_setting.hex (nrfutil settings generate --family NRF52840 --application &amp;quot;my_app.hex&amp;quot; --application-version 0 --bootloader-version 0 --bl-settings-version 2 bootloader_setting_uicr.hex)&lt;/p&gt;
&lt;p&gt;&lt;img src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/pastedimage1646708257813v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Also, are there any easy-to-follow nrfjprog tutorial?&lt;/p&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Pairing specific pairs among many</title><link>https://devzone.nordicsemi.com/thread/358976?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2022 13:24:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3a49c88f-025f-4541-8b81-7897e613ba6d</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
[quote user=""]&lt;p&gt;We did make custom boards and also made a program that once paired(bonded), it won&amp;#39;t connect with others.&lt;/p&gt;
&lt;p&gt;(eg, once nRF52840 and nRF52833 is paired, it will not connect with others)&lt;/p&gt;[/quote]
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;This sounds like what you normally achieves with whitelisting. I assume that is what you are using?&lt;/p&gt;
[quote user=""]We were wondering is there a way to make specific central connect with specific peripheral?[/quote]
&lt;p&gt;If they are already bonded/paired, whitelisting is what you typically use here. That can be used on both the peripheral side and central side. With that, the device will only connect with a peer that has a specific BLE address (either static or derived from a IRK).&lt;/p&gt;
[quote user=""]Is there a way to make each central/peripheral unique so that pairing process can be done without interference?[/quote]
&lt;p&gt;If you want to do this without any user interaction and want it to be secure, then it is difficult. But if it is just for convenience, then you could base this on BLE address. Or you could for instance use a unique number in for instance the name of the device and include that in the advertising packets, and have the central search only for a device with a specific name including a unique number.&lt;/p&gt;
[quote user=""]extra question: is there a way to write certain unique number/MAC address on flash during flash write and then read it during application?[/quote]
&lt;p&gt;Yes.&lt;/p&gt;
[quote user=""]How do I know which address of flash is used or not?(want to avoid&amp;nbsp; collision with bonded info)[/quote]
&lt;p&gt;If it is just a serial number of address or similar, then the most natural is to put this in UICR. Then it does not conflict with anything else as long as you stay away from the reserved parts. See &lt;a href="https://infocenter.nordicsemi.com/topic/ps_nrf52833/uicr.html?cp=4_1_0_3_4"&gt;UICR chapter in&amp;nbsp; PS&lt;/a&gt; for details. Then you can read this like any other part of the flash/memory. If you need to store a lot of data or need to be able to update the data, you need to do this differently. That does not seem to be the case here, though(?).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>