How to merge DFU application into ble_app_uart ?

Hi, I'm developing an application based on ble_app_uart, and integrate FOTA is the last feature.
I'm using sdk16, S140, nRF52833. I plan update firmware over BLE, so I have followed some guide such as thread, thread
I try to run example secure_bootloader s140_debug and it work on my custom board

But now I don't know where I start. I have experience merge saadc, pwm, libuarte into ble_app_uart, so adding libraries is not my problem. DFU is quite complicated
1. I need to change some config like bootloader's flash address, flash_placement.xml, sdk config, linker or somethings....?
2. I have 2 option DFU =>  buttonless or button which example should I follow to reference
3. What is important step may I miss ?

So, first please give me some link, advise to start with DFU integrated into ble_app_uart ? Where I should start ? what are configurations ?
Thank u so much
Best regard !

  • Hi, Hung Bui
    I got it thank for your reply

    1. So I have an problem when trying to merge my application with buttonless
    After adding library and include file, I can run the buttonless example (by replace main.c of my application by button_less) and it worked ok. But when I use main.c that merged buttonless and my application but it not worked. 
    I followed this tutorial 
    What step I may missed ? My main application only NUS service to transfer uart data. Not bonding

    2. If i use buttonless, can I use the button that defined in bootloader sdk_cofig.h to enter DFU mode ? 

  • Hi Rocklee,

    1. I'm not familiar with the tutorial that you used as it's not from us. But basically what you need to do is to add the DFU buttonless service into the application. And then handle the call back from the service. You may need to increase the number of vendor specific UUID in sdk_config.h. 
    If you application doesn't work you need to debug it and check what exactly doesn't work. 

    2. The feature to enter DFU mode is implemented on the bootloader, not on the application, so it's doesn't matter if you use buttonless or not. 

Related