<?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>Can I only beacon/broadcast scan response data only and not advertisement response data?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/100119/can-i-only-beacon-broadcast-scan-response-data-only-and-not-advertisement-response-data</link><description>Hi, 
 I want to beacon only scan response data and not advertisement response data. I am using Nrf connect sdk 2.3.0 and Nrf 52840 board for beaconing. 
 I declared value variable and then passing it in scan response data as shown below: 
 
 static uint8_t</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 31 May 2023 10:31:20 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/100119/can-i-only-beacon-broadcast-scan-response-data-only-and-not-advertisement-response-data" /><item><title>RE: Can I only beacon/broadcast scan response data only and not advertisement response data?</title><link>https://devzone.nordicsemi.com/thread/428405?ContentTypeID=1</link><pubDate>Wed, 31 May 2023 10:31:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8196890c-c0ed-4ad8-843d-35001f561f16</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi helloble,&lt;/p&gt;
&lt;p&gt;It turns out that on&amp;nbsp;iOS, the platform simply returns the scan result using the API&amp;nbsp;&lt;a href="https://developer.apple.com/documentation/corebluetooth/cbcentralmanagerdelegate/1518937-centralmanager"&gt;centralManager(_:didDiscover:advertisementData:rssi:)&lt;/a&gt;, and&amp;nbsp;the application cannot access the raw data to parse it in any particular way.&lt;/p&gt;
&lt;p&gt;Therefore, to properly support iOS application, I recommend you not have Manufacturer Data on both Advertising Data and Scan Response.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can I only beacon/broadcast scan response data only and not advertisement response data?</title><link>https://devzone.nordicsemi.com/thread/427849?ContentTypeID=1</link><pubDate>Fri, 26 May 2023 14:45:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bd370576-70ac-4f83-b7f8-fc6cf1fef518</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi helloble,&lt;/p&gt;
&lt;p&gt;I&amp;nbsp;asked for an iPhone-user colleague to check today, and it seems a problem of the iOS app, rather than the nRF5 device application.&lt;/p&gt;
&lt;p&gt;I have asked internally if this is a limitation in iOS or if we could do better. I will follow-up with you when I receive an answer.&lt;/p&gt;
&lt;p&gt;There might be nothing wrong with your current code. Please see if you can check it on Android.&lt;br /&gt;For reference, this is the code I use to attempt what you are trying, and it works for me with the nRF Connect app for Android, but not with the nRF Connect app for&amp;nbsp;iOS. Same as before, it is based on the iBeacon sample.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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;

static const struct bt_data ad[] = {
	// BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_NO_BREDR),
	BT_DATA_BYTES(BT_DATA_NAME_SHORTENED, &amp;#39;h&amp;#39;, &amp;#39;i&amp;#39;, &amp;#39;v&amp;#39;, &amp;#39;o&amp;#39;),
	BT_DATA_BYTES(BT_DATA_MANUFACTURER_DATA, 0x01, 0x02, 0x03)
};

static const struct bt_data sr[] = {
	// BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_NO_BREDR),
	BT_DATA_BYTES(BT_DATA_MANUFACTURER_DATA, 0x01, 0x02, 0x06)
};

static void bt_ready(int err)
{
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	/* Start advertising */
	// err = bt_le_adv_start(BT_LE_ADV_NCONN, ad, ARRAY_SIZE(ad),
	// 		      NULL, 0);
	err = bt_le_adv_start(BT_LE_ADV_NCONN, ad, ARRAY_SIZE(ad),
			      sr, ARRAY_SIZE(sr));
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}
}

void main(void)
{
	int err;

	printk(&amp;quot;Starting Demo\n&amp;quot;);

	/* Initialize the Bluetooth Subsystem */
	err = bt_enable(bt_ready);
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
	}
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can I only beacon/broadcast scan response data only and not advertisement response data?</title><link>https://devzone.nordicsemi.com/thread/427666?ContentTypeID=1</link><pubDate>Fri, 26 May 2023 07:03:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2313a7b9-91b8-4472-9b72-493859de7587</guid><dc:creator>helloble</dc:creator><description>&lt;p&gt;Hi Hieu,&lt;/p&gt;
&lt;p&gt;I am using Nrf Connect Mobile application version &amp;quot;2.6.5&amp;quot; in iphone iOS. And I am using Nrf SDK 2.3.0 with Visual Studio IDE.&lt;/p&gt;
&lt;p&gt;The advertisement data is as follows:&lt;/p&gt;
&lt;p&gt;I&amp;#39;m giving 0x00 manufacturer data (where &amp;lt;0xFFFF &amp;gt;is the id) as the advertisement data. But I want to get a scan response data for the same. As in, I want some data 0x01 in the scan response data( bt_data sd[]).&lt;/p&gt;
&lt;div&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;uint8_t&lt;/span&gt;&lt;span&gt;&amp;nbsp;value&lt;/span&gt;&lt;span&gt;[]&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&amp;nbsp;&lt;/span&gt;&lt;span&gt;0xff&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;0xff&lt;/span&gt;&lt;span&gt;,&amp;nbsp;&lt;/span&gt;&lt;span&gt;0x00&lt;/span&gt;&lt;span&gt;&amp;nbsp;};&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;static&amp;nbsp;uint8_t&amp;nbsp;value1[]&amp;nbsp;=&amp;nbsp;{&amp;nbsp;0xff,&amp;nbsp;0xff,&amp;nbsp;0x01&amp;nbsp;};&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;static&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;const&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;struct&lt;/span&gt;&lt;span&gt;&amp;nbsp;bt_data ad&lt;/span&gt;&lt;span&gt;[]&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt;&amp;nbsp;{&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;BT_DATA&lt;/span&gt;&lt;span&gt;(BT_DATA_MANUFACTURER_DATA, value,&amp;nbsp;&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(value))&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;};&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;static const struct bt_data sd[] = {&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;// I want to get scan response data&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;BT_DATA&lt;/span&gt;&lt;span&gt;(BT_DATA_NAME_COMPLETE, DEVICE_NAME, DEVICE_NAME_LEN),&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span&gt;BT_DATA&lt;/span&gt;&lt;span&gt;(BT_DATA_MANUFACTURER_DATA, value1,&amp;nbsp;&lt;/span&gt;&lt;span&gt;sizeof&lt;/span&gt;&lt;span&gt;(value1))&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span&gt;}&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;When Implementing above, I am not getting scan response data 0x01 along with advertisement data. I am only getting advertisement data in the mobile app. How do I get the scan response data only? How should I implement that?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Can I only beacon/broadcast scan response data only and not advertisement response data?</title><link>https://devzone.nordicsemi.com/thread/427507?ContentTypeID=1</link><pubDate>Thu, 25 May 2023 11:45:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4c667750-f28d-4550-845b-83a0d4547c6f</guid><dc:creator>Hieu</dc:creator><description>&lt;p&gt;Hi helloble,&lt;/p&gt;
&lt;p&gt;How did you setup the advertisement? What version of the nRF Connect Mobile app did you use, and on which OS?&lt;/p&gt;
&lt;p&gt;I tried to modify the ibeacon sample&amp;nbsp;like below and got it to work with nRF Connect Mobile app for Android.&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;#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;

static const struct bt_data ad[] = {
	BT_DATA_BYTES(BT_DATA_FLAGS, BT_LE_AD_NO_BREDR),
	BT_DATA_BYTES(BT_DATA_MANUFACTURER_DATA, 0x01, 0x02, 0x03) /* Calibrated RSSI @ 1m */
};

static void bt_ready(int err)
{
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
		return;
	}

	printk(&amp;quot;Bluetooth initialized\n&amp;quot;);

	/* Start advertising */
	// err = bt_le_adv_start(BT_LE_ADV_NCONN, ad, ARRAY_SIZE(ad),
	// 		      NULL, 0);
	err = bt_le_adv_start(BT_LE_ADV_NCONN, NULL, 0,
			      ad, ARRAY_SIZE(ad));
	if (err) {
		printk(&amp;quot;Advertising failed to start (err %d)\n&amp;quot;, err);
		return;
	}
}

void main(void)
{
	int err;

	printk(&amp;quot;Starting Demo\n&amp;quot;);

	/* Initialize the Bluetooth Subsystem */
	err = bt_enable(bt_ready);
	if (err) {
		printk(&amp;quot;Bluetooth init failed (err %d)\n&amp;quot;, err);
	}
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Hieu&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>