Sensor and framework recommendations

Hey there,
as part of my study I want to develop an application that informs the user of hazardous movements while working related to their back. I was thinking about embedding the MeaWearR board in a tshirt calculating the bending angle with the accelerometer data.
Do you have any experiences with streaming the accelerometer data and the battery life? How often do you think the sensors have to be calibrated?
Furthermore I am not sure wheter to build an native Android app or using the Javascript SDK and developing an hybrid app with Cordova and Node.Js. Do you have any recommendations about that? Any experiences with hybrid apps and metawear? I found one Apache Cordova plugin but it seems not supported anymore?
I am happy about any experiences or recommendations :)

Best regards!


    • Depends on how fast you are sampling
    • Sensors don't need to be calibrated unless you are using sensor fusion
    • Depends on if you are building a multi-platform app and have expertise on your team for said platforms
  • Thanks for your answer :)
    I decided to go for Android. "Depends on how fast you are sampling". Do you have any experiences with different sampling rates or recommendations?
    Do you think the MetaWearR would be appropriate for posture tracking? :)

  • No, you need to do you own experiments to determine which sampling frequency is best for your use case.
    Yes, MetaWear is fine for posture tracking.

  • Okay thanks :)

  • edited November 2018

    I have another question.
    I would like to calculate the angle of the posture and detect wether it is a "bas posture" or a "good posture". I am still struggling with the map function.
    Could I at first calculate the angle of the Accelerometer data and than filter it? Or would I peform those complex calculations with Reactions?
    So far I just stream the data and than calculate the angle like this:

    AsyncOperation routeManagerResultAccel = accelModule.routeData().fromAxes().stream(STREAM_KEY).commit();
    routeManagerResultAccel.onComplete(new CompletionHandler() {
    public void success(RouteManager result) {
    result.subscribe(STREAM_KEY, new RouteManager.MessageHandler() {
    public void process(Message msg) {
    final CartesianFloat axes = msg.getData(CartesianFloat.class);

    But it seems not really appropriate to me.

  • edited November 2018

    Wrap your code with the appropriate Markdown code tags so it renders correctly on the forum.

    What's wrong with your current setup?

  • Sorry!
    It seems inefficient to me and I ask myself if I can perform the calculation of the angle on board and than only react to it if the angle is higher than a specific threshold...

  • The firmware does not support trigonometric functions, so no.

  • Okay, thanks !

This discussion has been closed.