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.

BLE with multiple connections

Other Parts Discussed in Thread: CC2540

Hi all,

I am working on a Bluetooth LE project that attempts to connect multiple (4-8, preferrably even more) identical taylor-made devices as GAP Peripherals to a smartphone/tablet/desktop application (acting as as a GAP Central) over BLE GATT protocol. The target is to support all major platforms for the GAP Central (iOS, OSX, Android, Win8, WinRT, WinPhone8, Win7, Linux - phew!).

Our GATT attributes are quite simple, but we do have some real-time and realiability needs. The GATT requests and indications need to be reacted upon in a few tens of milliseconds. In addition, loosing packets would detoriate the user experience. Thus a connection oriented approach (GATT) probably needs to be used instead of using e.g. opportunistic broadcasting of BLE Link Layer advertising packets with application specific payload.

It seems to me that BLE is a good fit for our needs - at least on paper. :) However, I'm having the greatest struggle in our implementation with the number of simultaneous connections BLE GAP Central supports in various platforms. That is a bit ironic since the Bluetooth 4.0 BLE spec takes pride in _not_ limiting that to 7 as was the case with the old Bluetooth. 7 would have been plenty. ;) The hands-on experience on various platforms has been so far interesting, to say the least. Also, the BLE APIs vary a lot between platforms, not only syntactically but also architecturally (compare e.g. iOS and Windows 8). I can report my findings later if people are interested.

Given all that, my question is whether our requirements can actually be fulfilled with BLE technology (by BT spec and by implementations in the marketplace)? Is the need for 4-8 BLE connections too much? Has anyone faced (and solved...) similiar issues? It would be great to compare notes! 

Any guidance appreciated!

Kind regards,

   -Markku Kontio

markku.kontio (at) ludushelsinki.com

  • Hi!

    Let's differentiate what is the technology (BLE) from TI implementation of it, which is compliant, but limited. For example, I'm not aware of the current number of connections supported by CC254x but till version 1.2, this number was equal to 3. This means the central device in your PC would be able to keep that number of slaves, not 4 to 8. Probably this will be increased in the very next future, or it is already in other implementations, mostly based on CC2540. Why don't you check Bluegiga? They have come now with a new BLE113 (I think) module. Check it! Or wait till the 1.3 version of TI BLE, I think they were going to upgrade such number.

    If your central device has to be able to run in so many platforms... perhaps you should consider a serial based HostTestApp-like program, written in JAVA or Python or whatever kind of generic :)

    Finally, I think no problem for the milliseconds thing. Excuse me if I've forgotten something!

    Good luck.

  • Thanks for your reply!

    Yes, I've taken a look at Bluegiga offerings and their BLE stack does support 4+ connections, which is nice. However, our goal is not to use a BLE dongle at all but rather rely on the existing BLE HW&SW support on recently released smartphones, tablets and laptops. The BLE APIs provided by iOS, OSX, Windows 8, Windows 7 and Android are all quite different and thus I am currently implementing a middleware layer to isolate both the OS specific complexities and BLE GATT/GAP details from our application layer. The goal is that our app developers could build their logic on top of a bit more abstract interface and not worry about BLE stuff at all. Not quite trivial, but looks doable. Lets see how that goes. :)

    Regards,

    -Markku

  • Not trivial at all.

    Good luck! :)

  • Hi Markku,

    The requirements you have on the system is completely based on the Central side (iOS, Win8 etc.). I dont think multiple slaves (8+) should be any problem, since the memory resources are pretty good on those devices (iOS, Win8 etc.). 

    Are you designing a BLE Peripheral Product? As in some kind of mobile accessory (Bluetooth SMART)?

    Best Regards

  • Hi Nick,

    you are spot on, the requirements are heavy on the Central side, trivial on the Peripheral side. I've progressed with my iOS SW stack and was able to simultaneously connect to 5 TI KeyFobs (that's all I've got now) and get GATT notifications from all 5 at the same time with no (or only minor) problems. So far looks good, now I need to extend the test and take a few of my BLE Dongles and see what happens with 10 connections… Lets see! :)

    And yes, we are building a completely new Bluetooth Smart accessory device that talks to our smartphone app (and cloud service). I can disclose more details privately, if you are interested.

    Kind Regards,

       -Markku

  • Hi Markku,

    Markku Kontio said:
    you are spot on, the requirements are heavy on the Central side, trivial on the Peripheral side. I've progressed with my iOS SW stack and was able to simultaneously connect to 5 TI KeyFobs (that's all I've got now) and get GATT notifications from all 5 at the same time with no (or only minor) problems. So far looks good, now I need to extend the test and take a few of my BLE Dongles and see what happens with 10 connections… Lets see! :)

    That's great, please keep us updated on the progress :)

    Best Regards

  • Hi all,

    just reporting some positive findings: I was able to connect my iPhone 4S application to ten BLE peripherals simultaneously (5 TI KeyFobs + 5 TI BLE USB Dongles with my own SW). Didn't do any extensive tests but everything seemed to work just fine, got all GATT characteristics (button presses, accelerometer data) from the peripherals to my iPhone app.

    So it looks like my concerns about 4-8 simultaneous BLE connections are not valid - at least on the Apple iOS platform. Good stuff! It would be interesting to see how many more I could connect, but I'm running out of HW now...

    Regards,

       -Markku

  • Hi Markku, 

    That's great, could you share some details about connection parameters? The issue with insufficient hardware might be solvable, I'll contact you offline ;)

    Best Regards 

  • Hi,

    is it possible to connect multiple sensor tags via Bluetooth low energy? In the Android app provided by TI, the sensor tag is the server, and app is client. So, it is possible for a single client to connect multiple servers?

    if yes please tell me how ?

  • Hi, Can you provide some details of your modifications to make this work?  Or even share source code?