<?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>Internal LF crystal causes buttonless DFU failed</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/89564/internal-lf-crystal-causes-buttonless-dfu-failed</link><description>Hello there, 
 
 The same code works reliably on dev kit but not on my customized hardware. By cutting the 32k external crystal jumper on the dev kit, the same failure can be preproduced repeatly. After searching this forum, this seems an old issue and</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 05 Jul 2022 14:00:19 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/89564/internal-lf-crystal-causes-buttonless-dfu-failed" /><item><title>RE: Internal LF crystal causes buttonless DFU failed</title><link>https://devzone.nordicsemi.com/thread/375591?ContentTypeID=1</link><pubDate>Tue, 05 Jul 2022 14:00:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:daacc89a-92bf-4540-8c21-6d056fb0601c</guid><dc:creator>LHZ</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;The problem was solved and thanks&amp;nbsp;for your guide.&lt;/p&gt;
&lt;p&gt;This full BLE code was locked over a year ago as a sub project in the main product development.&amp;nbsp; So, I have forgotten the DFU bootloader image was compiled separately and linked into.&amp;nbsp; What I kept changing was the BLE general config file, not the bootloader config file.&amp;nbsp; Your questions led me to check the full code structure and figured out my error.&lt;/p&gt;
&lt;p&gt;Thank you again,&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Haizhou&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internal LF crystal causes buttonless DFU failed</title><link>https://devzone.nordicsemi.com/thread/375468?ContentTypeID=1</link><pubDate>Tue, 05 Jul 2022 08:02:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a9ca084-5401-440c-8840-cdce6e6405bb</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;What SDK version and bootloader project are you using?&lt;/p&gt;
&lt;p&gt;I&amp;#39;ll assume it is SDK17.1.0 and the pca10040_s132_ble until you tell otherwise.&lt;/p&gt;
&lt;p&gt;Can you please describe a bit more with what you mean by &amp;quot;but it failed&amp;quot;? Does the bootloader start? Do you see the LEDs indicating DFU mode on the DK? Does it advertise? Assuming you are using BLE? Are you able to connect to it? Can you transfer the image? Where does it fail?&lt;/p&gt;
&lt;p&gt;If you are not sure where it is failing, perhaps you can test the pca10040_s132_ble_debug bootloader example. It will have RTT logging turned on, so perhaps it gives some pointers to where it fails.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internal LF crystal causes buttonless DFU failed</title><link>https://devzone.nordicsemi.com/thread/375418?ContentTypeID=1</link><pubDate>Mon, 04 Jul 2022 20:28:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a605ede6-93d1-440b-a41b-371b05d4d324</guid><dc:creator>LHZ</dc:creator><description>&lt;p&gt;Hello Edvin,&lt;/p&gt;
&lt;p&gt;Thank you so much for the reply!&lt;/p&gt;
&lt;p&gt;The setting you recommend is exactly what I&amp;nbsp;am using&amp;nbsp;in my code since this project began. This code works very reliably on my customized board for general features, but NOT for DFU.&lt;/p&gt;
&lt;p&gt;Here is my situation:&lt;/p&gt;
&lt;p&gt;The customized board was designed without 32k LF crystal. This code works very well on both my customized board and the PCA10040 dev kit.&amp;nbsp; The code used the same setting your mentioned.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;But when I tried to implement the DFU feature, it still worked reliably on the PCA 10040 kit, but it failed on my customized board.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Then, I cut the Jumper SB1 and SB2 on the PCA10040 kit, the DFU immediately stopped working. It proved the 32K LF crystal is very likely the reason.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;All above was run with the same setting you recommend.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I searched this forum and followed others&amp;#39; recommendation. I tried to change the setting to Synth (2); I also changed&amp;nbsp;the&amp;nbsp;&lt;span&gt;NRF_SDH_CLOCK_LF_ACCURACY&amp;nbsp;to other PPM setting.&amp;nbsp; I tried all combination over these parameters. But no combination&amp;nbsp;worked.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;If we just&amp;nbsp;ignore my customized board and stick with the PCA10040, is there a reliable way to have the DFU working when the SB1 and SB2 were cut?&amp;nbsp; Could you please verify or confirm the setting on the PCA10040 in your end?&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thank you so much!&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Haizhou&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Internal LF crystal causes buttonless DFU failed</title><link>https://devzone.nordicsemi.com/thread/375357?ContentTypeID=1</link><pubDate>Mon, 04 Jul 2022 14:18:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a203602c-531f-4ec7-acda-45a3dd13097f</guid><dc:creator>Edvin</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;If you don&amp;#39;t have an external LFXTAL, then you need to make sure that your application is aware of this (and the bootloader, probably. At least if you are using a BLE bootloader).&lt;/p&gt;
&lt;p&gt;Please open sdk_config.h and look for the following definitions, and set them accordingly:&lt;/p&gt;
&lt;p&gt;NRFX_CLOCK_CONFIG_LF_SRC 0 // if this one is not present, that is fine. Just ignore it.&lt;/p&gt;
&lt;p&gt;NRF_SDH_CLOCK_LF_SRC 0&lt;/p&gt;
&lt;p&gt;NRF_SDH_CLOCK_LF_RC_CTIV 16&lt;/p&gt;
&lt;p&gt;NRF_SDH_CLOCK_LF_RC_TEMP_CTIV 2&lt;/p&gt;
&lt;p&gt;NRF_SDH_CLOCK_LF_ACCURACY 1&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Try that and let me know if that doesn&amp;#39;t work.&lt;/p&gt;
&lt;p&gt;Best regards,&lt;/p&gt;
&lt;p&gt;Edvin&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>