This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

BLE DFU example is not connectable

Hi,

I have been trying to get the BLE secure DFU example working on a custom board (nrf52840 - BC840 module). I tried it on SDK 15 and SDK 16. When I flash the BLE DFU, I can see it advertise on my mobile (nrfConnect) but I am unable to connect. 

I can, however, connect to it using nrfConnect on the PC. But I have noticed that the RSSI seems a little lower than usual anyhow.

You might think this is a hardware issue but:

  • I flash, s140 6.1.1 softdevice + my app -> no issues
  • I flash pre-compiled "secure dfu test images" -> no issues
  • I compile the SDK 16 secure BLE DFU example, I make flash_softdevice + make flash -> issues
  • I have also used the SDK 15 BLE DFU example but I needed to merge the softdevice and bootloader -> issues

My first idea to solve this was to check my sdk_config.h and make sure that the LF clock settings are correct. I have tried a number of settings without luck. I have on LF crystal on board, but even when I chose the RC clock, it had the same issue.

Finally, I have a nrf52832 dev board (BMD-350-EVAL). When I program the exact same example to the dev board it works fine. So my guess is there is something different about the nrf52832 vs nrf52840 examples/hardware. But I am not really sure.

You help is appreciated!

Parents Reply Children
  • Ok, could you flash the debug version of the bootloader example for the nRF52840, i.e. the one found in nRF5_SDK_16.0.0_684aa2c\examples\dfu\secure_bootloader\pca10056_s140_ble_debug and post the log output from the device when you connect to it with your smartphone. Also please post the entire log from nRF Connect on the mobile side. 

  • Ok so, I got this from the RTT Viewer

    <00> info> app: Inside main
    00> 
    <00> debug> app: In nrf_bootloader_init
    00> 
    <00> debug> nrf_dfu_settings: Calling nrf_dfu_settings_init()...
    00> 
    <00> debug> nrf_dfu_flash: Initializing nrf_fstorage_nvmc backend.
    00> 
    <00> debug> nrf_dfu_settings: Using settings page.
    00> 
    <00> debug> nrf_dfu_settings: Copying forbidden parts from backup page.
    00> 
    <00> debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    00> 
    <00> info> nrf_dfu_settings: Backing up settings page to address 0xFE000.
    00> 
    <00> debug> nrf_dfu_settings: Destination settings are identical to source, write not needed. Skipping.
    00> 
    <00> debug> app: Enter nrf_bootloader_fw_activate
    00> 
    <00> info> app: No firmware to activate.
    00> 
    <00> info> app: Boot validation failed. No valid app to boot.
    00> 
    <00> debug> app: DFU mode because app is not valid.
    00> 
    <00> info> nrf_bootloader_wdt: WDT is not enabled
    00> 
    <00> debug> app: in weak nrf_dfu_init_user
    00> 
    <00> debug> app: timer_stop (0x200057C4)
    00> 
    <00> debug> app: timer_activate (0x200057C4)
    00> 
    <00> info> app: Entering DFU mode.
    00> 
    <00> debug> app: Initializing transports (found: 1)
    00> 
    <00> debug> nrf_dfu_ble: Initializing BLE DFU transport
    00> 
    <00> debug> nrf_dfu_ble: Setting up vector table: 0x000F1000
    00> 
    <00> debug> nrf_dfu_ble: Enabling SoftDevice.
    00> 
    <00> debug> nrf_dfu_ble: Configuring BLE stack.
    00> 
    <00> debug> nrf_dfu_ble: Enabling the BLE stack.
    00> 
    <00> debug> nrf_dfu_ble: No advertising name found
    00> 
    <00> debug> nrf_dfu_ble: Using default advertising name
    00> 
    <00> debug> nrf_dfu_ble: Advertising...
    00> 
    <00> debug> nrf_dfu_ble: BLE DFU transport initialized.
    00> 
    <00> debug> nrf_dfu_flash: Initializing nrf_fstorage_sd backend.
    00> 
    <00> debug> app: Enter main loop
    00> 

    And this is the log from my mobile phone.

    As you can see I tried to connect 4 times. This error code is different than the one I get from the pca10056_s140_ble project.

  • A new board arrived with an ISP-1807 module and this issue is no longer a problem. I am not sure why it was causing issues on the BC840 module - and it was confusing because everything else worked except the bootloader. Even during normal application, I could advertise and connect on my phone.

    Anyway, this now works on the new board. Thanks for your help.

  • I have the same exact problem. Can I please get help form nordic to debug this issue? I am not expecting any hardware update to my board so I need to get it going. We are using BMD-301. Thanks!

Related