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.

Upgrading to Bluetopia v1.5

Other Parts Discussed in Thread: MSP430BT5190, PACKET-SNIFFER, CC2540

Hi

I have developed an application for the MSP430BT5190, originally using Bluetopia v1.3 as the base code. There is now an iPhone connection issue that is delaying development, which I believe will be fixed with an upgrade to the latest Bluetopia version.

I have downloaded Bluetopia V1.5 R2, but what is the easiest way to have my old application run on the new stack? Is it a matter of pointing to the new stack location, or have variables and functions changed such that the old code won't work with the new stack 'out of the box'?

Thanks

Nigel Wade

  • Hi Nigel,

    I don't think there will be huge difference between the two versions, and that it will be relatively straight forward to port.
    Anyway, let me check internally and get back to you on this.

    Regards,
    Gigi Joseph.

  • Thank you for looking into this for me Gigi Joseph. Were you able to get an answer?

  • Nigel,

    Be sure that all new Bluetopia libraries, includes, and C files are being used and that the old versions are no longer being used.

    With the exception of a few constants, the APIs rarely change, and any additions almost always maintain backwards compatibility with previous versions. I don't think you will have any issues. Please let us know if you do.

    Thanks,
    Samuel

  • Hi Samuel

    Can you please describe the process a bit more? Should I be importing the new libraries, c files and includes to the old workspace, or should I be taking the old application and inserting it in to the new workspace?

    The problem I am having is that there are a lot of files I have edited from the v1.3 code, so I can't overwrite these with the new files from the v1.5, as I will lose my application functionality.

    Thanks

    Nigel 

  • Nigel,

    "Can you please describe the process a bit more? Should I be importing the new libraries, c files and includes to the old workspace, or should I be taking the old application and inserting it in to the new workspace?"

    You can take either path. Do whichever is easier for you. You'll get the same result.

    "The problem I am having is that there are a lot of files I have edited from the v1.3 code, so I can't overwrite these with the new files from the v1.5, as I will lose my application functionality."

    Which code have you modified? I hope not the stack's headers (e.g. *API.h).

    Thanks,
    Samuel

  • Thanks Samual

    I have got the porting to a point where it can advertise OK, but when I try to connect from the host, it fails. Looking at the BLE sniffer, it seems like it fails when attempting to download the GATT table entries.

    On the debug port I get:

    OpenStack().
    Bluetooth Stack ID: 1.
    Device Chipset: 4.0.
    BD_ADDR: 0x00182FD3B762
    Advertising Data Configured Successfully.
    GAP_LE_Advertising_Enable success.
    etLE_Connection_Complete with size 18.
    Status: 0x00.
    Role: Slave.
    Address Type: Random.
    BD_ADDR: 0x6FE650A9CF43.

    etGATT_Connection_Device_Connection with size 12:
    Connection ID: 1.
    Connection Type: LE.
    Remote Device: 0x6FE650A9CF43.
    Connection MTU: 23.
    etLE_Disconnection_Complete with size 10.
    Status: 0x00.
    Reason: 0x13.
    BD_ADDR: 0x6FE650A9CF43.
    GAP_LE_Advertising_Enable success.



    Do you know what could be causing the LE disconnection (Reason 0x13)?

    Also, do I need to copy across the new Bluetopia 'Objects folder' ?

    Lastly, which is the correct 'LibBluetopia.a' file I should be using? There are choices for DefaultMTU / LargeMTU and coffabi / eabi which didn't exist in the last Bluetopia version.

    Thanks

    Nigel
  • Samuel, did you have any suggestions to fix this, or is anyone else able to contribute?

    Thanks

    Nigel
  • Nigel,

    Which device are you using as the client? Some devices disconnect if neither device connects to a compatible service. I've seen that iOS devices disconnect BLE shortly after the phone sleeps (the screen turns off) too. Feel free to post any sniffer logs you have and I'll have a look.

    The Default MTU and Large MTU folders specify the size of the L2CAP MTU to be used within the stack. The larger the MTU the more memory you will use, but the better the performance will be, in most scenarios. The Default MTU library uses a 339 byte MTU, and the Large MTU library uses an 804 byte MTU.

    The coffabi vs eabi libraries specify the format of the libraries. eabi is the newer format, but all of the project files still use the coffabi libraries. This will be updated in a future MSP430 release. I think you transition will be smoother if you use the coffabi libraries.

    The Objects folder can be optionally used if you want to create a custom Bluetopia library. The fbl_ccs.pl and fbl_iar.pl scripts use the objects to create a library that is tailored to the features you need. If you have perl installed you can run perl fbl_XXX.pl --help to see the possible configuration options.

    Thanks,
    Samuel

  • 3513.sniffer.psdThanks Samuel

    I am using an Android client; B-BLE app running on a LG G3. I was using this phone and app prior to upgrading Bluetopia with no problems.

    I have attached the sniffer log so you can see where it fails after trying to discover the services.

    Cheers

    Nigel

  • Nigel,

    I'm new to this file type generated by the SmartRF Protocol Packet Sniffer tool (PACKET-SNIFFER). Can you possibly create a log using a Frontline or Ellisys sniffer? If not I'll try to have a look. Which sniffer Device Type are you using? Which version of the Packet Sniffer software are you using?

    Samuel

  • Hi Samuel

    I created that log using a CC2540 USB Dongle with TI SmartRF Packet Sniffer v2.16.3.0.

    I do not have the hardware for Ellisys or Frontline, but you should be able to view the log file quite easily by installing the SmartRF software.

    Otherwise, the important part where it fails is below:

  • Nigel,

    In screenshot you posted the activity looks different than the what I see in the sniffer log you attached. In the sniffer log I can see that the slave never responds to an ATT_Read_By_Group_Type_Req packet. Meaning that the slave never responded with its available services. Did you register a service with GATT_Register_Service()? Did GATT_Register_Service() return a value greater than 0 to indicate success?

    Are you using the libBluetopia_LE.a library? Are you using CCS or IAR? If you are using CCS I recommend using "C:\ti\Connectivity\CC256X BT\CC256x MSP430 Bluetopia SDK\v1.5 R2\MSP430_Experimentor\Bluetopia\lib\CCS\DefaultMTU\coffabi\libBluetopia_LE.a", if you are using IAR I recommend using "C:\ti\Connectivity\CC256X BT\CC256x MSP430 Bluetopia SDK\v1.5 R2\MSP430_Experimentor\Bluetopia\lib\IAR\DefaultMTU\libBluetopia_LE.a". These libraries include both classic Bluetooth and BLE support.

    Thanks,
    Samuel