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.

Slow throughput using CC2540

Other Parts Discussed in Thread: CC2540

Hi,

I am programming for communication between CC2540 module and android mobile. I use UART to send data to CC2540. Each 4ms , I send 5 bytes through BLE module. But on the mobile, packets are lost and maximum throughput is around 300 bytes per sec. I read on the data sheet that the maximum speed is 13000 bytes/sec. 

Can you guys can help me to increase transmission speed (~10 kbps).

Thanks a lot. 

  • the module include a software that you written or it's came with it's own software already programmed?
    Please provide the module spec.

    Also, i did a project like this and used notifications to transfer in higher rates,
    also changed the connections intervals for faster rates.
  • Thank you so much Netanel.
    My BLE module was already programmed, and I just use UART to communicate between it and my MCU.
    I only find out this document on internet, I think it's too abstract to understand operation of BLE.
    disk.chipsen.com/.../CHIPSEN_HBT2X3N_Datasheet.pdf

    Can you explain more about the notification and the connection intervals?
  • There are some extra bytes for BLE payload except the 5 bytes you sent every 4 ms. If you want to achieve 300 bytes per second, you can collect 60 bytes from UART and send 60 byes in one packet. In this alternative, you only send 5 packets per seconds in 200 mseconds duration and this decrese header penalty.
  • See page 13, the uart characteristics are read and write,
    so when you reading the uart data via your phone you actually send request to read then the device return the value.
    because of the read request the speed is low.

    if it would use notifications, the module will send you the uart data when available without the phone request to read it. see BLE specifications for more info.

    about the connection intervals, the phone can send a connection update request witch request the module the send RF packets in higher rates (example 1mSec per packet instead of 100mSec), or that the module is limited to specific intervals and cant be changed.

    good luck.