This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2640R2F: OAD FW Update Fails - using provided CC2640R2 BLE SDK 1.35.00.33 examples as-is

Part Number: CC2640R2F
Other Parts Discussed in Thread: CC2640

BLE SDK v1.35.00.33

BTool v1.41.17

Flash Programmer 2 v1.7.5 build #16

CCS v 7.1.0.00016

In an attempt to do use SDK example code to do one on-chip OAD FW update on the CC2640R2 right out of the box, I get an "OAD download not successful" message from BTool. Here are the steps I took, attached are the logs for the BTool transfer output. Im not sure what the issue is and why its failing.

  1. Imported the bim_oad_onchip_cc2640lp_app + oad_target stack projects and compiled
  2. Imported and compiled the oad_target app
  3. Fixed the two issues with the oad_target app compilation (changed .text to use two > instead of one, changed #define for FLASH_IMG_A_START to be FLASH_START+FLASH_OAD_IMG_HDR_SIZE)
  4. Successfully built the oad_target app
  5. Imported and compiled the simple_peripheral oad_onchip example
  6. Programmed one of my CC2640's with these images 
  7. Programmed the other one of my CC2640 with the host_test binary included in the SDK (to be the OAD downloader)
  8. Opened BTool, connected to my OAD downloader, discovered my OAD target "Simple Peripheral" and attempted the OAD update

attachment:

[1] : <Info> - 10:11:02.162
Port opened at 09/05/2017 10:11:02 AM
--------------------------------------------------------------------
[2] : <Tx> - 10:11:02.379
-Type           : 0x01 (Command)
-OpCode         : 0x0C03 (HCI_Reset)
-Data Length    : 0x00 (0) byte(s)
Dump(Tx):
0000:01 03 0C 00                                     ....
--------------------------------------------------------------------
[3] : <Rx> - 10:11:02.449
-Type           : 0x04 (Event)
-EventCode      : 0x000E (HCI_CommandCompleteEvent)
-Data Length    : 0x04 (4) bytes(s)
 Packets        : 0x01 (1)
 OpCode         : 0x0C03 (HCI_Reset)
 Status         : 0x00 (0) (Success)
Dump(Rx):
0000:04 0E 04 01 03 0C 00                            .......
--------------------------------------------------------------------
[4] : <Tx> - 10:11:02.536
-Type           : 0x01 (Command)
-OpCode         : 0xFE00 (GAP_DeviceInit)
-Data Length    : 0x26 (38) byte(s)
 ProfileRole    : 0x08 (8) (Central)
 MaxScanRsps    : 0x14 (20)
 IRK            : 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 CSRK           : 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
 SignCounter    : 0x00000001 (1)
Dump(Tx):
0000:01 00 FE 26 08 14 00 00 00 00 00 00 00 00 00 00 ...&............
0010:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020:00 00 00 00 00 00 01 00 00 00                   ..........
--------------------------------------------------------------------
[5] : <Rx> - 10:11:02.551
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE00 (GAP_DeviceInit)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 00 FE 00                      .........
--------------------------------------------------------------------
[6] : <Rx> - 10:11:02.561
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x2C (44) bytes(s)
 Event          : 0x0600 (1536) (GAP_DeviceInitDone)
 Status         : 0x00 (0) (Success)
 DevAddr        : B0:91:22:69:FE:3D
 DataPktLen     : 0x00FF (255)
 NumDataPkts    : 0x05 (5)
 IRK            : C6:65:E7:2F:F4:A4:3E:90:FC:8C:AC:96:BF:91:D9:44
 CSRK           : 4B:BD:2C:DF:A4:DC:EA:FE:E7:C4:7A:EC:2F:D6:78:16
Dump(Rx):
0000:04 FF 2C 00 06 00 3D FE 69 22 91 B0 FF 00 05 C6 ..,...=.i"......
0010:65 E7 2F F4 A4 3E 90 FC 8C AC 96 BF 91 D9 44 4B e./..>........DK
0020:BD 2C DF A4 DC EA FE E7 C4 7A EC 2F D6 78 16    .,.......z./.x.
--------------------------------------------------------------------
[7] : <Tx> - 10:11:02.568
-Type           : 0x01 (Command)
-OpCode         : 0xFE31 (GAP_GetParam)
-Data Length    : 0x01 (1) byte(s)
 ParamID        : 0x15 (21) (TGAP_CONN_EST_INT_MIN)
Dump(Tx):
0000:01 31 FE 01 15                                  .1...
--------------------------------------------------------------------
[8] : <Tx> - 10:11:02.578
-Type           : 0x01 (Command)
-OpCode         : 0xFE31 (GAP_GetParam)
-Data Length    : 0x01 (1) byte(s)
 ParamID        : 0x16 (22) (TGAP_CONN_EST_INT_MAX)
Dump(Tx):
0000:01 31 FE 01 16                                  .1...
--------------------------------------------------------------------
[9] : <Tx> - 10:11:02.588
-Type           : 0x01 (Command)
-OpCode         : 0xFE31 (GAP_GetParam)
-Data Length    : 0x01 (1) byte(s)
 ParamID        : 0x1A (26) (TGAP_CONN_EST_LATENCY)
Dump(Tx):
0000:01 31 FE 01 1A                                  .1...
--------------------------------------------------------------------
[10] : <Rx> - 10:11:02.591
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x08 (8) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE31 (GAP_GetParam)
 DataLength     : 0x02 (2)
 ParamValue     : 0x0050 (80)
Dump(Rx):
0000:04 FF 08 7F 06 00 31 FE 02 50 00                ......1..P.
--------------------------------------------------------------------
[11] : <Tx> - 10:11:02.598
-Type           : 0x01 (Command)
-OpCode         : 0xFE31 (GAP_GetParam)
-Data Length    : 0x01 (1) byte(s)
 ParamID        : 0x19 (25) (TGAP_CONN_EST_SUPERV_TIMEOUT)
Dump(Tx):
0000:01 31 FE 01 19                                  .1...
--------------------------------------------------------------------
[12] : <Rx> - 10:11:02.601
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x08 (8) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE31 (GAP_GetParam)
 DataLength     : 0x02 (2)
 ParamValue     : 0x0050 (80)
Dump(Rx):
0000:04 FF 08 7F 06 00 31 FE 02 50 00                ......1..P.
--------------------------------------------------------------------
[13] : <Rx> - 10:11:02.611
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x08 (8) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE31 (GAP_GetParam)
 DataLength     : 0x02 (2)
 ParamValue     : 0x0000 (0)
Dump(Rx):
0000:04 FF 08 7F 06 00 31 FE 02 00 00                ......1....
--------------------------------------------------------------------
[14] : <Rx> - 10:11:02.621
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x08 (8) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE31 (GAP_GetParam)
 DataLength     : 0x02 (2)
 ParamValue     : 0x07D0 (2000)
Dump(Rx):
0000:04 FF 08 7F 06 00 31 FE 02 D0 07                ......1....
--------------------------------------------------------------------
[15] : <Tx> - 10:11:10.968
-Type           : 0x01 (Command)
-OpCode         : 0xFE04 (GAP_DeviceDiscoveryRequest)
-Data Length    : 0x03 (3) byte(s)
 Mode           : 0x03 (3) (All)
 ActiveScan     : 0x01 (1) (Enable)
 WhiteList      : 0x00 (0) (All)
Dump(Tx):
0000:01 04 FE 03 03 01 00                            .......
--------------------------------------------------------------------
[16] : <Rx> - 10:11:10.977
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE04 (GAP_DeviceDiscoveryRequest)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 04 FE 00                      .........
--------------------------------------------------------------------
[17] : <Rx> - 10:11:11.117
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x12 (18) bytes(s)
 Event          : 0x060D (1549) (GAP_DeviceInformation)
 Status         : 0x00 (0) (Success)
 EventType      : 0x00 (0) (Connectable Undirect Advertisement)
 AddrType       : 0x00 (0) (Public)
 Addr           : B0:91:22:69:FE:55
 Rssi           : 0xD1 (209)
 DataLength     : 0x05 (5)
 Data           : 02:01:06:03:02
Dump(Rx):
0000:04 FF 12 0D 06 00 00 00 55 FE 69 22 91 B0 D1 05 ........U.i"....
0010:02 01 06 03 02                                  .....
--------------------------------------------------------------------
[18] : <Rx> - 10:11:11.127
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x2B (43) bytes(s)
 Event          : 0x060D (1549) (GAP_DeviceInformation)
 Status         : 0x00 (0) (Success)
 EventType      : 0x04 (4) (Scan Response)
 AddrType       : 0x00 (0) (Public)
 Addr           : B0:91:22:69:FE:55
 Rssi           : 0xD1 (209)
 DataLength     : 0x1E (30)
 Data           : 14:09:53:69:6D:70:6C:65:42:4C:45:50:65:72:69:70:
                  68:65:72:61:6C:05:12:50:00:20:03:02:0A:00
Dump(Rx):
0000:04 FF 2B 0D 06 00 04 00 55 FE 69 22 91 B0 D1 1E ..+.....U.i"....
0010:14 09 53 69 6D 70 6C 65 42 4C 45 50 65 72 69 70 ..SimpleBLEPerip
0020:68 65 72 61 6C 05 12 50 00 20 03 02 0A 00       heral..P. ....
--------------------------------------------------------------------
[19] : <Rx> - 10:11:11.727
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x1C (28) bytes(s)
 Event          : 0x060D (1549) (GAP_DeviceInformation)
 Status         : 0x00 (0) (Success)
 EventType      : 0x00 (0) (Connectable Undirect Advertisement)
 AddrType       : 0x00 (0) (Public)
 Addr           : F4:F9:51:E1:40:BF
 Rssi           : 0xA3 (163)
 DataLength     : 0x0F (15)
 Data           : 02:01:1A:0B:FF:4C:00:09:06:03:03:0A:00:01:06
Dump(Rx):
0000:04 FF 1C 0D 06 00 00 00 BF 40 E1 51 F9 F4 A3 0F .........@.Q....
0010:02 01 1A 0B FF 4C 00 09 06 03 03 0A 00 01 06    .....L.........
--------------------------------------------------------------------
[20] : <Rx> - 10:11:21.213
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x14 (20) bytes(s)
 Event          : 0x0601 (1537) (GAP_DeviceDiscoveryDone)
 Status         : 0x00 (0) (Success)
 NumDevs        : 0x02 (2)
 Device #0
 EventType      : 0x00 (0) (Connectable Undirect Advertisement)
 AddrType       : 0x00 (0) (Public)
 Addr           : B0:91:22:69:FE:55
 Device #1
 EventType      : 0x00 (0) (Connectable Undirect Advertisement)
 AddrType       : 0x00 (0) (Public)
 Addr           : F4:F9:51:E1:40:BF
Dump(Rx):
0000:04 FF 14 01 06 00 02 00 00 55 FE 69 22 91 B0 00 .........U.i"...
0010:00 BF 40 E1 51 F9 F4                            ..@.Q..
--------------------------------------------------------------------
[21] : <Tx> - 10:11:27.771
-Type           : 0x01 (Command)
-OpCode         : 0xFE09 (GAP_EstablishLinkRequest)
-Data Length    : 0x09 (9) byte(s)
 HighDutyCycle  : 0x00 (0) (Disable)
 WhiteList      : 0x00 (0) (Disable)
 AddrTypePeer   : 0x00 (0) (Public)
 PeerAddr       : B0:91:22:69:FE:55
Dump(Tx):
0000:01 09 FE 09 00 00 00 55 FE 69 22 91 B0          .......U.i"..
--------------------------------------------------------------------
[22] : <Rx> - 10:11:27.781
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE09 (GAP_EstablishLinkRequest)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 09 FE 00                      .........
--------------------------------------------------------------------
[23] : <Info> - 10:11:27.804
Device Connected
Handle = 0x0000
Addr Type = 0x00 (Public)
BDAddr = B0:91:22:69:FE:55
--------------------------------------------------------------------
[24] : <Rx> - 10:11:27.801
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x14 (20) bytes(s)
 Event          : 0x0605 (1541) (GAP_EstablishLink)
 Status         : 0x00 (0) (Success)
 DevAddrType    : 0x00 (0) (Public)
 DevAddr        : B0:91:22:69:FE:55
 ConnHandle     : 0x0000 (0)
 ConnRole       : 0x08 (8) (Central)
 ConnInterval   : 0x0050 (80)
 ConnLatency    : 0x0000 (0)
 ConnTimeout    : 0x07D0 (2000)
 ClockAccuracy  : 0x00 (0)
Dump(Rx):
0000:04 FF 14 05 06 00 00 55 FE 69 22 91 B0 00 00 08 .......U.i".....
0010:50 00 00 00 D0 07 00                            P......
--------------------------------------------------------------------
[25] : <Info> - 10:12:24.099
OAD - Update Connection Settings
--------------------------------------------------------------------
[26] : <Info> - 10:12:24.102
Start OAD Download
--------------------------------------------------------------------
[27] : <Info> - 10:12:24.103
OAD Send UUID Discovery
--------------------------------------------------------------------
[28] : <Tx> - 10:12:24.101
-Type           : 0x01 (Command)
-OpCode         : 0xFE11 (GAP_UpdateLinkParamReq)
-Data Length    : 0x0A (10) byte(s)
 ConnHandle     : 0x0000 (0)
 IntervalMin    : 0x0006 (6)
 IntervalMax    : 0x0006 (6)
 ConnLatency    : 0x0000 (0)
 ConnTimeout    : 0x0032 (50)
Dump(Tx):
0000:01 11 FE 0A 00 00 06 00 06 00 00 00 32 00       ............2.
--------------------------------------------------------------------
[29] : <Rx> - 10:12:24.111
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE11 (GAP_UpdateLinkParamReq)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 11 FE 00                      .........
--------------------------------------------------------------------
[30] : <Tx> - 10:12:24.111
-Type           : 0x01 (Command)
-OpCode         : 0xFD86 (GATT_DiscPrimaryServiceByUUID)
-Data Length    : 0x12 (18) byte(s)
 ConnHandle     : 0x0000 (0)
 Value          : 00:00:00:00:00:00:00:B0:00:40:51:04:C0:FF:00:F0
Dump(Tx):
0000:01 86 FD 12 00 00 00 00 00 00 00 00 00 B0 00 40 ...............@
0010:51 04 C0 FF 00 F0                               Q.....
--------------------------------------------------------------------
[31] : <Rx> - 10:12:24.141
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFD86 (GATT_DiscPrimaryServiceByUUID)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 86 FD 00                      .........
--------------------------------------------------------------------
[32] : <Rx> - 10:12:24.282
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x0A (10) bytes(s)
 Event          : 0x0501 (1281) (ATT_ErrorRsp)
 Status         : 0x00 (0) (Success)
 ConnHandle     : 0x0000 (0)
 PduLen         : 0x04 (4)
 ReqOpCode      : 0x06 (ATT_FindByTypeValueReq)
 Handle         : 0x0001 (1)
 ErrorCode      : 0x0A (10) (ATTR_NOT_FOUND)
                  No Attribute Found Within The Given 
                  Attribute Handle Range
Dump(Rx):
0000:04 FF 0A 01 05 00 00 00 04 06 01 00 0A          .............
--------------------------------------------------------------------
[33] : <Info> - 10:12:24.287
OAD - Restore Connection Settings
--------------------------------------------------------------------
[34] : <Error> - 10:12:24.287
OAD Download Not Successful
--------------------------------------------------------------------
[35] : <Tx> - 10:12:24.287
-Type           : 0x01 (Command)
-OpCode         : 0xFE11 (GAP_UpdateLinkParamReq)
-Data Length    : 0x0A (10) byte(s)
 ConnHandle     : 0x0000 (0)
 IntervalMin    : 0x0050 (80)
 IntervalMax    : 0x0050 (80)
 ConnLatency    : 0x0000 (0)
 ConnTimeout    : 0x07D0 (2000)
Dump(Tx):
0000:01 11 FE 0A 00 00 50 00 50 00 00 00 D0 07       ......P.P.....
--------------------------------------------------------------------
[36] : <Rx> - 10:12:24.301
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x06 (6) bytes(s)
 Event          : 0x067F (1663) (GAP_HCI_ExtentionCommandStatus)
 Status         : 0x00 (0) (Success)
 OpCode         : 0xFE11 (GAP_UpdateLinkParamReq)
 DataLength     : 0x00 (0)
Dump(Rx):
0000:04 FF 06 7F 06 00 11 FE 00                      .........
--------------------------------------------------------------------
[37] : <Rx> - 10:12:24.311
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x0B (11) bytes(s)
 Event          : 0x0607 (1543) (GAP_LinkParamUpdate)
 Status         : 0x3A (58) (Unknown Status)
 ConnHandle     : 0x0000 (0)
 ConnInterval   : 0x0000 (0)
 ConnLatency    : 0x0000 (0)
 ConnTimeout    : 0x0000 (0)
Dump(Rx):
0000:04 FF 0B 07 06 3A 00 00 00 00 00 00 00 00       .....:........
--------------------------------------------------------------------
[38] : <Rx> - 10:12:24.982
-Type           : 0x04 (Event)
-EventCode      : 0x00FF (HCI_LE_ExtEvent)
-Data Length    : 0x0B (11) bytes(s)
 Event          : 0x0607 (1543) (GAP_LinkParamUpdate)
 Status         : 0x00 (0) (Success)
 ConnHandle     : 0x0000 (0)
 ConnInterval   : 0x0006 (6)
 ConnLatency    : 0x0000 (0)
 ConnTimeout    : 0x0032 (50)
Dump(Rx):
0000:04 FF 0B 07 06 00 00 00 06 00 00 00 32 00       ............2.
--------------------------------------------------------------------

  • Hello,

    It looks like you might not have jumped back to the target image via the OAD reset service.

    For on-chip the normal flow is:

    1. connect to image B application and reset device using OAD reset service. You can do this by writing a 0x01 to the service. You will have to do this manually via BTool
    See here software-dl.ti.com/.../oad.html

    2. Once the device has rebooted, re-connect to it. The device should now be running the target image (image A).

    3. Then load the OAD image into BTool and click send.
  • Hi, 

    Thanks Sean for your reply. To elaborate for future readers, this is what had to be done:

    1. Write the value of 0x01 to the reset service characteristic, using the attribute handle
    2. Then youll see the connection terminate (shown by the fail to write after you saw in log window it was successful)
    3. Finally, click cancel in the Discover/Connect tab to disconnect your central device in order to re-scan for the new advertising "OAD Target Image A"
    4. Go to the OAD tab and follow the instructions on  to complete the procedure.
    5. Youll see success in your OAD transfer
    6. Now you have to manually reboot your device and youll see your new advertiser image.