<?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>Configurable UUID</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/26408/configurable-uuid</link><description>Hello, 
 I want to change the 16-bit of 128-bit UUID at runtime. is this possible? 
 let me explain... 
 1)the first both central and peripheral set 128-bit UUID like this.... 
 6e40 0000 -b5a3-f393-e0a9-e50e24dcca9e 
 
 now after connection the</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 11 Mar 2019 13:58:39 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/26408/configurable-uuid" /><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/175362?ContentTypeID=1</link><pubDate>Mon, 11 Mar 2019 13:58:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb49f238-f276-4827-a6a6-992731def954</guid><dc:creator>Bj&amp;#248;rn Kvaale</dc:creator><description>&lt;p&gt;&lt;a href="https://devzone.nordicsemi.com/members/siddhesh-sawant"&gt;siddhesh sawant&lt;/a&gt; Could you please create a new devzone case? Thank you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/175174?ContentTypeID=1</link><pubDate>Sat, 09 Mar 2019 12:26:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bd53508-7653-488f-a3b9-115cabfe7e19</guid><dc:creator>siddhesh sawant</dc:creator><description>&lt;p&gt;i wanted to change the default UUID in ble_light_switch example? what should i do ? where i can find the default UUID&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103942?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:59:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4db5ec7d-6cca-4c17-a1ef-178c292ae14d</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Hard to say what you do wrong. Is normally &lt;code&gt;pstorage_test_init&lt;/code&gt; function working? Where you place it normally? What error you get when you place it here? Or you just don&amp;#39;t see the advertisement and that&amp;#39;s your test? You don&amp;#39;t need to answer these questions to me, these are just examples of questions you should ask yourself.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103941?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:56:10 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f8e0a801-a3e3-4c42-83cf-267a4c9c9dd6</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;no....this the portion in which i initialized...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103943?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:54:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ca625a7b-769f-4311-bb8c-039d8ec2a5b2</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Simple question: is pstorage already enabled/initialized?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103940?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:52:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c1802b59-1f45-49f2-ac85-3cd74928ec02</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;but i am not able to read data from pstorage at time of ble_nus_init.&lt;/p&gt;
&lt;p&gt;Here i send the snapshots of this function...&lt;/p&gt;
&lt;p&gt;uint32_t ble_nus_init(ble_nus_t * p_nus, const ble_nus_init_t * p_nus_init)
{
uint32_t      err_code;
ble_uuid_t    ble_uuid;
ble_uuid128_t nus_base_uuid = NUS_BASE_UUID;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;VERIFY_PARAM_NOT_NULL(p_nus);
VERIFY_PARAM_NOT_NULL(p_nus_init);

// Initialize the service structure.
p_nus-&amp;gt;conn_handle             = BLE_CONN_HANDLE_INVALID;
p_nus-&amp;gt;data_handler            = p_nus_init-&amp;gt;data_handler;
p_nus-&amp;gt;is_notification_enabled = false;

/**@snippet [Adding proprietary Service to S110 SoftDevice] */
// Add a custom base UUID.
err_code = sd_ble_uuid_vs_add(&amp;amp;nus_base_uuid, &amp;amp;p_nus-&amp;gt;uuid_type);
VERIFY_SUCCESS(err_code);

ble_uuid.type = p_nus-&amp;gt;uuid_type;
//ble_uuid.uuid = BLE_UUID_NUS_SERVICE;
	

	uint8_t *load_uuid;
	pstorage_test_init();
	UART_sendCString(&amp;quot;pstorage_test_init\r\n&amp;quot;);
	load_uuid = pstorage_test_load();
	
	UART_sendCString(&amp;quot;pstorage_test_load\r\n&amp;quot;);

	tag_uuid = (uint16_t)((load_uuid[0] &amp;lt;&amp;lt; 8) | (load_uuid[1] &amp;amp; 0xFF));
	if(tag_uuid == 0xFFFF)
	{
			printf(&amp;quot;ble_nus_init tag_uuid = 0\r\n&amp;quot;);
			tag_uuid = 0x0000;
	}
	else
	{
		
		printf(&amp;quot;Tag UUID is :- %d\r\n&amp;quot;,tag_uuid);
	}
	ble_uuid.uuid = tag_uuid;


// Add the service.
err_code = sd_ble_gatts_service_add(BLE_GATTS_SRVC_TYPE_PRIMARY,
                                    &amp;amp;ble_uuid,
                                    &amp;amp;p_nus-&amp;gt;service_handle);
/**@snippet [Adding proprietary Service to S110 SoftDevice] */
VERIFY_SUCCESS(err_code);

// Add the RX Characteristic.
err_code = rx_char_add(p_nus, p_nus_init);
VERIFY_SUCCESS(err_code);

// Add the TX Characteristic.
err_code = tx_char_add(p_nus, p_nus_init);
VERIFY_SUCCESS(err_code);

return NRF_SUCCESS;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;}
id.uuid = tag_uuid;&lt;/p&gt;
&lt;p&gt;i can not get the interrupt from pstorage at time of load the data..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103939?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:47:13 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c7f9c0b2-ec5d-4853-81bd-4147c7962026</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Sure, you can do whatever you want with your pstorage;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103938?ContentTypeID=1</link><pubDate>Thu, 16 Nov 2017 08:40:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:15da9c19-a8a0-4d84-953e-a4022998c375</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;If we use the Pstorage for store the UUID....and we want to read the UUID at time of power of board.&lt;/p&gt;
&lt;p&gt;so that the board advertise with new UUID.&lt;/p&gt;
&lt;p&gt;so is this possible to read the UUID from pstorage in the time of service initialize?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103937?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:22:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cfba9025-cb37-4209-ac32-25800109e82d</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Well it doesn&amp;#39;t matter where you store it, internal flash, external, UICR region, it&amp;#39;s up to you where your app stores config data. Pstorage module should be enough. If you use it and you don&amp;#39;t see the desired result then you simply have a bug in your project so test it properly, do UART or RTT tracing, do simple little steps and verify after each etc. This is nothing we could fix for you on forum.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103936?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:19:54 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b0542069-7b9e-4529-b868-0c4bf49cf318</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;i want to change ....this bit in UUID..&lt;/p&gt;
&lt;p&gt;//ble_uuid.uuid = BLE_UUID_NUS_SERVICE;&lt;/p&gt;
&lt;p&gt;ble_uuid.uuid = tag_uuid;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103935?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:18:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:706cc8e2-00c4-4958-8d15-53265e76c182</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;external flash or internal flash?&lt;/p&gt;
&lt;p&gt;I also loaded data in pstorage....
and restart the chip as softreset..&lt;/p&gt;
&lt;p&gt;but the logic was not work....&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103934?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:12:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4cf774d0-0f68-4b9f-a957-932481692446</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;But as I said it looked better to me to just store new UUID in flash and reboot whole chip where it would init GATT Server with correct new UUIDs once it boots next time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103933?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:11:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:06089904-2f7d-4a9d-89c5-d01d62dbaa29</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;If you want to change GATT handles on the stack (meaning delete some) you need to disable BLE stack. I cannot tell you what one-liner call does that, look into SDK, look into examples, search on the forum.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103932?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:08:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:41f64dfe-c3b1-4fdb-ac39-4b8852d0d742</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;Thank You...&lt;/p&gt;
&lt;p&gt;let me explain in more details...the flow is like....&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;UART_setup();&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;ble_init()
{
// Initialize.
APP_TIMER_INIT(APP_TIMER_PRESCALER, APP_TIMER_OP_QUEUE_SIZE, false);
//uart_init();&lt;/p&gt;
&lt;p&gt;buttons_leds_init(&amp;amp;erase_bonds);
ble_stack_init();
gap_params_init();
services_init();
advertising_init();
conn_params_init();
}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;uint32_t ble_advertise()
{
uint32_t err_code;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt; 	err_code = ble_advertising_start(BLE_ADV_MODE_FAST);
 	APP_ERROR_CHECK(err_code);

 return err_code;
&lt;/code&gt;&lt;/pre&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;now in re advertise which function i call..?&lt;/p&gt;
&lt;p&gt;please explain me....&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103931?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 15:02:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2a3adaa0-bde7-4c61-9d61-784dffc151a3</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;Nom that&amp;#39;s not the correct way, you cannot call BLE init once you already did it. You need to reset the whole chip or to disable Soft Device and enable it again. I also suspect that these &lt;code&gt;BLE_INIT&lt;/code&gt; and &lt;code&gt;BLE_ADVERTISE&lt;/code&gt; boxes are some high level function call which really are in your code. If so then please understand that I have no clue what these blackboxes do and so I cannot advice on sequence or parameters of these functions.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103930?ContentTypeID=1</link><pubDate>Mon, 13 Nov 2017 14:58:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1894a331-aa40-48d5-8abc-d951c6e76f4a</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;I do this same thing....let me explain......my code flow as following.....&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;UART Setup();&lt;/li&gt;
&lt;li&gt;BLE_INIT();&lt;/li&gt;
&lt;li&gt;BLE_ADVERTISE();&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;from Central send &lt;strong&gt;new UUID&lt;/strong&gt; to peripheral.
after receiving the new UUID .....&lt;/p&gt;
&lt;p&gt;call sd_ble_gap_disconnect() function. and again i restart the advertising..&lt;/p&gt;
&lt;ol start="2"&gt;
&lt;li&gt;BLE_INIT();&lt;/li&gt;
&lt;li&gt;BLE_ADVERTISE();&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;is this correct way?&lt;/p&gt;
&lt;p&gt;please correct me if i m wrong...&lt;/p&gt;
&lt;p&gt;Thank You.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103928?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2017 12:39:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:53a2023f-5e2e-482b-9e42-30dc36e00946</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;But &amp;quot;standard&amp;quot; way how to implement this with current Nordic SD would be:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Let some default UUID (saying &amp;quot;I&amp;#39;m unpersonalized device of yours&amp;quot;).&lt;/li&gt;
&lt;li&gt;Once master connects and is allowed to modify/personalize it assigns new UUID.&lt;/li&gt;
&lt;li&gt;Devices must disconnect. GATT Server saves new configuration and reboots.&lt;/li&gt;
&lt;li&gt;As soon as GAP Peripheral/GATT Server boots it uses new UUID to populate GATT Server differently then before and it&amp;#39;s ready to be used as you intended.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are fine with that disconnection you have your solution. Otherwise go with different BLE stack.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103927?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2017 12:36:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f731e36f-db74-4761-9b0d-d85c04e65eb4</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;UUID shouldn&amp;#39;t be identifier of particular device but it should be class of devices (= providers of specific kind of service). Devices are identified by MAC and if you don&amp;#39;t want or cannot use it then you should define your own proprietary identifier (and place it to your APP data e.g. in Manufacturer Specific AD element of ADV/SCAN_RSP data). But back to the technical side of your proposed solution: Nordic (G)ATT Server API supports only adding Services/Characteristics not hiding or deleting so I&amp;#39;m afraid you will either need to go with different stack (Zephyr might be good choice because if it doesn&amp;#39;t support this you may implement it yourself) or change your solution or try to get some more help from Nordic (maybe they have such feature in a back log but I don&amp;#39;t see any indication of that from outside).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103929?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2017 09:32:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9a3d2c7d-5d14-4351-837e-5d395186f885</guid><dc:creator>milav</dc:creator><description>&lt;p&gt;is there any chance to configure the UUID which i describe as in Question?&lt;/p&gt;
&lt;p&gt;the actual case is like this...&lt;/p&gt;
&lt;p&gt;there are ten BLE enabled board which are advertise. we give...10 different the serial number so that in central we have a choice to select any one of them Using Different UUID.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Configurable UUID</title><link>https://devzone.nordicsemi.com/thread/103926?ContentTypeID=1</link><pubDate>Mon, 30 Oct 2017 07:37:08 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e2becf08-74fa-4473-bfca-c1ba73c0d560</guid><dc:creator>endnode</dc:creator><description>&lt;p&gt;The only way how to change GATT Server objects with Nordic Soft Device is to &amp;quot;restart&amp;quot; it (typically softreset of the chip is faster way). UUIDs are assumed to be static identifiers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>