This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Notifying characteristic value with 80 bytes each 20 ms gives me a BLE_HCI_CONNECTION_TIMEOUT in nRF-Connect

Hello,

I have a project in witch I want to send the data received from an Arduino by UART, this data has a size of a little bit less than 80 bytes, this data is received each 20 ms (a 32 kbps data throughput), I am sure I am getting this data.

I am updating (Notifying) this data in a characteristic value each time I get it from the arduino, and I am doing it like it is done in the Bluetooth low energy Characteristics, a beginner's tutorial.

The problem is that when I flash the code in the nRF51-DK or in a Red Bear - Nano, and try to connect to them I get a

BLE_HCI_CONNECTION_TIMEOUT

in pc nRF-Connect or a

Error 133 (0x85): GATT ERROR

in the mobile nRF-Connect, so I can't connect to my device.

If I puts the data to come more slowly, I mean the same 80 bytes each 250 ms (a 2.56 kbps data throughput) I can connect to my device and can see the notified value but the nRF-Connect only shows me 20 bytes instead of the 80, on the other hand if I disable the notification and read it manually I can get the 80 bytes in the characteristic value as shown in this images:

image description

I wasn't sure If I had reach the max data throughput, but reading in the page 77 of the Soft Device 130 product specification I saw this:

image description

So I had reach it for the low Bandwidth config, but I don't know if it is possible to config the Bandwidth.

One more thing I have seen is that in the nRF51-DK works better for the same program for different data throughput.

I was wondering if someone could help me to understand this, and recommend me somewhere to read about it or what to do in this case.

thanks.

Here is my project, HAR_Wireless_peripheral.zip

Related