Web Bluetooth on MetaMotionR

I'm trying to create a web app using the web bluetooth framework to connect to the device and visualise gyroscope and accelerator data to the browser  in real time.. afterwards i want to send the captured data to a database of some sort.  I realise that the device  uses a custom protocol, not standard services and characteristics and  there is no documentation about the GATT or anything related to the matter. So i'm trying to reverse engineer ,using wireshark and a ble-sniffer the connection, between the metabase app and the device. I got how to turn on the sensors and start them sending me notifications. 

 The values that i get from the notification from only accelerator turned on are something like: 




I don't have a clue on how to decode these values into actual accelerator values. Tried to split the value by 2,4,8 bytes and try to get the float32 of them  but nothing seems to make sense..the only thing i know is that the accelerator sends a 16bit value.. Anyone who has an idea how to decode this or how even the device encodes this and by what criteria would be savior of mine.. 

Thanks everyone in advance who may take look into this !    


  • edited March 2020

    Hey @Dimark1394,

    We use a completely custom protocol called MetaWear over the Bluetooth link. It doesn't exactly use the same format you would see on a heart rate monitor with expected characteristics and addresses.

    That means, you must use our APIs to interface with the sensor. However, we have provided skeleton APIs where the interaction layers are present but you can plug in the bluetooth library of your choice. You should therefore take a look at our C and C# libraries. The Javascript library could potentially be used as well.

    Can I also ask what you are trying to accomplish? You want to visualize data in the browser but you can already do that if you simply upload the sensor data in the cloud through your smartphone. I.E our MetaCloud.

    If you want to be able to interact with the sensor through the browser directly (set it to log and download the data when done downloading) then you will have to use our APIs as I mentioned above.

  • Well this project is part of a university project which will be included under my thesis ! The goal is to be able to interact with the device directly from a browser through the Web Bluetooth framework and send those data to a data base for other experiments!

    So what you are saying is that there is no way of doing this using this method? I ve actually found a connection between the temperature data and the values received from the notifications as they are much simpler to decode! I just need a similar connection with acceleretor and the gyr values from the notifications so i can change them to actual values!
    In short browser connects to the device , you click a button it starts logging , visualise the data in real time on browser (i.e charts) , end session then send the capturerd data to a custom database!

    Thanks again for your response!

  • Yes, as I said, it is possible but you need to use our APIs for the BLE packet decoding.

Sign In or Register to comment.