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

sd130 and sdk12.1.0 ble bootloader problem

I'm sorry. I closed this question and can't reopen. I need more answer. If I solve all problem I'll close this question.

As you mentioned I'll try HW version modification. And I'll add the result.


Hello,

I have some problem in DFU. I ask this again. I did as below.

  1. private key generation nrfutil keys generate c:\vault\priv.pem

  2. public key generation in code format nrfutil keys display --key pk --format hex c:\vault\priv.pem nrfutil keys display --key pk --format code c:\vault\priv.pem nrfutil keys display --key pk --format code c:\vault\priv.pem --out_file dfu_public_key.c

  3. experimental_ble_app_buttonless_dfu project compile and package file make nrfutil pkg generate --hw-version 1 --sd-req 0x87 --application-version 4 --application nrf51422_xxac.hex --key-file key.pem app_dfu_package.zip

  4. bootloader_secure compile with dfu_public_key.c(made in process 2) and bootloader setting file make nrfutil settings generate --family NRF51--application nrf51422_xxac.hex --application-version 3 --bootloader-version 2 --bl-settings-version 1 settings.hex

  5. merge bootloader and settings hex file mergehex -m nrf51422_xxac_s130 settings.hex -o output_file.hex

  6. SD130 / output_file.hex program into PCA10028 Board after erase all

  7. I try DFU in android phone. I can see DfuTarg. But, It fails to DFU app_dfu_package.zip(made in process 3).

What’s wrong? I don’t know.

**I want DFU process as below.

  1. my application run when power on
  2. bootloader enter(using buttonless_dfu projecs - Already I merged with my application.) after some key input (This key is in my custom board.)
  3. upload my new F/W using bootloader_secure in android phone.
  4. my new application run again after DFU done.**

I need your help eagerly.

Parents
  • Hi air, there is a bug in the buttonless examples so if you have tried to write to the DFU control, but the device is not jumping to bootloader mode then you have add the write permission to the control point characteristic as described in this answer.

    If you want to switch to bootloader with a button press then you have to call the enter_bootloader() function in ble_dfu.c once you get an interrupt from the button pin. Or you can simply do

    s_dfu_settings.enter_buttonless_dfu = true;
    
    (void)nrf_dfu_settings_write(flash_callback);
    
    sd_nvic_SystemReset();
    
Reply
  • Hi air, there is a bug in the buttonless examples so if you have tried to write to the DFU control, but the device is not jumping to bootloader mode then you have add the write permission to the control point characteristic as described in this answer.

    If you want to switch to bootloader with a button press then you have to call the enter_bootloader() function in ble_dfu.c once you get an interrupt from the button pin. Or you can simply do

    s_dfu_settings.enter_buttonless_dfu = true;
    
    (void)nrf_dfu_settings_write(flash_callback);
    
    sd_nvic_SystemReset();
    
Children
No Data
Related