You are here

Sending multiple notification with ble | Cypress Semiconductor

Sending multiple notification with ble

Summary: 3 Replies, Latest post by gdebree1_1567901 on 10 Mar 2016 09:38 PM PST
Verified Answers: 1
Last post
Log in to post new comments.
liu zhiheng's picture
1 post

I continuous send 256Bytes to the phone in the notification mode.A packet is 20bytes and last packet is 16bytes.But the test failed,Only we can get three packets on the phone.The code stopped in this line: 

    while(CyBle_GattGetBusyStatus() == CYBLE_STACK_STATE_BUSY); 

On the other hand,What is the maximum number of packets that CYBLE could process per connection event in  notification mode?


mady's picture
Cypress Employee
964 posts


If you add some delay betweene each packets, are you able to send the notifcaitons properly? Can you reduce the connection interval and see if it is working?

Also, the max. MTU Size is 512 Bytes,


-Madhu Sudhan

roit's picture
Cypress Employee
221 posts


You need to take care of two things (in case you are not):

1) Check if the stack memory is free to queue the notification data you send from application

Before sending notifications, check if (CyBle_GattGetBusyStatus() == CYBLE_STACK_STATE_FREE). If yes, then send the notification, else wait for the memory to be cleared.​


2) You should call CyBle_ProcesEvents() atleast once, after calling the GattsNotification API. Calling multiple GattsNotification API before calling CyBle_ProcessEvents does not process the notification and only queues it, which overflows the internal memory.


Additionally, you can set a higher MTU for the notification characteristic and let client request to update the MTU size.

gdebree1_1567901's picture
4 posts

If you are doing an Android app make sure you have the connection priority set to low latency if you don't already. You can set it back to balanced or low power after the transfer is done.

Log in to post new comments.