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.

CC2541 IOS packet transfer limit

Other Parts Discussed in Thread: CC2541, BLE-STACK

Hello,

We met a problem about BLE communication with iOS app in our application.

i am using CC2541 to transfer some captured data to iOS mobile app through BLE, but there is a limit for BLE throughout on iOS: at most send 4 packets per interval(20ms), and every packet is at most 20 bytes. But our application does need more throughput to transfer all the data to mobile app, then to cloud through mobile app.

I am thinking about transferring data to PC first through BLE since there is such a limit on PC's bluetooth communication. But can i do anything more with mobile app part?

Thanks a lot.

Shiping 

  • Hello Shiping,

    Yes, iOS does impose limits in number of packets per connection event. I'm assuming you are using Overlapped Processing from "CC254X Embedded Examples" on the TI BLE Wiki. If not, please enable this in your application and take an air sniffer trace.

    Best wishes
  • Thanks for your answer, it really helps.

    But actually i am using BLE-CC254x-1.3's "heart rate project", i check its "hci.h" file but it doesn't contain "HCI_EXT_OverlappedProcessingCmd( uint8 mode );" function.

    even though i try to add the external function in "hci.h" by using " extern HCI_EXT_OverlappedProcessingCmd( uint8 mode );", it actually doesn't support that and can't be built. 

    Can i import the related library to my project and use the update hci.h file? What can i do with this? 

    Thanks,

    Shiping

  • The Overlapped Processing feature and related APIs were added in BLE-Stack v1.4.0. I suggest you use BLE-Stack v1.4.2.

    Best wishes
  • Hi

    I still have a question here.

    I use BLE-STACK v1.4.0 to do test, copy the "peripheral.c" file under overlapped processing file, the task period is set to be 1ms, but when i run it, the speed is around 7 packets/30ms, didn't change much compared with the project that without the following two functions. And it can't fulfill my requirement for the speed.

    HCI_EXT_HaltDuringRfCmd(HCI_EXT_HALT_DURING_RF_ENABLE);
    HCI_EXT_OverlappedProcessingCmd(HCI_EXT_ENABLE_OVERLAPPED_PROCESSING);

    It shouldn't because the task didn't got run, since the data in packets i receive on mobile app is not continuous.

    I wonder is 7 packets/30ms the upper limit for BLE transmission with IOS?

    Thanks,

    Shiping