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.

Multiple Client Connection on SPPDemo

Other Parts Discussed in Thread: CC256XMSPBTBLESW, CC2564MODN

I am currently using CC2564modn module with MSP430F5234 in SPP application profile.

I am using CC256XMSPBTBLESW software stack.

I have already ported SPP Demo application for MSP430F5234 mcu. Now I want to communicate with multiple clients with SPP profile.

I have gone through the below link:

http://processors.wiki.ti.com/index.php/CC256x_Bluetopia_Software_Add-on:_Multiple_SPP_Connections

But it is using SPPLEDemo application. My requirement is to do it with SPPDemo.

I tried but my CC2564MODN server is connecting only one Blueterm client.

what should i have to do?

  • Hi,

    The SPPDemo app supports one client at a time - you need to modify the demo app to support multiple clients. You can have a similar implementation as that of the SPPLEDemo app.

    Regards,
    Gigi Joseph.
  • Thank you very much Joseph.

    I am new to the TI's BLE stack. In the SPPLE Demo app how can I connect to multiple slave BLE peripheral ?

    when I set up the single connection to BLE client, I am not able to do AdvertiseLE again until client will disconnect.

    what should i have to do for connecting multiple BLE client ?

  • Akshat,

    The current SDKs support core specification version 4.0, which doesn't allow a peripheral to have multiple connections.

    Instructions for connecting to a peripheral as a client are documented here. The same procedure can be used for connecting to multiple peripherals.

    Thanks,
    Samuel

  • Thanks for your response Samuel.

    I have gone through the wiki document. Actually I have a communication setup like CC2564modn as Server (Advertising device)
    and two mobile devices as BLE client. After setting up connection between Server and first client(mobile) , there is no
    advertisement from the Server, so i am not able to find Server device in the scan device list of second client.
    I have tried command AdvertiseLE 1 again, but it is giving error.
    Please check the log :

    SPP+LE>AdvertiseLE 1
    GAP_LE_Advertising_Enable success.
    SPP+LE>
    etLE_Connection_Complete with size 18.
    Status: 0x00.
    Role: Slave.
    Address Type: Public.
    BD_ADDR: 0x34BB26D43778.
    SPP+LE>
    etGATT_Connection_Device_Connection with size 12:
    Connection ID: 1.
    Connection Type: LE.
    Remote Device: 0x34BB26D43778.
    Connection MTU: 23.
    GAP_LE_Advertising_Disable returned -1.
    GAP_LE_Advertising_Enable returned -107.
    SPP+LE>AdvertiseLE 1
    GAP_LE_Advertising_Enable returned -107.
    SPP+LE>

    please suggest what should i have to do?
  • Akshat,

    The current SDKs support core specification version 4.0, which doesn't allow a peripheral to have multiple connections, however, a central can have multiple connections. If you want to demo multiple connections you'll need at least 3 boards: 1 central and 2 peripherals.

    Thanks,
    Samuel

  • Hi Samuel,

    Thanks for your reply.

    I want to know how can I discover the services of peripheral device from the Central device. I want to know exactly which kind of services they are offering like Ti Sensor Tag. They are giving the service response like :

    SPP+LE>
    SPP+LE>DiscoverGAPS 5C313EBFEC0C
    GATT_Start_Service_Discovery success.

    SPP+LE>
    Service 0x0001 - 0x000B, UUID: 1800.

    SPP+LE>
    Service Discovery Operation Complete, Status 0x00.

    How can i list the services and their data?
  • Akshat,

    You can use the GATT_Start_Service_Discovery() function with the number of UUIDs set to 0 and the UUID list pointer set to NULL. For example:

    GATT_Start_Service_Discovery(BluetoothStackID, LEContextInfo[LEConnectionIndex].ConnectionID, 0, NULL, GATT_Service_Discovery_Event_Callback, 0);

    This will discover all services.

    Thanks,
    Samuel

  • Hi Samuel,

    Thank you very much.

    I will test and update you with my results.

  • Thanks Samuel. 

    It  is working absolutely fine. 

  • Hi Samuel,

    How are you?

    I am able to discover the services of the Peripheral using GATT_Start_Service_Discovery(). Now I want to read or write to the characteristics 

    of a particular service.

    Cane you please tell me how can I do this?

  • Akshat,

    There are examples of reading and writing characteristics in the SPPLEDemo app. An overview of the characteristics used in the app can be found here.

    To write to a characteristic you can use the GATT_Write_Request() or GATT_Write_Without_Response_Request() functions. To read a characteristic you can use the GATT_Read_Value_Request() function. The prototypes of these functions can be found in profiles\GATT\GATTAPI.h.

    Thanks,
    Samuel