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

About BLE communication after DFU execution of nRF 52840

Hello.
We evaluate DFU using nRF 52840.
After writing sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex to nRF 52840-DK, we updated using softdevice_s140.zip using nRFConnect for Desktop. I confirmed that updating was successful, software reset was executed and "Noedic Buttonless" was displayed, but BLE communication with nRF 52 - DK with ble_app _ uart _ c written can not be done.
What kind of setting is necessary?

Parents
  • Hi, 

    What do you mean by "BLE communication with nRF 52 - DK with ble_app _ uart _ c written can not be done" ?  I don't think the image support uart profile. 

    My suggestion is to follow my guide here before you test with the buttonless example

     

  • Thank you for responding.

    My confirmation environment is as follows.

    Peripheral: nRF 52840-DK (nRF 52840 + S140 + Secure_BootLoader)
    Central: nRF 52 - DK (nRF 52832 + S 132)

    The target of DFU is firmware of nRF 52840-DK.
    Ble_app_uart_c of SDK v 15.0.0 is running on nRF 52 - DK on the Central side.

    "Sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex" was written in nRF 52840-DK on the peripheral side and restarted.
    In that state, use nRFConnect for Desktop to update the firmware of nRF 52840-DK on Peripheral side with "softdevice_s140.zip" of SDK v15.0.0
    I confirmed that software reset will be executed.
    After that, LED1 of nRF52-DK in which ble_app_uart_c of SDK v15.0.0 is running is in a blinking state (advertised), and communication with nRF 52840-DK on Peripheral side is not possible.
    If the nRF 52840 - DK on the Peripheral side is in DFU mode, is it a perception that you can not communicate with nRF 52 - DK running ble_app_uart_c of SDK v 15.0.0?

    Above, thank you.

  • At the time you write "Sd_s140_bootloader_buttonless_with_setting_page_dfu_secure_ble_debug_without_bonds.hex"  to the nRF52840, it already replace your ble_app_uart firmware. 

    That firmware contain an application, which is the buttonless dfu application. 

    Also our bootloader doesn't support background DFU. You can't continue your application when doing DFU. 

Reply Children
  • Thank you for answering.

    I understand that the background DFU is not supported.
    However, what I want to check is the way the application starts after DFU completes.
    Even if firmware update is performed using buttonless_dfu, the boot loader will
    I do not want to start the application, so I am in trouble because I can not communicate with BLE communication or NFC.
    Procedure to enable the application to run after DFU execution, and from application running with no button
    I would like to know the procedure to transition to DFU mode.

    that's all, thank you very much.

  • You must package up your uart application to use for the dfu process.

    As stated by Hung Bui if you used an example hex file then you have overwritten your uart app during the dfu process, hence why it no longer communicates.

  • thank you for your answer.

    The procedure I did is as follows.

    1. Create an encryption key with urfutil.
    2. Build ble_app_button_dfu and secure_bootloader with armgcc, merge the boot loader setting, boot loader, soft device (S140), application hex file and flush to nRF 52840-DK. (Use the encryption key created in 1)
    3. Update using the application (ble_app_uart) zip file using nRFConnect for Desktop.
    4. LED 1 of nRF 52840-DK does not blink after completion of DFU.
    5. When building with Keil, LED 1 of nRF 52840-DK flashes after DFU finishes.

    It seems that the operation differs between armgcc and Keil.
    Please tell me how to make it the same as keil with armgcc.

    that's all, thank you very much.

  • Hi, 

    Have you checked the application when you built with armgcc (ble_app_uart) works if you flash it directly to the board ? 

    If it works, you may need to test first by updating it with the bootloader (no buttonless ) , similar to what in this guide. 

    You need to check and see if the application has been copied correctly and if the bootloader jump to the application or not. You can debug the application as it was written normally. 

    The protocol to send buttonless to DFU mode is to write 0x01 to the DFU control point , and you need to enable indication before that. 

Related