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

Can't OTA-DFU

I have the nRF51-DK development kit (PCA 10028). I'm following the gcc tutorial here - devzone.nordicsemi.com/.../.
I'm using the ble_apps_hrs project as a basis for my project. I've added uart support as well as enabled BLE DFU support by comparing the differences in the ble_apps_hrs Makefile for the s110 and s110_with_dfu builds. My app builds and I can load it onto my dev board.
I've also installed nRF Master Control Panel onto my Samsung S3 running Android 4.4.2. Using this, I can see the dev board, and I see the DFU icon just to the left of the 3 dots. I've built another version of my app with a minor change (different string sent out the UART on power-up), and I use nrfutil to create a zip package which I store on my phone. To create the zip package, I use "nrfutil dfu genpkg --application strobe.bin strobe.zip" from a windows cmd prompt. I then copy the zip package to my phone. However, when I hit the DFU icon and select my zip package, I get a series of "Connecting...", "Starting DFU...", and "Starting bootloader..." messages from nRF Master Control Panel. It also indicates Status: UPLOADING... during this time. I've tried various combinations of using Distribution packet(ZIP) and Application file types, bonded and not bonded. Each time through the series of 3 messages, my application restarts and sends a debug msg out the UART. However, when it's all done, the new application is not loaded onto the board. What am I missing? Thanks...

Brian

Parents
  • Hi Brian,

    Have you flashed the bootloader to the board ? You should first flash the bootloader, then use the bootloader to upload your application. After that you can do DFU from your application.

    You can test with our .zip example file included in the Nordic Semiconductor/Board/PCA10028 folder on your Android phone. Such as the ble_app_hrm_dfu_s110_v8_0_0_sdk_v_9_0.zip

    After you have tested with the example and all works, you can try with your app. Note that you have to generate the .zip file with more parameter such as application-version, dev-revision, etc

    Basically it should look like:

    nrfutil dfu genpkg app.zip --application yourapplication.hex --application-version 0xffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe
    
Reply
  • Hi Brian,

    Have you flashed the bootloader to the board ? You should first flash the bootloader, then use the bootloader to upload your application. After that you can do DFU from your application.

    You can test with our .zip example file included in the Nordic Semiconductor/Board/PCA10028 folder on your Android phone. Such as the ble_app_hrm_dfu_s110_v8_0_0_sdk_v_9_0.zip

    After you have tested with the example and all works, you can try with your app. Note that you have to generate the .zip file with more parameter such as application-version, dev-revision, etc

    Basically it should look like:

    nrfutil dfu genpkg app.zip --application yourapplication.hex --application-version 0xffff --dev-revision 0xffff --dev-type 0xffff --sd-req 0xfffe
    
Children
  • How do I tell if the bootloader is flashed? My makefile is building the file components/libraries/bootloader_dfu/bootloader_util.c, so I assume I have the bootloader flashed. Do I need to do more than that to get the bootloader. I'm using Eclipse as my development environment, and have flashed the S110 Soft Device and my application (+ bootloader???) to the board using the J-Link debugger. Would my app even run if it did not have a bootloader? I'm attaching my Makefile for reference.

    Makefile

    Thanks...

    Brian

Related