<?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>How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/96447/how-to-use-public-addr-and-non-resolvable-addr-on-nrf-connect-sdk</link><description>I want to use public-addr and non-resolvable-addr for advertising on nrf connect SDK. 
 I was able to advertise using a random static addr. 
 But, 1. can not set public addr. 2. can not create non-resolvable-addr &amp;#39;s bt_id. 
 Following test code.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 27 Feb 2023 22:53:50 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/96447/how-to-use-public-addr-and-non-resolvable-addr-on-nrf-connect-sdk" /><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/412376?ContentTypeID=1</link><pubDate>Mon, 27 Feb 2023 22:53:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4eee1f87-8937-4150-b5c6-5856c2d3e115</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;OK.Thanks.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/412352?ContentTypeID=1</link><pubDate>Mon, 27 Feb 2023 19:05:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3d582375-c7ac-425a-90f7-dc8284f559a0</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;No, you can use a public address for advertising. And that works with some APIs in nRF Connect SDK 2.2.0, so for instance if you just call&amp;nbsp;bt_ctlr_set_public_addr() before bt_enable() in the beacon sample, it works out of the box. However you cannot create a public ID with br_id_create(), which is what I was referring to in my previous post.&lt;/p&gt;
&lt;p&gt;I was wrong about public address in extended advertising,&amp;nbsp; though. That should work, but does not due to a bug. This is fixed in &lt;a href="https://github.com/nrfconnect/sdk-nrfxlib/pull/919/files"&gt;this PR&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/412098?ContentTypeID=1</link><pubDate>Sun, 26 Feb 2023 04:47:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6fc7d4d4-fd61-480f-a834-f2bdc17fea9b</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;Really?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;So I can&amp;#39;t use public addr for advertising?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/411277?ContentTypeID=1</link><pubDate>Wed, 22 Feb 2023 08:51:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d8aeb41-8111-45c4-b1d2-b1de2d33235a</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It is not allowed to use a public identity address here, only a static random one. That is enforced by the stack. You can see an example of making a static random identity and using that here (which is your sample slightly modified):&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/* main.c - Application main entry point */

/*
 * Copyright (c) 2015-2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include &amp;lt;zephyr/types.h&amp;gt;
#include &amp;lt;stddef.h&amp;gt;
#include &amp;lt;zephyr/sys/printk.h&amp;gt;
#include &amp;lt;zephyr/sys/util.h&amp;gt;

#include &amp;lt;zephyr/bluetooth/bluetooth.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/hci.h&amp;gt;
#include &amp;lt;sdc_hci_vs.h&amp;gt; 
#include &amp;lt;mpsl_timeslot.h&amp;gt;
#include &amp;lt;mpsl.h&amp;gt;
#include &amp;lt;hal/nrf_timer.h&amp;gt;

static void adv_sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info);


static struct bt_le_adv_param adv_param = {
	.options	= BT_LE_ADV_OPT_USE_IDENTITY,
	.interval_min	= 0x00a0,
	.interval_max	= 0x00a0,
};

static const struct bt_le_ext_adv_cb adv_cb = {
	.sent			= adv_sent,
};

static const uint8_t ManufData[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
static const struct bt_data bdata[1] = {
	BT_DATA(0xFF, ManufData, sizeof(ManufData))
};

static struct bt_le_ext_adv* ext_adv0;
static struct bt_le_ext_adv_start_param adv_start_param = { 0, 0 };

static void adv_sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
{
}

static int set_addr(void)
{
	int id;

	static bt_addr_le_t addr = {
		.type		= BT_ADDR_LE_RANDOM,
		.a.val		= {0xba, 0xde, 0xba, 0x11, 0xca, 0xfe},
	};

	id = bt_id_create(&amp;amp;addr, NULL);
	if (id &amp;lt; 0) {
		printk(&amp;quot;Creating new ID failed (%d)\n&amp;quot;, id);
	}
	else
	{
		printk(&amp;quot;Id created: %i\n&amp;quot;, id);
	}

	return id;
}

void main(void)
{
	int err;
	int id;

	printk(&amp;quot;Starting Scanner/Advertiser Demo\n&amp;quot;);

	/* Initialize the Bluetooth Subsystem */
	err = bt_enable(NULL);
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	id = set_addr();

	adv_param.id = id;

	err = bt_le_ext_adv_create(&amp;amp;adv_param, &amp;amp;adv_cb, &amp;amp;ext_adv0);
	if (err) {
		printk(&amp;quot;adv create failed (err %d)\n&amp;quot;, err);
		return;
	}

	err = bt_le_ext_adv_set_data(ext_adv0, bdata, 1, NULL, 0);
	if (err) {
		printk(&amp;quot;adv set data failed (err %d)\n&amp;quot;, err);
		return;
	}

	err = bt_le_ext_adv_start(ext_adv0, &amp;amp;adv_start_param);
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}


	do {
		k_sleep(K_MSEC(400));

	} while (1);
}
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/410754?ContentTypeID=1</link><pubDate>Sun, 19 Feb 2023 06:27:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:12b327be-6ca1-4dd1-8789-308753ecbe37</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;Sorry.&lt;br /&gt;Projects cannot be provided.&lt;br /&gt;Instead, it only provides main.c/proj.conf.&lt;/p&gt;
&lt;p&gt;main.c&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/* main.c - Application main entry point */

/*
 * Copyright (c) 2015-2016 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include &amp;lt;zephyr/types.h&amp;gt;
#include &amp;lt;stddef.h&amp;gt;
#include &amp;lt;zephyr/sys/printk.h&amp;gt;
#include &amp;lt;zephyr/sys/util.h&amp;gt;

#include &amp;lt;zephyr/bluetooth/bluetooth.h&amp;gt;
#include &amp;lt;zephyr/bluetooth/hci.h&amp;gt;
#include &amp;lt;sdc_hci_vs.h&amp;gt; 
#include &amp;lt;mpsl_timeslot.h&amp;gt;
#include &amp;lt;mpsl.h&amp;gt;
#include &amp;lt;hal/nrf_timer.h&amp;gt;

static void adv_sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info);


static struct bt_le_adv_param adv_param = {
	.id				= BT_ID_DEFAULT,
	.options		= BT_LE_ADV_OPT_USE_IDENTITY,
	.interval_min	= 0x00a0,
	.interval_max	= 0x00a0,
};

static const struct bt_le_ext_adv_cb adv_cb = {
	.sent			= adv_sent,
};

static const uint8_t ManufData[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF};
static const struct bt_data bdata[1] = {
	BT_DATA(0xFF, ManufData, sizeof(ManufData))
};

static struct bt_le_ext_adv* ext_adv0;
static struct bt_le_ext_adv_start_param adv_start_param = { 0, 0 };

static bt_addr_le_t bdaddr0 = {
	.type = BT_ADDR_LE_RANDOM,
	.a = {
		.val = {0xC1, 0x11, 0x11, 0x11, 0x11, 0xC1},
	}
};

static bt_addr_le_t bdaddr1 = {
	.type = BT_ADDR_LE_RANDOM,
	.a = {
		.val = {0xC2, 0x22, 0x22, 0x22, 0x22, 0xC2},
	}
};

static void set_public_addr(void)
{
	uint8_t pub_addr[BT_ADDR_SIZE] = {0xba, 0xde, 0xba, 0x11, 0xca, 0xfe};
	bt_ctlr_set_public_addr(pub_addr);
}

static void adv_sent(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_sent_info *info)
{
}

void main(void)
{
	int err;

	printk(&amp;quot;Starting Scanner/Advertiser Demo\n&amp;quot;);

	set_public_addr();

	/* Initialize the Bluetooth Subsystem */
	err = bt_enable(NULL);
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	err = bt_le_ext_adv_create(&amp;amp;adv_param, &amp;amp;adv_cb, &amp;amp;ext_adv0);
	if (err) {
		printk(&amp;quot;adv create failed (err %d)\n&amp;quot;, err);
		return;
	}

	err = bt_le_ext_adv_set_data(ext_adv0, bdata, 1, NULL, 0);
	if (err) {
		printk(&amp;quot;adv set data failed (err %d)\n&amp;quot;, err);
		return;
	}

	err = bt_le_ext_adv_start(ext_adv0, &amp;amp;adv_start_param);
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}


	do {
		k_sleep(K_MSEC(400));

	} while (1);
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;proj.conf&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_FPU=y
CONFIG_BT=y
CONFIG_BT_PERIPHERAL=y
CONFIG_BT_BROADCASTER=y
CONFIG_BT_OBSERVER=y
CONFIG_BT_EXT_ADV=y
CONFIG_BT_EXT_ADV_MAX_ADV_SET=4
CONFIG_BT_PER_ADV=y
CONFIG_BT_PER_ADV_SYNC=y
CONFIG_BT_PER_ADV_SYNC_MAX=64
CONFIG_BT_ASSERT=n
CONFIG_BT_ASSERT_VERBOSE=n
CONFIG_BT_DEVICE_NAME=&amp;quot;EXBeacon&amp;quot;
CONFIG_BT_ID_MAX=5
CONFIG_BT_CTLR_TX_PWR_DYNAMIC_CONTROL=y
CONFIG_BT_CTLR_PHY_2M=y
CONFIG_BT_CTLR_PHY_CODED=y
CONFIG_BT_CTLR_ADV_EXT=y
CONFIG_BT_CTLR_ADV_SET=4
CONFIG_BT_CTLR_ADV_DATA_LEN_MAX=191
CONFIG_BT_CTLR_SCAN_DATA_LEN_MAX=200
CONFIG_MPSL_TIMESLOT_SESSION_COUNT=1
CONFIG_NRFX_GPIOTE_NUM_OF_EVT_HANDLERS=2
CONFIG_THREAD_CUSTOM_DATA=y
CONFIG_BT_DEBUG_NONE=y
CONFIG_BT_RECV_WORKQ_SYS=y
CONFIG_BOOT_BANNER=n
CONFIG_ASSERT_VERBOSE=n
CONFIG_CONSOLE=n
CONFIG_USE_SEGGER_RTT=n
CONFIG_SERIAL=n
CONFIG_UART_CONSOLE=n
CONFIG_CPLUSPLUS=y
CONFIG_STD_CPP17=y
CONFIG_EVENTS=y
CONFIG_NRFX_WDT0=y
CONFIG_NRFX_GPIOTE_NUM_OF_EVT_HANDLERS=4
&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/410048?ContentTypeID=1</link><pubDate>Wed, 15 Feb 2023 11:37:42 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ed7bef0d-889d-4000-9260-4429ff8a532d</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Can you share a minimal but complete example that does this so that I can test your exact code on my end?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409673?ContentTypeID=1</link><pubDate>Mon, 13 Feb 2023 16:01:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:808b5d23-9cb9-4741-b405-324ca211caf3</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;My Code (simply)&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;static void set_public_addr(void)
{
	uint8_t pub_addr[BT_ADDR_SIZE] = {0xba, 0xde, 0xba, 0x11, 0xca, 0xfe};
	bt_ctlr_set_public_addr(pub_addr);
}

static struct bt_le_adv_param adv_param = {
	.id				= BT_ID_DEFAULT,
	.options		= BT_LE_PER_ADV_OPT_NONE,
	.interval_min	= 0x00a0,
	.interval_max	= 0x00a0,
};

main()
...
	set_public_addr();
	bt_enable(NULL);
	bt_le_ext_adv_create(&amp;amp;adv_param, &amp;amp;adv_cb, &amp;amp;ext_adv0);
	bt_le_ext_adv_set_data(ext_adv0, bdata, 1, NULL, 0);
	bt_le_ext_adv_start(adv, &amp;amp;adv_start_param);
...&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;If adv_param.options = BT_LE_PER_ADV_OPT_NONE&lt;br /&gt;Result&lt;br /&gt;001845.151 37 ___ 15:0B:7D:17:CF:B9 -45 10FF112233445566778899AABBCCDDEEFF&lt;br /&gt;(non resolvable private address)&lt;br /&gt;&lt;br /&gt;If adv_param.options = BT_LE_ADV_OPT_USE_IDENTITY&lt;br /&gt;Result&lt;br /&gt;001962.104 37 ___ xx:xx:xx:xx:xx:xx -40 10FF112233445566778899AABBCCDDEEFF&lt;br /&gt;(xx is FICR.DEVICEADDR (Random Static Address))&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;what i want&lt;br /&gt;BA:DE:BA:11:CA:FE 10FF112233445566778899AABBCCDDEEFF&lt;br /&gt;(public address)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409223?ContentTypeID=1</link><pubDate>Thu, 09 Feb 2023 17:19:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca6048a1-fbe7-42c0-addf-db819771c9b8</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;I am still confused.&amp;nbsp;What is the expected result? And what is the actual result?&amp;nbsp;Please elaborate.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409205?ContentTypeID=1</link><pubDate>Thu, 09 Feb 2023 14:54:21 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:222c8ede-a265-42e0-a170-4e3de4aae889</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;I try,&lt;/p&gt;
&lt;p&gt;bt_le_adv_param.id=0 / bt_le_adv_param.options=BT_LE_PER_ADV_OPT_NONE&lt;br /&gt;BDADDR=non-resolvable-private address&lt;br /&gt;&lt;br /&gt;bt_le_adv_param.id=0 / bt_le_adv_param.options=BT_LE_ADV_OPT_USE_IDENTITY&lt;br /&gt;BDADDR=random static address (FICR.DEVICEADDR)&lt;br /&gt;&lt;br /&gt;call bt_ctlr_set_public_addr() before bt_enable()&lt;br /&gt;bt_le_adv_param.id=0 / bt_le_adv_param.options=BT_LE_PER_ADV_OPT_NONE&lt;br /&gt;BDADDR=non-resolvable-private address&lt;br /&gt;&lt;br /&gt;call bt_ctlr_set_public_addr() before bt_enable()&lt;br /&gt;bt_le_adv_param.id=0 / bt_le_adv_param.options=BT_LE_ADV_OPT_USE_IDENTITY&lt;br /&gt;BDADDR=random static address (FICR.DEVICEADDR)&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409183?ContentTypeID=1</link><pubDate>Thu, 09 Feb 2023 13:57:48 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1b764008-4b8f-4753-8285-940e027b84b4</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Good to hear you got NRPA working. Regarding public address I am not sure I understand the issue now. Can you elaborate a bit? Exactly what to do you do, and exactly how does it fail?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409163?ContentTypeID=1</link><pubDate>Thu, 09 Feb 2023 13:12:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f71b6eee-a3e8-4e3c-9ed3-579db550852b</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;OK.&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;About NRPA&lt;/span&gt;&lt;/span&gt;&lt;span class="jCAhz"&gt;&lt;span class="ryNqvb"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;solved.&lt;/span&gt;&lt;/span&gt; &lt;span class="jCAhz ChMk0b"&gt;&lt;span class="ryNqvb"&gt;Simply not specifying BT_LE_ADV_OPT_USE_IDENTITY made it a non-resolvable-addr.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span class="HwtZe" lang="en"&gt;But, As for the public address setting, it doesn&amp;#39;t work.&lt;br /&gt;Calling bt_ctlr_set_public_addr still NRPA.&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409101?ContentTypeID=1</link><pubDate>Thu, 09 Feb 2023 10:22:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fdeb712e-c548-48e0-b612-be40045135bd</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Which device are you using? As you referred to nRF5 SDK in some other post I assumed you were using a nRF52 series device, but perhaps that is not the case? If you are, the function from my previous post is enough to set the public address, and you can test this by copy-pasting it to the beacon sample and calling it before bt_enable().&lt;/p&gt;
&lt;p&gt;In what way does it fail in your case?&lt;/p&gt;
&lt;p&gt;Regarding the non-resolvable random address you cannot use a non-static identity address, so it is&amp;nbsp;expected that the call to bt_id_create() fails. That does not cause problems with security though, as long as you never advertise with that address. To advertise with a random address, adjust the advertising flags accordingly (for instance pick&amp;nbsp;BT_LE_EXT_ADV_NCONN). Along that line it also looks strange that you added the&amp;nbsp;BT_LE_ADV_OPT_USE_IDENTITY option, as I&amp;nbsp;assume that is not what you want?&lt;/p&gt;
&lt;div&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/409010?ContentTypeID=1</link><pubDate>Wed, 08 Feb 2023 22:55:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0290a0db-14be-4dbc-97bd-95a0058ea93c</guid><dc:creator>loquat</dc:creator><description>&lt;p&gt;I tried using bt_ctlr_set_public_addr but it didn&amp;#39;t work. (see code above)&lt;br /&gt;Called before bt_enable().&lt;br /&gt;what am i doing wrong?&lt;/p&gt;
&lt;p&gt;I implement encrypted advertising transmission.&lt;br /&gt;I want to use NRPA to make it harder to track. (like bluetooth mesh does)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How to use public-addr and non-resolvable-addr on nrf connect SDK</title><link>https://devzone.nordicsemi.com/thread/408918?ContentTypeID=1</link><pubDate>Wed, 08 Feb 2023 14:35:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4136bffc-d670-4b38-9759-4039784ad124</guid><dc:creator>Einar Thorsrud</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Different address types must be configured in different ways. To set a public address, the simplest is to do as illustrated here:&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void set_public_addr(void)
{
	uint8_t pub_addr[BT_ADDR_SIZE] = {0xba, 0xde, 0xba, 0x11, 0xca, 0xfe};
	bt_ctlr_set_public_addr(pub_addr);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Note that this must be done &lt;em&gt;before&lt;/em&gt; you call bt_enable().&lt;/p&gt;
&lt;p&gt;I need to look a bit more into non resolvable private addresses though, as I did not get that to work. That is a very uncommon&amp;nbsp;address type, though. May I ask why you want to use it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>