3. MetaBase App

We provide the MetaBase App which allows you to configure your MetaSensors quickly and access the sensor data easily.

MetaBase is available on Windows, iOS, and Android App stores for free.

3.2. Compatibility

The MetaBase App is available for Apple devices including iOS, macOS, and tvOS which means it will work on all of your Apple devices including tablets, phones, laptops, and TVs:

  • iPhone 4s or newer
  • iPad 3rd generation or newer
  • iPod touch 5th generation or newer

The MetaBase App is available on Android devices:

  • Android 4.4 or newer

The MetaBase App is also available for Windows:

  • Windows phones 8.1 or newer
  • Windows PCs running 8 or newer

3.3. Download and Setup

To use the MetaBase App, follow the steps:

  • Make sure Bluetooth and Wifi are ON
  • Make sure your device is Bluetooth 4.0 compliant
  • Go to your favorite App store
  • Search for “MetaBase”
  • Download the MetaBase App

3.4. Step-by-Step Guide

3.4.1. Start MetaBase

Open the MetaBase App, the iOS version is shown below as an example. Select ‘stream’ or ‘log’ depending on which mode of usage you desire.

_images/metabase_1.png

3.4.2. Connect Sensor to MetaBase

Connect to the MetaSensor device that you wish to use. HINT: If you have multiple MetaSensors within a close distance to each other, move the one you want to use closest to the smartphone. This will allow you to identify the device quickly and easily because it will have the strongest signal.

_images/metabase_2.png

Name the device as desired. Press ‘ok’.

_images/metabase_3.png

3.4.3. Streaming or Logging Data

In this case, we chose streaming, so the app shows how many data samples have been streamed to the phone since the start of the session. This will stream the data from the sensor directly over BLE to your phone. All the data is stored on the phone. Alternatively, you can choose to log the data, which means the data is stored on the sensor. Logging allows operation of the device without a BLE connection to the phone, while streaming give you much more storage since you’re using the phone’s memory instead of the sensor’s.

_images/metabase_4.png

3.4.4. Downloading Data/Syncing to Cloud

Press ‘stop’ to halt data collection. This will take you to the following screen where you can download your data.

_images/metabase_5.png

Your options are to 1.) email the data to yourself in .csv format or 2.) upload and sync the data to the MetaCloud platform for easy viewing (you can always download it later). If you are not logged into the MetaCloud service, you will be prompted to log in. Otherwise, press ‘sync’ to upload your data session.

_images/metabase_6.png

Once the data upload/sync is complete, you can view it at metacloud.mbientlab.com! (Or alternatively, your email.)

_images/metabase_7.png

3.5. Multiple MetaSensors

The MetaBase App allows you to stream data from 1-3 MetaSensors at the same time.

If you want to do more than 3, you will need to use a PC (Windows or Linux) and our SDKs or simply use the MetaHub.

3.6. Synchronizing Multiple Datasets in Excel

When collecting data from multiple sensors or multiple devices, you may want to synchronize the data to a single set of time stamps. We can accomplish this Excel in a few seconds.

In our test, we use two MetaSensors streaming accelerometer data.

We used two sensors, therefore we get two files; Calib3_Accelerometer_2017-09-14T13-39-02.461.csv and Calib4_Accelerometer_2017-09-14T13-39-02.461.csv.

We graphed the data in Excel:

_images/Excel-sync1.png

As you can see in Excel; there are three timestamps followed by accelerometer x,y,z data.

epoch (ms) time (-07:00) elapsed (s) X-Axis (g) Y-Axis (g) Z-Axis (g)
Unix time in ms Full Date Elapsed Time Acc X Acc Y Acc Z
1505421542683.00 2017-09-14T13:39:02.683 0 -0.986 -0.263 0.03

**You might need to format the Epoch cell in Excel to see the timestamp correctly.

The Unix Epoch (or Unix time or POSIX time or Unix timestamp) is the number of seconds that have elapsed since January 1, 1970 (midnight UTC/GMT)

For example, epoch time 1521250282.00 is 1521250282 seconds since Jan 01 1970. (UTC) which translates to 03/17/2018 @ 1:31am (UTC)

You should look at the epoch portion of the timestamp for synching purposes.

What you are looking for is to match the two timestamps that are closest to one another (hopefully only a few ms apart) between the two files. Then delete any extraneous data sets.

The first MetaSensors has an initial timestamp of 1505421542706.00 and the second starts at 1505421542683.00, this is only a difference of .023 seconds! This is fine for our application as this difference in time is beyond perceptible to the human eye and more than acceptable for medical and consumer applications.

If you started recording data from the first sensor seconds, minutes, or even hours before the other sensor, that’s ok! Just delete the extra data (row entries) in Excel that you do not need. The idea is to find the two best matching and closest timestamps between the two sensors to sync their data sets.

You will want to combine the two files into one file when you are ready:

_images/Excel-sync2.png

And finally, delete the extra timestamps (Excel rows / data entries) from the second sensor once you have decided on your best timestamp match.

You can then graph the data easily as we have done below:

_images/Excel-sync3.png

And we are done!

You should note that some entries have repeat timestamps. That’s normal too! We pack data in order to maximize efficiency of the device. You can do a bit of math to restore the actual timestamps as I have done below:

epoch (ms) time (-07:00) elapsed (s) X-Axis (g) Y-Axis (g) Z-Axis (g)
1505421542683.00 2017-09-14T13:39:02.683 0 -0.986 -0.263 0.03
1505421542703.00 2017-09-14T13:39:02.703 0.020 -0.994 -0.265 0.033
1505421542723.00 2017-09-14T13:39:02.723 0.040 -0.993 -0.264 0.03
1505421542744.00 2017-09-14T13:39:02.744 0.061 -0.994 -0.264 0.031
1505421542764.00 2017-09-14T13:39:02.764 0.081 -0.992 -0.266 0.031
1505421542784.00 2017-09-14T13:39:02.784 0.101 -0.993 -0.265 0.032
1505421542804.00 2017-09-14T13:39:02.804 0.121 -0.993 -0.265 0.032

3.7. Synchronizing Multiple Datasets in Python

When collecting data from multiple sensors or multiple devices, you may want to synchronize the data to a single set of time stamps. We can accomplish this easily using Python. Here is a basic example of how to do this synchronization using the Pandas package:

First we import the pandas package and read in the data.

import pandas as pd

df = pd.read_csv("Test_Accelerometer.csv") #Reading the dataset in a dataframe using Pandas
df2 = pd.read_csv("Test_Gyroscope.csv") #Reading the dataset in a dataframe using Pandas

In this case, I am trying to synchronize my 100Hz gyroscope data to my 50Hz accelerometer data. You can use the head command to check if the data was imported correctly.

df.head(5) #This will display the first 5 lines of the imported data set
df2.head(5)

In my particular setup, I am looking to merge the gyroscope data with my accelerometer data by finding the “closest” timestamp in the gyro data set that matches a given timestamp in the accelerometer data set. For simplicity sake, lets take an easy example to illustrate what we want to accomplish.

>>> Data set 1:
>>>
>>> Time: 12:45pm Data: 0.1
>>>
>>> Data set 2:
>>> Time: 12:40pm Data: 2
>>> Time: 12:46pm Data: 1
>>> Time: 12:48pm Data: 3

In this case, we are looking to merge the data sets to form 1 set as such:

>>> Combined data set:
>>> Time 12:45pm Data1: 0.1 Data2: 1

Fortunately, there is a very easy function in the Pandas library that lets us do this:

pd.merge_asof(df, df2, on='epoch (ms)')

This will merge df2 with df, while using the ‘epoch (ms)’ column as the “index” to merge on. In this case, we will get a merged data set with x, y, and z axis data for both the accelerometer and the gyroscope.

3.8. Source Code

The source code for the MetaBase App is not available.

Please check out our developer page for links to example code.