<?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>DFU service doesn&amp;#39;t show service changed characteristic</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/47648/dfu-service-doesn-t-show-service-changed-characteristic</link><description>Hi, 
 I am using SDK 15.0 on a custom board using nRF52840. Softdevice is 6.0.0. Coding with SES. 
 I am investigating and trying to fix the infamous IOS caching of characteristics problem where the IOS bluetooth stack doesn&amp;#39;t refresh and so the correct</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 23 May 2019 13:47:04 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/47648/dfu-service-doesn-t-show-service-changed-characteristic" /><item><title>RE: DFU service doesn't show service changed characteristic</title><link>https://devzone.nordicsemi.com/thread/188857?ContentTypeID=1</link><pubDate>Thu, 23 May 2019 13:47:04 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f9b9e71-f491-485b-8c9f-ee303ab5daa1</guid><dc:creator>Vidar Berg</dc:creator><description>&lt;p&gt;Hi Paul,&lt;/p&gt;
&lt;p&gt;1. It should be enough to set&amp;nbsp;NRF_SDH_BLE_SERVICE_CHANGED to &amp;#39;1&amp;#39; in skd_config.h. Have you done this?&lt;/p&gt;
&lt;p&gt;nRFconnect on Android connected to bootloader in DFU mode after adding SC:&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="https://devzone.nordicsemi.com/resized-image/__size/320x240/__key/support-attachments/beef5d1b77644c448dabff31668f3a47-1870bcad73ec40df9d8dfb8d725339f1/Screenshot_5F00_20190523_2D00_151058_5B00_1_5D00_.png" /&gt;&lt;/p&gt;
&lt;p&gt;2. The bootloader will use a different BT address as long as you don&amp;#39;t compile the bootloader with&amp;nbsp;NRF_DFU_BLE_REQUIRES_BONDS=1. This eliminates caching issues between app and bootloader. But I would still recommend adding the service changed characteristic just in case you need to update&amp;nbsp;the GATT table in the bootloader in the future.&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;3. It depends on whether you are bonded or not. The client shall not cache attributes across connections if hasn&amp;#39;t&amp;nbsp;bonded with peripheral and the SC characteristic is present. If it is bonded, the peripheral must send the indication to let the client know that it needs that the attribute table has been updated. Please refer to core spec v.5, vol 3, part G, section 2.5.2 for a better explanation.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;4. Recommend&amp;nbsp;let the peer manager handle this if you are using it? But with the patch I posted here: &lt;a href="https://devzone.nordicsemi.com/f/nordic-q-a/46633/peer-manager-silently-drop-service-changed-indications-if-an-att-mtu-exchange-was-happening/185510#185510"&gt;https://devzone.nordicsemi.com/f/nordic-q-a/46633/peer-manager-silently-drop-service-changed-indications-if-an-att-mtu-exchange-was-happening/185510#185510&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Vidar&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>