This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Issues with DFU for SD v7

Hey!

I'm testing out the new SoftDevice and am trying to update firmware OTA but thus far have not been able to do so. I've tried from the Master Control Panel android app (v 2.0.2). I can discover and connect to DfuTarg no problem but when I try to actually update the firmware it gets to 0%, hangs there for maybe 5 seconds, and then disconnects. I also tried from the PC version of Master Control Panel (v3.7.0) and the same thing happened. It connected, discovered, started DFU, and hung at zero.

The SoftDevice is version 7.0.0 flashed from nRFgo Studio (v 1.17.0.3211), the bootloader is the version from SDK v6.1.0, and the firmware I'm trying to upload is the heart rate sensor app from the same SDK. This app works fine when flashed via nRFgo Studio.

I'm using a custom board and so have modified SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, true) in ble_stack_init() to be SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM, false).

Thanks for your help ^^

  • The 32 kHz synthesized source is not tester or recommended with the S110 stack. Use NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION instead and that should enable you to use the bootloader and DFU.

  • Hi

    This is working fine on my side with the standard ble_app_hrs.hex example from nRF51 SDK v6.1.0, S110 v7.0.0 and the default bootloader provided in nrf51 SDK v6.1.0. I upload the new application with the nRF Master Control Panel for Android v2.0.2 on Samsung Galaxy S4.

    So I suggest you try what Asbjørn has suggested already to see if that fixes the problem

  • Hi

    I've found the same error. My configuration is as follows:

    • SDK 6.1.0.0 using ble_app_hrs_dfu project without any change.
    • s110_nrf51822_7.0.0_softdevice.hex
    • nRFgoStudio 1.17.0
    • MCP 3.6.0

    I have used the following documentation:

    devzone.nordicsemi.com/.../a00076.html

    On the step 6, I click back but I can only see the device advertising again as 'Nordic_HRM'. I couldn't find the string "DfuTarg" searching files on the current project.

    Debugging I could see that the code is calling the bootloader_start function.

    Any other suggestion to test on my side?

    I have also tried the dfu with the nRF Toolbox from a nexus 4 and iphone 5 without any luck.

    Thanks.

    Screen Captures

    Before flashing the bootloader After flashing the bootloader

  • Success! I tested it with both the MCP app (v2.0.2 on a Nexus 5) and the PC program. Here are all the changes that I made in case they're useful to anyone else ^^

    1. In ble_stack_init() of the heart rate sensor app, change "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, false)" to "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION , false)"

    2. In ble_stack_init() of the bootloader, change "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_XTAL_20_PPM, true)" to "SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_250MS_CALIBRATION, true)"

    I also changed the LED pins used by the applications to those appropriate to my board but somehow I don't think that's what solved my problem.

    Thanks for your help, guys ^^

  • Also, a quick heads up for you Nordic folks: this thread, and this one both recommend setting the clock source to NRF_CLOCK_LFCLKSRC_SYNTH_250_PPM as a fix for the custom board issue (that's where I got the idea to do so in the first place). If that's changed with v7, you might want to make sure that the forums acknowledge this.

Related