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

Problem with DFU bootloader SDK 11: when discover services in bootloader mode device resets

Hello!

I have problem with DFU bootloader on nRF51822-xxAA.

For first, I made all steps for upload bootloader(erase chip, upload SD s130, upload bootloader). I used example dual_bank_ble_s130 with small changes for my custom board (My board haven't buttons).

Next, I uploaded over the air hex file dfu_test_app_hrm_s130_w_dfu.hex, from exampls too. All work nice. I can see device "Nordic_HRM" in MCP and can start DFU process.

And finally, I made my application with DFU BLE Service. Upload this app via MCP. Application work fine, in MCP i see DFU characteristics and can start DFU procces, BUT in bootloader after reconnect device is reset.

Additionaly, In MCP I can enable DFU Control Point notification, Write 0x0001 to DFU Control Point, next bootloader starts, connection lost. After that I click connect in MCP and connect to bootloader. And here is the problem, I click to discover services and device is reset and application starts. When I decover services in bootloared without any uploaded application and with dfu_test_app_hrm_s130_w_dfu.hex all work fine.

Help solve the problem.

  • @Sonr09: Could you try to test with the ble_app_hrs with dfu example in the SDK ? I suspect that there could be something running in your application caused the issue.

    A log+ sniffer trace would be useful to know why the bootloader reset when you connect.

  • @Hung Bui, I can't upload via OTA ble_app_hrs with dfu, becouse "Data Size Exceeds Limit".

  • The main problem is restart bootloader when connect to device in bootloader and discover services. It happens when my application code uploaded in device. Before It bootloader works fine with example files like file dfu_test_app_hrm_s130_w_dfu.hex

  • Log from MCP

    [15:36:19.2] GetDeviceInfo()

    [15:36:19.6] Discovering all attribute UUIDs

    [15:36:19.6] Handle: 0x0001, UUID: 0x2800

    [15:36:19.6] Received a Service group UUID

    [15:36:19.6] Handle: 0x0002, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x0003, UUID: 0x2A00

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x0004, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x0005, UUID: 0x2A01

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x0006, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x0007, UUID: 0x2A04

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x0008, UUID: 0x2800

    [15:36:19.6] Received a Service group UUID

    [15:36:19.6] Handle: 0x0009, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x000A, UUID: 0x2A05

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x000B, UUID: 0x2902

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x000C, UUID: 0x2800

    [15:36:19.6] Received a Service group UUID

    [15:36:19.6] Handle: 0x000D, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x000E, UUID: 0x15321212EFDE1523785FEABCD123

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x000F, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x0010, UUID: 0x15311212EFDE1523785FEABCD123

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x0011, UUID: 0x2902

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Handle: 0x0012, UUID: 0x2803

    [15:36:19.6] Received a Characteristic Group group UUID

    [15:36:19.6] Handle: 0x0013, UUID: 0x15341212EFDE1523785FEABCD123

    [15:36:19.6] Received a Characteristic Group group attribute

    [15:36:19.6] Discovering all attribute values

    [15:36:19.6] Received Read Response, handle: 0x0001, value (0x): 00-18

    [15:36:19.7] Received Read Response, handle: 0x0002, value (0x): 0A-03-00-00-2A

    [15:36:19.7] Received Read Response, handle: 0x0003, value (0x): 44-66-75-54-61-72-67

    [15:36:19.7] Received Read Response, handle: 0x0004, value (0x): 02-05-00-01-2A

    [15:36:19.8] Received Read Response, handle: 0x0005, value (0x): 00-00

    [15:36:19.8] Received Read Response, handle: 0x0006, value (0x): 02-07-00-04-2A

    [15:36:19.9] Received Read Response, handle: 0x0007, value (0x): 0C-00-18-00-00-00-90-01

    [15:36:19.9] Received Read Response, handle: 0x0008, value (0x): 01-18

    [15:36:19.9] Received Read Response, handle: 0x0009, value (0x): 20-0A-00-05-2A

    [15:36:20.0] Received Error Response: READ_NOT_PERMITTED, handle: 0x000A

    [15:36:23.0] Lost connection to device. Reason: BTLE_CONNECTION_TIMEOUT

    [15:36:23.0] SERVER: Received packet <HciEvent: eventCode=0x0A> - <HciEvent: eventCode=0x0A>

    [15:36:23.0] SERVER: Received Link Loss

    [15:36:23.1] No response received for ReadRequest on handle 0x000B. Disconnecting..

    [15:36:23.1] Service discovery aborted, connection terminated.

  • Do you have anything special in your application ? Such as WDT ?

    What are the peripheral used in your application ?

    Have you tried to DFU other example beside the HRM example ?

Related