Bluetooth data flow

What will be the best option for a system that requires low latency and high data throughput.

I have a system with a sampling rate of max 1000 sps for eight channels with a 32 bit resolution (worst case scenario) and should send the data over BLE. What will be the best approach, wait for a big buffer to fill and then send the data or send the data with each sample acquired? also, is the performance/throughput affected if we use a new service vs using NUS service?

Thanks in advance

  • Hi

    How low latency do you require? 

    In terms of throughput and overall link reliability it is better to buffer as many samples as you can and send them in fewer large packets, compared to sending many small packets, but the latency will go up a bit when you do more buffering on the application side. 

    You can buffer up to 7 32 byte samples in each link layer packet, assuming the central device you are talking to supports data length extension up to 251 bytes. 

    Data throughput is not affected by using a new service, it will only make the service discovery procedure slightly longer. Normally service discovery is only done the first time you connect, so this should not be a problem (unless you don't use bonding, then service discovery must be run on every connection). 

    Best regards
    Torbjørn

Related