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

Real-time data transmission by nrf51822 ?

Hello all,

I'd like to use NRF UART App sample code (newest iOS7 version) to send data from iOS6 to nrf51822 for "real time" data transmission. But I found that when I send 20 bytes by iOS per 15ms, nrf51822 will receive the data per 30ms. I want the "recieve rate" reaches 10ms, not 30ms. Is there any solution about real time data transmission?

PS. I also use iOS7.0.3 and the newest NRF UART app (iOS7 version), but I found that I can only use "write value with response", the "receive rate" will be 60ms! But when I use "write value without response", NRF IC will get nothing...

Hayato

Parents
  • With BLE, two devices communicate only each connection interval, so the minimum time between transfers will be the connection interval. Take a look at this question for more on connection parameters.

    In addition, Apple have a document detailing their recommendations for BLE here, and as you can see they limit the usable connection interval to 20 to 40 ms. If you send a request as detailed there, you will get a connection interval of ~30 ms, which is what you're seeing. There isn't really any way to fix this, and it is not possible to get an interval of 10 ms.

    As for your write problems, you can change the properties available for your characteristic in the char_props field of the ble_gatts_attr_md_t of your characteristic. If you want to use Write Commands instead of Write Requests, you should make sure that .write_wo_resp is set:

    
    char_md.char_props.write_wo_resp = 1;
    
    
Reply
  • With BLE, two devices communicate only each connection interval, so the minimum time between transfers will be the connection interval. Take a look at this question for more on connection parameters.

    In addition, Apple have a document detailing their recommendations for BLE here, and as you can see they limit the usable connection interval to 20 to 40 ms. If you send a request as detailed there, you will get a connection interval of ~30 ms, which is what you're seeing. There isn't really any way to fix this, and it is not possible to get an interval of 10 ms.

    As for your write problems, you can change the properties available for your characteristic in the char_props field of the ble_gatts_attr_md_t of your characteristic. If you want to use Write Commands instead of Write Requests, you should make sure that .write_wo_resp is set:

    
    char_md.char_props.write_wo_resp = 1;
    
    
Children
No Data
Related