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.

CC2650: SPP BLE (UART to BLE bridge) example crashes on high data rates

Part Number: CC2650
Other Parts Discussed in Thread: TIDC-SPPBLE-SW-RD,

Hi,

I purchased the CC2650 Developer kit containing a pair of SmartRF06 evaluation boards. Using the prebuilt binaries from the TIDC-SPPBLE-SW-RD page I flashed both boards (one with the server and one with the client), and the boards succesfully connect. I also see data entered on one serial port arriving on the other serial port, so everything seems to be working fine.

However, my application requires a fairly high data-rate of about 52 kbit/s (a packet of 13 bytes every 2 ms). That appears to be too much, as sending data at this rate crashes the software after a very short time (way less than a second, maybe 100 ms or so). Is this a limitation of the software, the BLE stack or the hardware? Is there a way to achieve this kind of data-rate with this hardware at all?

Thanks in advance,

Jeroen

  • Hi,

    That is fairly fast data rate. That software is a bit outdated from the reference design. An updated one is on the github examples page:
    github.com/.../spp_ble.md

    It was built for the launchpad, but could be adapted to the EM board if that's all you have.
    The latest example includes extended data length and larger MTU features for improved throughput.

    Best wishes
  • Hi,

    Thanks for your reply. I did try the updated example from github, but I can get only the client-side working. The server-side ends up in an infinite loop (exception handler, I believe) right after startup. Do you know if anyone has managed to get this working? I made the same changes to both the client and server stack- and application projects: switch to the XDS100v3 debug probe and replaced the CC2650_LAUNCHXL predefined symbol with CC2650DK_7ID. Then I flashed the board first with the stack project and then with the application project.

    Are you aware of any further modifications required to get the spp_ble_server project working on the EM board? I tried some other examples from that repository too (the throughput examples) and they all work fine. It's only the spp_ble_server example that is giving me trouble.


    Thanks in advance,


    Jeroen

  • It looks like other people are having the same issue: e2e.ti.com/.../1938960

    Has that issue ever been resolved, to your knowledge?

    Thanks,

    Jeroen
  • So, thanks to your help I did eventually get the updated version of the BLE SPP example running (thanks for that!). Unfortunately, the problem persists. Although communication may work for some time initially, at some point it stops. I increased MAX_PDU_SIZE to 255, to see if that helps, but it doesn't look like it. I also changed the way I send data from a single 22-byte packet every 2 ms to e.g. 10 of them every 20 ms. This also makes no difference.

    Experimenting a little bit, there seems to be a relationship between data-size and sending frequency: Increasing the data-size or decreasing the time between packets both lead to the communication eventually coming to a full stop. It also looks like the moment communication fails coincides with an error in the data. Could this have to do with a retry mechanism or something?

    Jeroen