want to achieve 1-2 Mbps through BLE.

I am working on project in which i want to read data from sd card and send it to mobile through BLE , I am using ble_nus_send to send data but when i decrease the delay then its giving me error 19 and when i increase delay then it is running smoothly .

Can i achieve something between 1-2 Mbps through ble_nus_Send or have to do with some other approach . 

Parents
  • Are you connecting two centrals to the same peripheral?

    No i am connecting nus peripheral with my mobile phone .

    What do you mean when you say that data is missed - is there a sudden gap in the increments? Please show a log of this if possible.

    It means my code is like incrementing every value  last some data has been missed some data in between missed as i receive 162 number after i receive 198 so many notification missed on nrf toolbox . 

    Please elaborate on what you mean when you say not whole data and good data rate. Is the throughput only good for a limited time?

    That means as i have complete string 

    {\"g_x\":%d,\"g_y\":%d,\"g_z\":%d,\"a_x\":%d,\"a_y\":%d,\"a_z\":%d,\"m_x\":%d,\"m_y\":%d,\"m_z\":%d,\"lat\":%d,\"lon\":%d,\"alt\":%d,\"hb\":%d}",gyrox,gyroy,gyroz,accelx,accely,accelz,magx,magy,magz,lat,lon,alt,heart_rate);

    I am receiving just 

    \"g_x\":%d,\"g_y\":%d part as i have sent you picture .

    That's on nrf connect .

    and when i open both then i receive everything but throughput is just 41kBps . Previously i have told you less throughput but now my throughput is 41 kBps but i want to achieve more . 

  • Hello,

    Mohsin khan said:
    No i am connecting nus peripheral with my mobile phone .

    Could you also confirm for me whether you are using the nRF Connect smartphone application or the nRF Toolbox application to communicate with your phone?
    I would recommend that you use the nRF Connect application. Could you share the entire connection log from nRF Connect with me? Please share it as a text and not a screenshot. I would like to confirm that everything looks as it should with the connection parameters and notification frequency.

    Mohsin khan said:
    It means my code is like incrementing every value  last some data has been missed some data in between missed as i receive 162 number after i receive 198 so many notification missed on nrf toolbox . 

    If the notifications are arriving out of order it is a application logic issue - the hvn buffer is FIFO, so that would mean they are input to the buffer in non-sequential order.

    Mohsin khan said:

    I am receiving just 

    \"g_x\":%d,\"g_y\":%d part as i have sent you picture .

    It seems to me that you are receiving all the expected numbers? The picture you sent contains 13 values in each notification, which seems to be exactly what you intended to receive? Furthermore, I notice that you are transmitting a lot of useless characters like "g_x:", etc. To increase your throughput you should only transfer meaningful characters, and slice off all static characters. You can add formatting on the reception side of the link separately.

    Mohsin khan said:
    and when i open both then i receive everything but throughput is just 41kBps . Previously i have told you less throughput but now my throughput is 41 kBps but i want to achieve more . 

    Yes, while 328 kbps is an improvement, it is still far off from the 1300 kbps mark.
    Did you implement the logic I described earlier that would ensure that you would always keep the hvn queue full of notifications?
    It also seems to me that you are using 1M PHY still - you shared your scan parameters, which indicate that you're still scanning and connecting on 1 M PHY, which I assume means you're also advertising on 1 M PHY, and I do not see that you are updating the PHY to 2 M anywhere in your code either.

    Do you have any possibility of getting a hold of a sniffer? This would greatly help our debugging cause to increase your throughput, since we would be able to see what the bottleneck is.

    Best regards,
    Karl

Reply
  • Hello,

    Mohsin khan said:
    No i am connecting nus peripheral with my mobile phone .

    Could you also confirm for me whether you are using the nRF Connect smartphone application or the nRF Toolbox application to communicate with your phone?
    I would recommend that you use the nRF Connect application. Could you share the entire connection log from nRF Connect with me? Please share it as a text and not a screenshot. I would like to confirm that everything looks as it should with the connection parameters and notification frequency.

    Mohsin khan said:
    It means my code is like incrementing every value  last some data has been missed some data in between missed as i receive 162 number after i receive 198 so many notification missed on nrf toolbox . 

    If the notifications are arriving out of order it is a application logic issue - the hvn buffer is FIFO, so that would mean they are input to the buffer in non-sequential order.

    Mohsin khan said:

    I am receiving just 

    \"g_x\":%d,\"g_y\":%d part as i have sent you picture .

    It seems to me that you are receiving all the expected numbers? The picture you sent contains 13 values in each notification, which seems to be exactly what you intended to receive? Furthermore, I notice that you are transmitting a lot of useless characters like "g_x:", etc. To increase your throughput you should only transfer meaningful characters, and slice off all static characters. You can add formatting on the reception side of the link separately.

    Mohsin khan said:
    and when i open both then i receive everything but throughput is just 41kBps . Previously i have told you less throughput but now my throughput is 41 kBps but i want to achieve more . 

    Yes, while 328 kbps is an improvement, it is still far off from the 1300 kbps mark.
    Did you implement the logic I described earlier that would ensure that you would always keep the hvn queue full of notifications?
    It also seems to me that you are using 1M PHY still - you shared your scan parameters, which indicate that you're still scanning and connecting on 1 M PHY, which I assume means you're also advertising on 1 M PHY, and I do not see that you are updating the PHY to 2 M anywhere in your code either.

    Do you have any possibility of getting a hold of a sniffer? This would greatly help our debugging cause to increase your throughput, since we would be able to see what the bottleneck is.

    Best regards,
    Karl

Children
No Data
Related