<?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 dynamically  change device_name on NCS?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/84117/how-to-dynamically-change-device_name-on-ncs</link><description>Hi all: 
 I want to dynamically change device_name at peripheral_hids_mouse, 
 I perform two tests, but they are all not successful. 
 (1) 
 add below command into prj.conf 
 CONFIG_BT_DEVICE_NAME_DYNAMIC=y 
 add below code before bt_le_adv_start() 
</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 01 Feb 2022 01:52:01 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/84117/how-to-dynamically-change-device_name-on-ncs" /><item><title>RE: how to dynamically  change device_name on NCS?</title><link>https://devzone.nordicsemi.com/thread/350547?ContentTypeID=1</link><pubDate>Tue, 01 Feb 2022 01:52:01 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f8bf6af-9226-413f-8fb6-8c72f1712350</guid><dc:creator>joe</dc:creator><description>&lt;p&gt;thanks,I understand.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to dynamically  change device_name on NCS?</title><link>https://devzone.nordicsemi.com/thread/350356?ContentTypeID=1</link><pubDate>Mon, 31 Jan 2022 08:28:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1c8401bf-52f0-4e05-8efd-9ff8085a218f</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Joe,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s not allowed to have device name in both the advertising packet and the scan response packet.&amp;nbsp;&lt;br /&gt;So if you already declare&amp;nbsp;&lt;span&gt;adv_param.options |= BT_LE_ADV_OPT_USE_NAME, you should remove&amp;nbsp;&lt;strong&gt;BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN)&amp;nbsp;&lt;/strong&gt;in the scan response.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;br /&gt;Please note that you can step into the function&amp;nbsp;&lt;/span&gt;bt_le_adv_start() to debug and check what cause the error.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to dynamically  change device_name on NCS?</title><link>https://devzone.nordicsemi.com/thread/350341?ContentTypeID=1</link><pubDate>Mon, 31 Jan 2022 04:31:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6368fcb9-28e9-444f-b4c9-4264e4f7ec12</guid><dc:creator>joe</dc:creator><description>&lt;p&gt;Hi Hung:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I follow your code,it can update the device name successfully on peripheral_uart example.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;for&amp;nbsp;&lt;span&gt;peripheral_hids_mouse example,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;There are normal advertising and directed advertising,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I have the error at normal advertising&amp;nbsp; (Advertising failed to start (err -22)&amp;quot;)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I am not sure the error related to ad[]&amp;nbsp; /sd[] or not.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;if (!k_msgq_get(&amp;amp;bonds_queue, &amp;amp;addr, K_NO_WAIT)) {&lt;/p&gt;
&lt;p&gt;&amp;nbsp; &amp;nbsp;...&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;strong&gt; int err = bt_le_adv_start(&amp;amp;adv_param, NULL, 0, NULL, 0);&amp;nbsp; //Directed Advertising&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;br /&gt; } else&lt;br /&gt;&lt;br /&gt; {&lt;br /&gt;&amp;nbsp; &amp;nbsp;...&lt;/p&gt;
&lt;p&gt;adv_param = *BT_LE_ADV_CONN;&lt;br /&gt; adv_param.options |= BT_LE_ADV_OPT_ONE_TIME;&lt;br /&gt; adv_param.options |= BT_LE_ADV_OPT_USE_NAME; //modify&lt;/p&gt;
&lt;p&gt;bt_set_name(&amp;quot;test_name&amp;quot;); //modify&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;err = bt_le_adv_start(&amp;amp;adv_param, ad, ARRAY_SIZE(ad),&amp;nbsp; &amp;nbsp; &amp;nbsp; //normal Advertising&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; sd, ARRAY_SIZE(sd));&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;for&amp;nbsp;peripheral_hids_mouse example ,its&amp;nbsp;&amp;nbsp;&lt;span&gt;ad[] array and sd[] array are not same as&amp;nbsp;peripheral_uart.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;so I don&amp;#39;t modify ad[] and sd[] .&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;my ad[] array as below&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/communityserver-discussions-components-files/4/ad_5B005D00_.jpg" /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:inherit;"&gt;peripheral_hids_mouse:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;static const struct bt_data ad[] = {&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; BT_DATA_BYTES(BT_DATA_GAP_APPEARANCE,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(CONFIG_BT_DEVICE_APPEARANCE &amp;gt;&amp;gt; 0) &amp;amp; 0xff,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;(CONFIG_BT_DEVICE_APPEARANCE &amp;gt;&amp;gt; 8) &amp;amp; 0xff),&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; BT_DATA_BYTES(BT_DATA_UUID16_ALL,&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x12, 0x18, /* HID Service */&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0f, 0x18), /* Battery Service */&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;};&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;static const struct bt_data sd[] = {&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt; BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;};&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;best regards,&lt;/p&gt;
&lt;p&gt;Joe&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: how to dynamically  change device_name on NCS?</title><link>https://devzone.nordicsemi.com/thread/349994?ContentTypeID=1</link><pubDate>Thu, 27 Jan 2022 13:35:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7811be7b-c3a2-49cc-8014-cf12a04fc86a</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Joe,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I assume you are not trying to put the name into the Directed Advertising packet but it&amp;#39;s the normal advertising you are asking about.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Please show what&amp;#39;s in your ad[] array.&amp;nbsp;&lt;br /&gt;The following code worked for me:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;	static const struct bt_data ad[] = {
	BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)),
	//BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),
};

static const struct bt_data sd[] = {
	BT_DATA_BYTES(BT_DATA_UUID128_ALL, BT_UUID_NUS_VAL),
};

	err=bt_set_name(&amp;quot;test_name&amp;quot;);
	if (err) {
		LOG_ERR(&amp;quot;Setname failed(err %d)&amp;quot;, err);
		return;
	}
	err = bt_le_adv_start(BT_LE_ADV_CONN_NAME, ad, ARRAY_SIZE(ad), sd,
			      ARRAY_SIZE(sd));
	if (err) {
		LOG_ERR(&amp;quot;Advertising failed to start (err %d)&amp;quot;, err);
		return;
	}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Note that I have to remove the&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; BT_DATA(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;inside the ad[] packet because it&amp;#39;s already covered in the advertising option to use name.&amp;nbsp;&lt;br /&gt;Also if it&amp;#39;s already advertising, and you change the name, you need to call&amp;nbsp;&lt;/span&gt;&lt;/span&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; err = bt_le_adv_update_data( ad, ARRAY_SIZE(ad), sd,&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;em&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ARRAY_SIZE(sd));&lt;/em&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;To update the device name.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>