Hi everyone,
We design an application using the nRF52840 and SDK16. This application is intended to be used for gait analysis and one of the requirements is a real-time data process. We are using nRF52832 as a central device to receive raw data and then UART protocol to communicate nRF52832 with the main MCU. The gait analysis requires a high sampling rate (from 100 to 300Hz). What is the best approach to limit data loss and maintain power consumption as low as possible?
I use notifications (the API sd_ble_gatts_hvx) to send data from the peripheral to the central. I know also that notifications can be transmitted within a connection event of 7.5 ms (this is a frequency of around 133Hz). What if I want to use a sampling rate of 200Hz (32Bytes x 8bits x 200Hz = 12.8Kbps)? What procedure should I follow?
Also when I try to transmit with 100Hz the sd_ble_gatts_hvx function returns too often NRF_ERROR_RESOURCES and I have to wait for BLE_GATTS_EVT_HVN_TX_COMPLETE event. This creates a lug between the real-time readings and the data received by the central (remember that we need real-time data processing)
Any advice?
Nick