Part Number: BLE-STACK
Other Parts Discussed in Thread: CC2650,
I'm working on an application based on the SPP examples, where an SPP-Server (BLE peripheral, custom board based on CC2650) has to transfer a large amount of data (several MB) received on its UART, to an SPP-Client (BLE central, CC2650 Launchpad), which sends the received data out on its own UART.
The protocol used for this works by transferring about 1000 bytes at a time (SPP-Server -> SPP-Client), waits for an acknowledgement (SPP-Client -> SPP-Server), then transfers the next 1000 byte blob.
This works relatively well, except for the fact that I see the transmission latency (the time it takes for RX data on the SPP-Server to appear as TX data on the SPP-Client) heavily increasing after 19 of these packets have been sent. This can be seen on the plot below.
Plot 3 (channel 0) is the input RX data to the SPP-Server, whereas Plot 4 (channel 6) is the output TX data from the SPP-Client. As can be seen, from blob 20 and on, the latency is much larger. It increases from around 25ms for the first 19 blobs, to almost 200ms for the next blobs, and is perfectly repeatable.
I can see something similar happening in the other direction also (not as visible on the plots though), where the latency (for a much smaller packet though, ~40 bytes) goes from about 25ms to almost 100ms a bit later.
Any ideas about what could be the cause of this? Could it have to do with running low on memory, hitting an unfortunate timing between the protocol on top and the BLE connection intervals, something else?
Both devices are running BLE-Stack 2.2.1.
Thanks in advance!