NRF51802 DFU is not broadcasting

Hi,

    My nRF51802QFAA Module without an external 32khz oszillator.

    I use SDK 12.3.0 with keil,the ble_app_uart template works well the configs as below.

#define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
 .rc_ctiv = 16, \
 .rc_temp_ctiv = 2, \
 .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}

but the experimental_ant_bootloader and bootloader_secure/pca10028 template  can not wrok,I have experience with 52832 DFU and I tried many ways, but it didn't work.

my bootloader_secure/pca10028 configs for keil:

I bulid it according to your experimental_ant_bootloader  template,It also has a DFU service successful,However, Dfutarg broadcast cannot into.

And Is this script right with nRF51802QFAA?

nrfutil settings generate --no-backup --family NRF51 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 settings.hex

mergehex --merge bootloader.hex settings.hex --output bl_temp.hex
mergehex --merge bl_temp.hex app.hex s130_nrf51_2.0.1_softdevice.hex --output BLE_Latest.hex

nrfutil pkg generate --hw-version 52 --sd-req 0x87 --application-version 1 --application app.hex  --key-file private.pem BLE_ota.zip

  • Hi,

    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
     .rc_ctiv = 16, \
     .rc_temp_ctiv = 2, \
     .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}

    Did you remember to apply this configuration in your bootloader project too? If so, can you try to debug the bootloader via Keil to see where the program hangs?

    I bulid it according to your experimental_ant_bootloader  template,It also has a DFU service successful,However, Dfutarg broadcast cannot into.

    This bootloader is for ANT only, but it seems like you are planning to use BLE?

    nrfutil settings generate --no-backup --family NRF51 --application app.hex --application-version 1 --bootloader-version 1 --bl-settings-version 1 settings.hex

    mergehex --merge bootloader.hex settings.hex --output bl_temp.hex
    mergehex --merge bl_temp.hex app.hex s130_nrf51_2.0.1_softdevice.hex --output BLE_Latest.hex

    nrfutil pkg generate --hw-version 52 --sd-req 0x87 --application-version 1 --application app.hex  --key-file private.pem BLE_ota.zip

    Yes, except the --hw-version should be set to '51' and '52' if you use the default bootloader configuration.

    Best regards,

    Vidar

  • Thanks for replying,Sorry,I've made a mistake in this ticket, in fact I build bootloader_secure and according to experimental_ble_app_buttonless_dfu/pca10028,and I also set it in pca10028.h in  bootloader_secure project,and download the flash_s130_nrf51_2.0.1_softdevice.hex & bootloader.hex but it still dose not work,please help me check the IROM IRAM setting for nRF51802QFAA bootloader,thanks.

    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
     .rc_ctiv = 16, \
     .rc_temp_ctiv = 2, \
     .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}

  • The IROM/IRAM settings look correct. Did you change anything else like changing the device type from 51422_XXAC to 51802? 

    boysplay said:
    when download flash_s130_nrf51_2.0.1_softdevice and dfu\bootloader_secure\pca10028_debug\,there is nothing run,no log info output.

    Could you start execution, then pause it and take a screenshot of the CPU register view?

  • bootloader setting as below,

    #define NRF_CLOCK_LFCLKSRC {.source = NRF_CLOCK_LF_SRC_RC, \
    														 .rc_ctiv = 16, \
    														 .rc_temp_ctiv = 2, \
    														 .xtal_accuracy = NRF_CLOCK_LF_XTAL_ACCURACY_20_PPM}

    //    if (nrf_gpio_pin_read(BOOTLOADER_BUTTON) == 0)
    //    {
    //        return true;
    //    }

    without an external 32khz oszillator successfully for Dfutarg,share with you,thanks a lot.

  • For app project setting.

    • define  NRF_DFU_SETTINGS_VERSION=1

    p_ble_enable_params->common_enable_params.vs_uuid_count   = 2;

    when download bootloader with keil,setting as below:

Related