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.

LAUNCHXL-CC2650: Can CC2650 LaunchPad transmit beacons untethered from CCS and USB?

Part Number: LAUNCHXL-CC2650
Other Parts Discussed in Thread: CC2650, , CC2640

I am using:

    CC2650 LaunchPad Rev 1.2
    C:\ti\simplelink\ble_sdk_2_02_01_18
    github.com/.../ble_examples
    Code Composer Studio 6.2.0.00050
    TI ARM tools 5.2.6

Using CCS, I can build and debug simple_proprietary_beacon, and the CC2650 LaunchPad transmits beacons. Good.

If I close CCS, beacons continue. Also good.

But if I disconnect the USB cable from the CC2650 LaunchPad and then reconnect it, the board does not transmit beacons. I expected the board was now flashed and would transmit beacons from power up.

I also tried flashing the stack and app using SmartRF Flash Programmer 2, but again there is no beacon transmission after power up by reconnecting USB.

I tried removing the jumpers to isolate the CC2650 from the XDS100 debugger section and added an external battery to 3V3 and GND, but again there is no beacon transmission after battery power is applied.

So -- Is it possible for the CC2650 LaunchPad to be flashed and then run (transmitting beacons) untethered from a machine running CCS? Or does the CC2650 only operate when connected via USB, under the control of CCS?

  • Do you try to download BIM to your LAUNCHXL-CC2650 to see if it works?
  • Hello Jim,

    Yes, it is the expected behaviour to automatically power up and execute the firmware once the internal memory contents have been programmed. To check for a setup issue, can you program the cc2650lp_simple_peripheral_rel.hex prebuilt hex file to your LAUNCHXL-CC2650 board and confirm the device will advertise you disconnect & re-connect USB? If that works, try building/programming the simple_broadcaster sample application in the SDK and confirm likewise.

    Best wishes
  • Thank you, YiKai and JXS. I will try your recommendations the next couple of days and follow up.

    My impression of the BIM was that it is specific to the SensorTag. Is it also needed for the CC2650 LaunchPad?

    We expect to target the CC2640, but have not studdied that chip yet. Will it also require external flash and the BIM, or does that depend on the layout? In other words, can the CC2640 run firmware onchip that transmits beacons, or does that require external flash and the BIM?

    Thanks.

    Jim Fathman

  • Hi,

    There is an issue with the project file for the stack project that is likely causing your issue. The change will be updated on the GitHub page soon. For now, you can try this:
    In the stack projectspec file, under postBuildStep, replace ${PROJECT_ROOT}/TOOLS/ccs_compiler_defines.bcfg ${PROJECT_ROOT}/TOOLS/ccs_linker_defines.cmd with ${PROJECT_IMPORT_LOC}/../config/ccs_compiler_defines.bcfg ${PROJECT_IMPORT_LOC}/../config/ccs_linker_defines.cmd.

    -Nathan
  • And just to clarify, the BIM is not required or used in this beacon sample application. You do not need external flash to implement this application either.

    Best wishes
  • First of all, thank you to everyone who offered suggestions.

    I tried adding bim_extflash to the project, and that works. If I use Debug in CCS to flash the BIM, stack, and app to the CC2650 LaunchPad, I get beacons from simple_proprietary_beacon under control of CCS, and without CCS after I disconnect/reconnect USB to cycle power to the board. Good. Either the BIM really is needed on the CC2650 LaunchPad (there seems to be some debate over this), or it is not actually needed, but including it has the side-effect that it satisfies some dependency.

    Since flashing via CCS involves several error-prone steps, I then tried to accomplish the same flashing using SmartRF Flash Programmer 2 v1.7.5. But when I configure for Multiple hex files, the utility complains:

    >Initiate access to target: XDS-L1000115.
    >Reading file: C:/Users/jfathman/workspace_v6_2_c/simple_proprietary_beacon_cc2650lp_stack/Release/simple_proprietary_beacon_cc2650lp_stack.hex.
    >Reading file: C:/Users/jfathman/workspace_v6_2_c/simple_proprietary_beacon_cc2650lp_app/Release/simple_proprietary_beacon_cc2650lp_app.hex.
    >Reading file: C:/Users/jfathman/workspace_v6_2_c/bim_extflash/FlashOnly_LP/bim_extflash.hex.
    >Overlapping flash area in page: 0, offset address 0x0000
    >Reset target ...
    >Reset of target successfull.

    So for whatever reason, SmartRF Flash Programmer 2 is not able to accomplish the same flash operation as CCS Debug.

    I tried using hexmerge.py to merge the three hex files:

    [jfathman@windows workspace_v6_2_c]$ /c/Python27/python /c/Python27/Scripts/hexmerge.py -o CC2650-LP-Release-Super.hex -r 0000:1FFFF ./simple_proprietary_beacon_cc2650lp_app/Release/simple_proprietary_beacon_cc2650lp_app.hex:0000:1EFFF ./simple_proprietary_beacon_cc2650lp_stack/Release/simple_proprietary_beacon_cc2650lp_stack.hex ./bim_extflash/FlashOnly_LP/bim_extflash.hex:1F000:1FFFF --overlap=error

    SmartRF Flash Programmer 2 would flash that as a single file, but it did not run. It is likely I need to adjust the parameterized addresses. Those shown are just from some web example for a different app. I will have to come back to that another time.

    I also experimented with changing the Post-build steps from (in part):

    ${PROJECT_ROOT}/TOOLS/ccs_compiler_defines.bcfg
    ${PROJECT_ROOT}/TOOLS/ccs_linker_defines.cmd

    to (in part):

    ${PROJECT_IMPORT_LOC}/../config/ccs_compiler_defines.bcfg
    ${PROJECT_IMPORT_LOC}/../config/ccs_linker_defines.cmd

    Beacons worked in CCS, and still worked after CCS was closed and after the USB cable was reconnected to the board to power cycle it. But the BIM may still have been active for this test, and after I used SmartRF Flash Programmer 2 to erase and then flash just the stack and app with the Post-build steps change above, the CC2650 LaunchPad no longer boot (no beacons) after power cycle. I should probably spend more time trying that again to make sure of all the changes, but again, I will have to come back to that another time.

    So -- I can flash the CC2650 LaunchPad with BIM and simple_proprietary_beacon stack and app from CCS, and it works, including standalone boot of the board after power cycle.

    That is good enough for now, but I would like to eventually figure out whether the BIM is really required, and how to flash the board successfully using SmartRF Flash Programmer 2.

    Thanks again for the helpful suggestions.

    Jim Fathman
  • BIM is only required when your application need OAD FW update. You can try to use prebuilt hex files to download to your LAUNCHXL-CC2650 using Flash Programmer 2 to know how it works.