MMS as a stand alone device. Accelerometer event triggered orientation logging.
I have the following system requirements. Can you confirm if the current SW API (eg, Data Routes, Processor) is able to support such:
1) log orientation/sensor fusion data using MMS deployed in the wild
2) Extend battery life as much as possible by only logging X seconds after some trigger events (eg, acceleration RMS above some threshold)
Questions:
1) Is it possible to trigger the start and stop of the sensor fusion (eg, logging quaternions) where the trigger is initiated by an accelerometer event (eg, tap or motion detection)? ie, have sensorfusion.quaternion().start() inside an AsyncRoute function. Any danger in doing so?
2) If I programmed the MMS to have a sensor fusion/quaternion logging data route, but have not yet started the route, is the MMS already running sensor fusion in the background? or will it only do so after "sensorfusion.quaternion().start()"? In the interest of power-saving, I want to run sensor fusion (which consumes more power) only after trigger events.
3) What's the best way to log data (eg, quaternion) for a fixed amount of time or fixed amount of samples? (ie, how do I define ASyncRoute if I want "sensorfusion.quaternion().start()" to capture only X sec of data OR X * 100 samples) My gut feeling points me to the Timer macro OR the limit passthrough OR count+comparator data processor? Any advice or sample code will be appreciated.
4) [Android/Java question which I am slipping here] When I try to get AccBosch class for MMS in my Android App with the intention to program move advanced routes (eg, MotionDetection/TapDetection), it raises an error that BMI270, the acc of MMS, is not yet supported. Is it already supported in the python libraries? When will the Java libraries be supported? I am in particular interested on the StepDetection mode supported by BMI160.
Sincerely,
Luke Sy
Comments
Yes, you can log based on events using our events/macro system.
1) You could start it on an event like a push button
2) No, you have to turn it on
3) The passthrough is a good idea
4) Use the BMI270 specific class, the bmi160 and bmi270 do not have all of the same features
Thanks Laura,
Just to clarify. If I programmed MMS (via macro) with two routes.
1) sensorfusion.quaternion().aSyncRoute(....)
2) acc.accelerometer().ASyncRoute(....)
Question
1) And only run acc.accelerometer.start(), MMS will only turn on the accelerometer right?
2) MMS will only turn on all accelerometer, gyroscope, and magnetometer when I run sensorfusion.quaternion().start()?
3) Similarly, if I execute sensorfusion.quaternion().stop(), it will turn off accelerometer, gyroscope, and magnetometer (ie, making the battery last longer)?
P.S.: will be careful and noting that I need to be careful with running both raw acceleration and sensor fusion at the same time.
Sincerely,
Luke Sy