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

Unable to upload program on board after upgrading to SDK15.3

Hi,

We have a working solution on the SDK15.0.0 with a custom board based on nrf52832 s132. I'm using the nrf52dk PCA10040 to program my boards. For this board we use a buttonless version of the bootloader based on the example : examples/dfu/secure_bootloader/pca10040_ble/

Recently we have updated to SDK15.3.0, now the firmware is compiling well on this version. I was able to built the same bootloader version from the example folder. I flash the bootloader into my board, I see the DfuTarg, but when I upload my firmware using the nRF Connect app nothing happens, the board stay in DfuTarg mode.

When I upload the bootloader compiled with the SDK15.0.0 in my board then upload the firmware compiled with the SDK15.3 it's working.

As I have stated here, the flash_placement have changed between the two version, so which one should I use ?

Thanks for your advice

  • For information, even after changing the flash_placement with the values from the SDK15.0.0, the issue is the same.

    But looking at the main.c for both version, it looks like the main changes are that this section has been removed, could it be the source of the issue ?

        // First of all, set up the battery charger (STNS01)
    
        // Control charger, pin active high.
        nrf_gpio_cfg_output(PW_CEN); // Charger enable pin : P.25
        // A transition from high to low and then back to high restarts the charger when the charge cycle has been stopped
        nrf_gpio_pin_set(PW_CEN);   // High
        nrf_gpio_pin_clear(PW_CEN); // Low
        nrf_gpio_pin_set(PW_CEN);   // High
    
        // Control shutdown, pin active high.
        nrf_gpio_cfg_output(PW_SD); // Shutdown  pin : P.27
        nrf_gpio_pin_clear(PW_SD);  // Clear the pin will make the board to boot.

  • After comparing with a fresh SDK15.0.0 version just downloaded, it looks like this is something that we have added on our own. So I have added it, changed the prepocessor to include our board (instead of the PCA10040_BOARD).

    I have changed/added some preprocessor as in our previous version :

    APP_TIMER_V2
    APP_TIMER_V2_RTC1_ENABLED
    NRF_DFU_SETTINGS_VERSION=1
    .......

    Change the memory segments to :

    FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x10000;uicr_mbr_params_page RX 0x10001018 0x4;mbr_params_page RX 0x0007E000 0x1000;bootloader_settings_page RX 0x0007F000 0x1000;uicr_bootloader_start_address RX 0x10001014 0x4

    But so far, no changes.

  • Also remove the logs from the main.c

    Compared the sdk_config files and I have changed mainly NRF_BL_DFU_ENTER_METHOD_BUTTON and set it to 0

    Still no changes

  • I have copy/paste my working version of the examples/dfu folder from SDK15.0 and tried to build it on the SDK15.3

    I have modified all the changes required in order to build it (some path that have been changed, removed/added some define in sdk config, etc.) and now it looks like it's working so far...

Related