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

Problem in switching to DFU mode without button pressed (custom board)

Hi,

I have a custom board with nrf51822QFAA(256K flash) and I'm trying to test DFU-OTA (BLE transport) for an application. With only Softdevice and bootloader installed, I was able to successfully flash the application(application.hex) using DFU profile in nRFToolbox. More info can be found here.

Now I'd like to put NRF51822QFAA into DFU mode, with an existing application (say ble_app_hrs_dfu application from the SDK V6.1.0). As this is a custom board, It does not have button #7 (as mentioned in the sample application) to enter into DFU mode. Currently I'm stuck at step 2 of the Testing as the target board(which after flashing is advertising as Nordic_HRM) fails to complete service discovery, with Nordic Master control panel (android v2.1.1). As on this custom board, there is no external oscillator, hence updated ble_stack_init in bootloader(also from the SDK v6.1.0) as:

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_2000MS_CALIBRATION, true);

and similarly ble_stack_init in application (ble_app_hrs_dfu) as:

SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_2000MS_CALIBRATION, false);

Steps:

  • Erase all using nrfjprog.exe
  • Flash SD (v 7.1.0) using nRFGO Studio
  • Flash bootloader using KEIL uVision, J-link and nrfjprog.exe
  • Program the application using using KEIL uVision, J-link (without using nrfjprog.exe)
  • Write 0x1 at the address 0x03fc000(BOOTLOADER_SETTINGS_ADDRESS) using nrfjprog.exe
  • Observe that the device now advertises as Nordic_HRM
  • Attempt to use MCP to switch into Bootloader mode (DFU_Targ)
  • Result: Service discovery fails

Attached here is the log file generated by nRF Logger. (Note: Device address is modified in the log file to preserve the identity).

Log 2015-06-08 18-13-33.txt

Parents
  • I've now another issue. I'm now not able to boot from the application f/w which is flashed using normal method (J-link and KEIL). Please see the steps below for complete information:

    • Erase all using nrfjprog.exe

    • Flash SD v7.1.0 using nRFStudio Go.

    • Flash Bootloader using Keil, J-link and nrfjprog.exe

    • Observe that the Device now starts advertising as "Dfu Targ"

    • Flash application using nRF Toolbox

    • Observe that the device now starts advertising as "test_01"

    • Read memory location 0x03fc00 using nrfjprog.exe

      0x0003FC00: 772B0001 000000FF |..+w....|

    • Flash application f/w using Keil, J-link and without any external utility (nrfjprog.exe)

    Expection:

    New application f/w (say test_02) should show up

    Actual result:

    Device stays in bootloader mode, i.e. starts advertising as "Dfu Targ"

Reply
  • I've now another issue. I'm now not able to boot from the application f/w which is flashed using normal method (J-link and KEIL). Please see the steps below for complete information:

    • Erase all using nrfjprog.exe

    • Flash SD v7.1.0 using nRFStudio Go.

    • Flash Bootloader using Keil, J-link and nrfjprog.exe

    • Observe that the Device now starts advertising as "Dfu Targ"

    • Flash application using nRF Toolbox

    • Observe that the device now starts advertising as "test_01"

    • Read memory location 0x03fc00 using nrfjprog.exe

      0x0003FC00: 772B0001 000000FF |..+w....|

    • Flash application f/w using Keil, J-link and without any external utility (nrfjprog.exe)

    Expection:

    New application f/w (say test_02) should show up

    Actual result:

    Device stays in bootloader mode, i.e. starts advertising as "Dfu Targ"

Children
No Data
Related