Sensor stops sending data?
After streaming accelerometer and gyroscope data at 100Hz for a period of time, the sensor seems to just stop sending data values from those sensors. I have tried using the Metawear app to get accelerometer and gyroscope data from the sensor, but same result - no data is received by the Metawear app. I am able to communicate with the LEDs on the board, but I also cannot communicate with any other sensors on the board as well.
The only thing that fixes the issue is either removing the battery from the sensor or issuing a reset command. This is very undesirable, as I would like to have streaming for longer periods of time. The battery levels are not the issue either - when the sensor stopped sending data, the battery level was at 36. It also is not a sensor disconnection problem - the callback methods do not report that a disconnect or error has occurred. I am not using any of the onboard sensor logging methods - I am simply streaming data from the sensor to an Android device.
This issue appears on both an LG G3 (Android 6.0) and a Google Pixel (Android 7.1). The sensors we are using are running the latest firmware (1.2.5).
I've seen in other threads that these sensors have been streamed for an hour or longer at a time - is there any reason that a C/CPRO sensor would exhibit this sort of behavior?
This discussion has been closed.
Comments
gyro = board.getModule(Bmi160Gyro.class);
settings = board.getModule(Settings.class);
settings.configureConnectionParameters()
.setMinConnectionInterval(7.5f)
.setMaxConnectionInterval(7.5f)
.commit();
accelerometer.configureAxisSampling() .setFullScaleRange(Bmi160Accelerometer.AccRange.AR_4G) .setOutputDataRate(Bmi160Accelerometer.OutputDataRate.ODR_100_HZ)
.commit();
accelerometer.routeData().fromAxes().stream("acceleration").commit()
.onComplete(new AsyncOperation.CompletionHandler()
{
@Override
public void success(RouteManager result)
{
result.subscribe("acceleration", new RouteManager.MessageHandler()
{
@Override public void process(Message message) { ... }
});
accelerometer.enableAxisSampling();
accelerometer.start();
}
});
gyro.configure()
.setFullScaleRange(Bmi160Gyro.FullScaleRange.FSR_2000)
.setOutputDataRate(Bmi160Gyro.OutputDataRate.ODR_100_HZ)
.commit();
gyro.routeData().fromAxes().stream("gyro").commit()
.onComplete(new AsyncOperation.CompletionHandler()
{
@Override
public void success(RouteManager result)
{
result.subscribe("gyro", new RouteManager.MessageHandler()
});
}
Have you found any solution to this problem? We are facing exactly the same behavior - after a period of time (appr. 60-90 mins) the CPRO stops transmitting sensor data. We are still able to interact with the LED, but to receive sonsor data again the only way is to remove the battery. Even issuing a reset command does not always solve the stalled sensor problem.
We are retrieving accelerometer and gyroscope data at a rate of 50Hz via the high frequency streams. Additionally we do retrieve magnetometer data with LOW_POWER preset.