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

nrf52833 ble dfu how to start?

Hi ,

I need to start my application using sdk5 16.0 version, which should have custom ble servivnced and dfu feature.

After getting some trouble with zephyr os, i decided to test with sdk5. 

But it seems that nrf52833DK is not totally supported in all example. i wanted to start from dfu example and then integrate hrs example. Is it the good way to go ? 

Or may be the best is to start with hrs nfc paring ? but then how to integrate dfu. In the doc of how to integrate dfu, it is not for s113 ... 

I tried to migrate blinky ble from s112 10040e to s113 , i update ll the field but i finnaly get some linking .init errors with UNPLACED label.

I have the the feeling that zephyr or sdk5, nothing is really ready for nrf52833...

But i keep c9nfident, it is not like o wanted to do something ompossible, just  question of tile and good practice i guess.

thanks a lot for your help !

  • So when i  debug, i get this error. That strange because .hex of project secure bootloader is well flashed as shown in memory map

    Debug Window: 

    <error> app: No bootloader was found
    <error> app: ERROR 4 [NRF_ERROR_NO_MEM] at C:\nordic\nRF5SDK160098a08e2\examples\ble_peripheral\ble_app_buttonless_dfu\main.c:854
    PC at: 0x00026075
    <error> app: End of error report
    <error> app: No bootloader was found

  • After searching why bootloader was not in ( even if i thought it was) here is the content of my memory:

    i really have a lake of knowledge on all this memry and boot order settings, where does program start, what do the secure bootloader, when it launch app etc to be able to debug it properly and manage . I'm really afraid of working with dfu and swap partition etc in the futur when i see how it is not so obvious to work with nordic lol.

  • Hi,

    Ah, of course. I always started from the nRF52840 project because it was closest, and did not think about that uicr_bootloader_start_address was not configured in the other. That is the part that is missing. You can just keep the line as is, but if you want to be accurate, you can also change the flash and RAM sizes, so that it becomes 100% accurate (it does not have any practical implication, though).

    FLASH RX 0x0 0x80000;RAM RWX 0x20000000 0x20000;uicr_bootloader_start_address RX 0x10001014 0x4

  • Hi,

    Olfox said:
    So when i  debug, i get this error. That strange because .hex of project secure bootloader is well flashed as shown in memory map

    No, this is expected. The memory map does not show a bootloader. Please refer to the memory layout in the bootloader documentation. As you can see, the bootloader is at the end of the flash (though technically you can move it down as much as you want, but would wast any space above it).

    Are you sure you flashed a bootloader? If so, can you show me exactly how you program the device including all steps (perhaps you delete it later when programming the application or similar)?

  • I thik yes, i'm following the step in the tutorial. With nrfGo, i erase all memories.

    I place hex of soft device. i flash it. then i place the hex of bootloader secure_bootloader_ble_s113_pca10100 with the key i have generated. I flash. Then place my ble_app_buttonless_dfu_pca10100_s113 . i flash.

    But may be i have also to sign with the key my application?

    Because after all this step, i see in mobile app nrfConnect, DfuTarg with dfu services. but i think it is the bootloader that runs only and not the app.

Related