high frequency streaming
I am using Metawear SDK 3.0.0.
I am trying to get high frequency streaming by using packedAcceleration/packedAngularVelocity.
From the results I get, it doesn't look like there is any packing at all. As far as I understand from other threads, timestamp is set by ble receiver, thus if several samples where packed into 1 ble packet I would expect to see some identical timestamps between samples at least from time to time, but there is always at least 2-3 ms difference, which I interpret as different ble packets within one connection interval.
When streaming Gyro and Accel at 100 Hz, I do not lose samples, so maybe there is no need for packing. But if I stream both at 200 Hz, I do lose some gyro samples, and I still do not infer packing from the timestamps.
I am following instructions from https://mbientlab.com/androiddocs/3/advanced_features.html#high-frequency-streaming to enable packing when creating the routes, and I do packedAcceleration().start/packedAngularVelocity().start, as well as using the minimum max connection interval (11.25 ms in my case).
Acording to Metawear app, my Metawear board is already running latest firmware.
Is there something else I am missing to enable packing?
Follow up question: if I manage to get packing to work, will it ack regardless of frequency? It would be interesting to pack the data even if in lower frequencies, so as to improve overall BLE data rate, and be able to stream for several sensors in parallel without sample loss.
I am trying to get high frequency streaming by using packedAcceleration/packedAngularVelocity.
From the results I get, it doesn't look like there is any packing at all. As far as I understand from other threads, timestamp is set by ble receiver, thus if several samples where packed into 1 ble packet I would expect to see some identical timestamps between samples at least from time to time, but there is always at least 2-3 ms difference, which I interpret as different ble packets within one connection interval.
When streaming Gyro and Accel at 100 Hz, I do not lose samples, so maybe there is no need for packing. But if I stream both at 200 Hz, I do lose some gyro samples, and I still do not infer packing from the timestamps.
I am following instructions from https://mbientlab.com/androiddocs/3/advanced_features.html#high-frequency-streaming to enable packing when creating the routes, and I do packedAcceleration().start/packedAngularVelocity().start, as well as using the minimum max connection interval (11.25 ms in my case).
Acording to Metawear app, my Metawear board is already running latest firmware.
Is there something else I am missing to enable packing?
Follow up question: if I manage to get packing to work, will it ack regardless of frequency? It would be interesting to pack the data even if in lower frequencies, so as to improve overall BLE data rate, and be able to stream for several sensors in parallel without sample loss.
This discussion has been closed.
Comments
timestamp elapsed_time
1489048955676
1489048955683 7
1489048955689 6
1489048955693 4
1489048955697 4
1489048955702 5
1489048955709 7
1489048955715 6
1489048955718 3
1489048955723 5
1489048955725 2
1489048955731 6
1489048955735 4
1489048955738 3
1489048955742 4
1489048955765 23
1489048955769 4
1489048955771 2
1489048955777 6
1489048955780 3
1489048955783 3
1489048955788 5
1489048955791 3
1489048955795 4
1489048955801 6
1489048955803 2
I would expect to see some 0s in the elapsed time column (that is, some identical numbers in the timestamps)
This is my code:
apply
function. Does your use case require that the packed data use the same timestamp?