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

SDK 12.3.0 DFU service not work

Hi Forums,

I work 51822 custom board.

I try to add Buttonless DFU so I test the "experimental_ble_app_buttonless_dfu" compile is good.

But flash to the board can't find DFU service on NRF Connect tool.

I search online then find most discuss SDK 12.1.0 So I download SDK 12.1.0 build "experimental_ble_app_buttonless_dfu" then flash to board. Magic! It's fine.

I think is strange so try test SDK 12.2.0 . Sadly not worked.

What's different between SDK 12.1.0 ~ SDK 12.2.0 make ble dfu service not work?

Is any suggestion to fix this on SDK 12.3.0?

Thanks for any information.

Parents
  • There is a bootloader settings section that is missing in the linker script, so if you modify the ble_app_buttonless_dfu_gcc_nrf51.ld to the following you should be able to get the buttonless example to run.

    /* Linker script to configure memory regions. */
    
    SEARCH_DIR(.)
    GROUP(-lgcc -lc -lnosys)
    
    MEMORY
    {
      FLASH (rx) : ORIGIN = 0x1b000, LENGTH = 0x24000
      RAM (rwx) :  ORIGIN = 0x20001ff8, LENGTH = 0x6008
      BOOTLOADER_SETTINGS (rw) : ORIGIN = 0x0003F000, LENGTH = 0x1000
    }
    
    SECTIONS
    {
      .bootloaderSettings(NOLOAD) :
      {
    
      } > BOOTLOADER_SETTINGS
      
      .fs_data :
      {
        PROVIDE(__start_fs_data = .);
        KEEP(*(.fs_data))
        PROVIDE(__stop_fs_data = .);
      } > RAM
      .pwr_mgmt_data :
      {
        PROVIDE(__start_pwr_mgmt_data = .);
        KEEP(*(.pwr_mgmt_data))
        PROVIDE(__stop_pwr_mgmt_data = .);
      } > RAM
    } INSERT AFTER .data;
    
    INCLUDE "nrf5x_common.ld"
    
  • Hi Bjørn,

    Thanks your patient answer now is great see the DFU service back on buttonless example.

    But still have some little problem I can't jump to the bootloader when I press DFU on NRF Connect App.

    My flow is erase flash -> load softdevice s130 2.0.1 -> load secure bootloader

    switch to android NRF Connect: connect DfuTarg ->press DFU update DFU app_package.zip -> success -> connect buttonless service -> press DFU update DFU app_package.zip -> loop connecting then staring bootloader.

    Is I did something wrong of bootloader?

Reply
  • Hi Bjørn,

    Thanks your patient answer now is great see the DFU service back on buttonless example.

    But still have some little problem I can't jump to the bootloader when I press DFU on NRF Connect App.

    My flow is erase flash -> load softdevice s130 2.0.1 -> load secure bootloader

    switch to android NRF Connect: connect DfuTarg ->press DFU update DFU app_package.zip -> success -> connect buttonless service -> press DFU update DFU app_package.zip -> loop connecting then staring bootloader.

    Is I did something wrong of bootloader?

Children
No Data
Related