<?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>Some IoT SDK Question</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/9133/some-iot-sdk-question</link><description>my development environment is nRF-DK and IOT SDK 
 Q1 : IOT SDK Support Gatt Profile?
Q2 : IoT SDK Support DFU mode? 
 Q3 : in ipv6 coap server example, how i broadcast advertising data with manufacture data and scan response data?</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 16 Oct 2015 14:10:02 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/9133/some-iot-sdk-question" /><item><title>RE: Some IoT SDK Question</title><link>https://devzone.nordicsemi.com/thread/33666?ContentTypeID=1</link><pubDate>Fri, 16 Oct 2015 14:10:02 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9e255f92-05c0-4b80-8503-e3172f91894e</guid><dc:creator>cucu</dc:creator><description>&lt;p&gt;how to advertising always ? when after BLE_GAP_EVT_CONNECTED..&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Some IoT SDK Question</title><link>https://devzone.nordicsemi.com/thread/33665?ContentTypeID=1</link><pubDate>Wed, 07 Oct 2015 16:04:17 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6eef98d-1f13-4a5f-9e34-eebcda1dd500</guid><dc:creator>Stian R&amp;#248;ed Hafskjold</dc:creator><description>&lt;p&gt;&lt;strong&gt;Q1:&lt;/strong&gt; The IoT SDK and SoftDevice is just a prototype, so we cannot guarantee that there are no bugs when using custom GATT services. However, there is no reason why it should not work. During connection the client does a normal service discovery of the GATT server, and if the server contains a IP Support Service (IPSS, which is an empty GATT service), the client knows that the server supports the Internet Protocol Support Profile (IPSP). The GATT client will also discover any custom services.&lt;/p&gt;
&lt;p&gt;You can create a service just like you would do in a regular SDK example. For example you can copy the Battery service (&lt;strong&gt;ble_bas.h&lt;/strong&gt; and &lt;strong&gt;ble_bas.c&lt;/strong&gt;) files from SDK 7.1 (IoT SoftDevice is based on version 7.1, which goes with SDK 7.1), into the IoT example project. And initialize the service like this in &lt;strong&gt;main.c&lt;/strong&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;static void services_init(void)
{
    uint32_t       err_code;
    ble_bas_init_t bas_init;

    // Initialize Battery Service.
    memset(&amp;amp;bas_init, 0, sizeof(bas_init));

    // Here the sec level for the Battery Service can be changed/increased.
    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&amp;amp;bas_init.battery_level_char_attr_md.cccd_write_perm);
    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&amp;amp;bas_init.battery_level_char_attr_md.read_perm);
    BLE_GAP_CONN_SEC_MODE_SET_NO_ACCESS(&amp;amp;bas_init.battery_level_char_attr_md.write_perm);
    BLE_GAP_CONN_SEC_MODE_SET_OPEN(&amp;amp;bas_init.battery_level_report_read_perm);

    bas_init.evt_handler          = NULL;
    bas_init.support_notification = true;
    bas_init.p_report_ref         = NULL;
    bas_init.initial_batt_level   = 100;

    err_code = ble_bas_init(&amp;amp;m_bas, &amp;amp;bas_init);
    APP_ERROR_CHECK(err_code);
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And call &lt;code&gt;services_init();&lt;/code&gt; from the &lt;code&gt;main()&lt;/code&gt; function.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q2:&lt;/strong&gt; DFU is not supported out of the box in the SDK, but you should be able to port the code from the regular SDK into the IoT example.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Q3:&lt;/strong&gt; You can add manufacturer specific data to the advertising packet like in the regular SDK. Follow this tutorial: &lt;a href="https://devzone.nordicsemi.com/tutorials/5/ble-advertising-a-beginners-tutorial/"&gt;devzone.nordicsemi.com/.../&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here it is described how to add manufacturer specific data to both the advertising packet and the scan response packet. There is an &lt;code&gt;advertising_init()&lt;/code&gt; function in the IoT examples &lt;strong&gt;main.c&lt;/strong&gt; files, and you can edit it like in the tutorial.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Known issues:&lt;/strong&gt; I tried to add the Battery service and manufacturer data/scan response to the COAP_Server example and I encountered two problems.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In order to be able to connect in Master Control Panel on Android, I had to change the advertising flag from &lt;code&gt;BLE_GAP_ADV_FLAG_BR_EDR_NOT_SUPPORTED&lt;/code&gt; to &lt;code&gt;BLE_GAP_ADV_FLAGS_LE_ONLY_GENERAL_DISC_MODE&lt;/code&gt;. This is done in the &lt;code&gt;advertising_init()&lt;/code&gt; function.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Service discovery in Master Control Panel on the computer does not work. During service discovery all the attributes are read, and the IoT SoftDevice fails to give a response when reading from CCCD attributes when the CCCD has not yet been written to. This results in a timeout and a disconnect. I believe this is a bug in the IoT SD. In MCP on Android, this is not the case, and you should be able to do a service discovery and read/write to your new service.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>