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.

RTOS/CC1350: Bluetooth examples?

Part Number: CC1350

Tool/software: TI-RTOS

Are there any decent examples for a bluetooth application (both from the phone and cc1350 ends)? All the ones that TI seems to provide are tied to the sensortag app, which for some reason they decided not to provide the source code. Likewise, I've found some examples of phone apps that talk to the stock sensortag firmware (again, conveniently not available from TI).

All I want is something that sets up and illustrates the basics. Just a simple example that will connect to the cc1350 (from a phone app, ios or android) and transfer some data.

The rfWsnNodeBleAdv example seemed like a good place to start, but it is incredibly difficult to follow. For example, I managed to detect the advertisement as a device named "LaunchPad 1.0" from my code on an ios device, but I cant figure out where that name is set in the rfWsnNodeBleAdv example. That example also doesn't appear to be configured as connectable, so its probably only of limited utility for my understanding.

Some of the other examples(?) like bim_offchip/bim_onchip and the ones in the blestack folder look useful, but I have no idea what they do (lack of description, or even comments in the code to indicate their function)

  • Hello,

    If you wish to connect to a smartphone as a BLE peripheral/GATT server then I recommend the simple_peripheral sample application.
    This sample application is extensively documented in the BLE Software Developer's Guide here: www.ti.com/.../swru393

    As you have mentioned, TI does not provide source code for any iOS applications. The android source code was at one time posted here, but may be out of date: git.ti.com/sensortag-20-android
    However, if you wish to connect between two TI devices, you can refer to the simple_central application in the SDK. It is also covered in the software developer's guide. These sample apps should connect out of the box.
  • Ok, since it is still very much unclear to me.... The "simple_peripheral_cc1350lp_app_FlashROM" example in the resource explorer (the one that has no readme or any clue as to what it does, or where to find the documentation) is what that developers guide is referring to?

    If that's the case, wouldn't it be helpful to put the two together somehow? Even if it were just a readme file with that link in it?

    Also, do the authors of these documents get paid by the word? I've been looking through this document for over an hour and am totally lost. I realize bluetooth is a complicated beast, but an example with a clear purpose and function would be so much more helpful. Since there is no example for the phone end, I'm stumped as to what the simple_peripheral example does, or if it is even working. I got it to compile, but there are the following warnings:
    Build-variable 'COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_LIBRARIES' cannot be resolved. This project may not build as expected.
    Build-variable 'COM_TI_SIMPLELINK_CC13XX_CC26XX_SDK_SYMBOLS' cannot be resolved. This project may not build as expected.
    I don't think that is preventing it from running, but then again, how am I supposed to verify that? rfWsnNodeBleAdv is way less of a mess than the "simple_peripheral" and I can at least see the advertised device (which I can't when running the simple_peripheral example). Should simple_peripheral show up somewhere (like in the sensortag app or some other canned app)?

    I don't suppose there is a more concise, less convoluted example? All I want to do is send data from the cc1350 to an app on a phone. There's gotta be some truly "simple" example?

    I'm sorry, I'm just frustrated at the poor quality of the TI examples. Clearly they have spent a lot writing documents, I just wish they would emphasize quality over quantity.
  • Hello,

    I agree that readmes would be helpful. This is something that has been improved in newer SimpleLink SDKs.
    Have you tried opening up the UART COM port and observed the print output. It will display when the device is advertising and connected.

    I understand the document is dense, but it is intended as a developer guide and describes the entire stack and development platform. Chapter 3-5 as well as 10 should be the most useful in describing the high level application architecture.

    Another resource if you are new to BLE is software-dl.ti.com/.../overview.html
    It seeks to explain some of the basics of BLE

    The errors you mentioned should be benign. Can you post what CCS is attempting to resolve them to so that we can see what the issue is?
  • Using CCS 8.0 and Simplelink SDK 2.10.00.36. No documentation in the blestack subfolder, or Easylink/bim[on/off].

    I just tried the com port, but got nothing. I skimmed that giant pdf to see if there were any clues, but came up empty. I'm still at a loss for what simple_peripheral actually does. Can you give me a description in less than 246 pages? Maybe like 2 sentences?


    I think the issue with that compiler warning is that its not resolving? It doesn't seem to be used anywhere. Am I supposed to be defining that as an environment variable or something?
  • The CC2640R2 SDK has these readmes in the blestack folder. You can read them there. It appears the CC13x0 SDK doesn't have them.

    Simple peripheral advertises and connects to a phone. It exposes a gatt profile that can be used to transfer data with the phone.

    The installers should set these variables.
  • Ahh. I probably would have never though to look there.

    Thanks for the description. That's pretty much what I thought it should do, but it wasn't doing anything. After lots of searching, I found this page:
    sivantoledoacademic.wordpress.com/.../
    Way down (exercise 4) it mentions to run the stack project before running the app project. It seems that is a key step since now its working. I'm unclear how/why running a separate project would magically make things work (shouldn't the stack be linked to the app?), but I suppose it is loading the stack into another memory region?

    Now I can scan for it on a generic ble app, which is a huge step forward.