consistance in ble data transmission

Hello Everyone,

Is it possible to achieve BLE data transmission consistency like there are central and server? The server (nrf52832) reads the GPIO state change and sends it to the client. 

Here, I achieved the functionality of reading the gpio state change and sending it to the client once the connection is established. 

here state change from 0 to 1, sending both. if the button is pressed the server sends '0' and if the button is released server sends '1'. Here '0' transmission is important. 

here for every button press '0' transmission is important. for transmitting data(0) from server to client it is taking 47ms time. i tried for 10 times. but it taking 42ms,44ms,45ms,48ms,41ms like from 41ms to 48ms it is taking to send from server to client. 

here if the first sample takes 47ms time from server to client, is it possible to maintain the same time for the remaining 10 samples? we are sending one sample at a time. for every sample it takes different time. is it possible to maintain same time.

kindly help on this to tackle this issue.

Best regards,

Srinivasa M 

Parents
  • I would say that it may work if you use radio notifications and BLE, but not really, because if you experience packet loss and retransmissions, then the data will be one connection interval late, and there is nothing in the application that can tell you whether it was a retransmission or not. 

    Anyway, in order to set up radio notifications, you can follow this guide/blog, in case you want to look into it:

     Radio Notification 

    However, if you want to look into ESB, you can check out the example in SDK\examples\proprietary_rf\esp_prx and esp_ptx. 

    Note that there is no ACKing in this protocol, so if you want that, this is something you need to write yourself, if you want to make sure that packets that are not received correctly will be re-transmitted. There are many approaches here. You can echo back what you received, and have the transmitter retransmit if it doesn't hear anything in return, or you can write a CRC check.

    Actually, looking into this, there seems to be some sort of acknowledgement on the low_power esb. At least the light on the transmitter doesn't change if I turn off the receiver. 

    I don't know how sensitive your application is with regards to packet loss. Does it matter if you loose one packet/pulse? How about the need for two way communication? Do you transmit anything back?

    Best regards,

    Edvin

Reply
  • I would say that it may work if you use radio notifications and BLE, but not really, because if you experience packet loss and retransmissions, then the data will be one connection interval late, and there is nothing in the application that can tell you whether it was a retransmission or not. 

    Anyway, in order to set up radio notifications, you can follow this guide/blog, in case you want to look into it:

     Radio Notification 

    However, if you want to look into ESB, you can check out the example in SDK\examples\proprietary_rf\esp_prx and esp_ptx. 

    Note that there is no ACKing in this protocol, so if you want that, this is something you need to write yourself, if you want to make sure that packets that are not received correctly will be re-transmitted. There are many approaches here. You can echo back what you received, and have the transmitter retransmit if it doesn't hear anything in return, or you can write a CRC check.

    Actually, looking into this, there seems to be some sort of acknowledgement on the low_power esb. At least the light on the transmitter doesn't change if I turn off the receiver. 

    I don't know how sensitive your application is with regards to packet loss. Does it matter if you loose one packet/pulse? How about the need for two way communication? Do you transmit anything back?

    Best regards,

    Edvin

Children
No Data
Related