Researcher’s Guide to Wearables: Activity

Ambulatory Activity Tracking and EMA

Physical activity can be tracked both by accelerometers already in the Smartphone or with a wearable activity / fitness tracker. One study suggests that phone apps measuring “steps” are more accurate than wearables. The mEMA System allows you to collect both wearable data and raw 3-axis accelerometer data from the phone.

For many studies the data captured directly from the phone is sufficient, the obvious drawback is that it requires making the assumption that the phone is being carried by the participant. We can get enough fine grained data from the 3-axis accelerometers in the phones to make a fairly accurate assumption about when the phone is actually been worn on the body (i.e. in a pocket) as opposed to laying on a table but cannot determine if it is in a bag sitting next to a person, or if that person has walked away from the bag!

Thus, many researchers prefer to use a wearable activity tracker to capture physical movement. An ever growing plethora of commercial activity / fitness trackers are on the market, the choice for researchers can seem overwhelming at first. However, rest assured most of them are not going to give you the data you want. Companies providing commercial fitness devices are interested in selling devices to consumers and processing their data – not in aiding research efforts.

Over the years of being involved in ambulatory assessment and mobile EMA (mEMA) we have found some solutions to these problems, and are aware that these solutions keep changing as new devices become available.

If synchronization between the activity and the EMA data are not necessary then you have some options. The ActiGraph ( will give you fine-grained (30 – 100Hz), high-quality, raw, timestamped activity data. They have a researcher dashboard from were you can administer your study, assign subject ID#s to participants and download the aggregated dataset. You can then compare these data post hoc with those from the mEMA system, which are also timestamped (to the millisecond). Actigraph currently do not have an API or SDK that will allow for real-time integration with other apps such as mEMA.

If this post hoc method of data integration will work for your study and you don’t need activity readings multiple times a second then another option is the FitBit.

The regular FitBit API only gives you daily summary data, but through a company called FitaBase ( you can get minute-to-minute granularity on your aggregated data set. You are still left with FitBit’s processed data (e.g. “steps”) not the raw accelerometer data. But if this is sufficient for your project then this data set could be compared with your mEMA data by the timestamps.

If you want real-time integration, high quality, raw data and the ability to trigger real-time mobile surveys (mEMA) based on your participants’ individual levels of activity then the  the Microsoft band was a good solution ( Unfortunately, Microsoft stopped making the Band and will no longer be offering support for the SDK.

Currently, at ilumivu we are using wearable devices from Garmin – including the Vivíosmart 4 ( to capture both real-time and summary activity data. Garmin has developed a very capable suite of tools that allow third party developers to access raw or processed data – some of it in real-time.

Their API enables us to get daily summary data on Steps, Calories and Floors Climbed and multiple others (more here). These are all pre-processed metrics derived from the accelerometer data, processed on the devices and send up to the server. Ilumivu is then able to access the data from the server and pull into the mEMA System for integration with the incoming EMA data.

The Garmin SDK (Software Development Kit) allows us to get some of these metrics in real-time. They are sent by Bluetooth directly from the device to the mEMA app on the phone. Form there they can be sent to the ilumivu’s servers or used to trigger EMA surveys immediately. This gives us the ability to pop up mobile surveys based on changes detected (or not detected) in activity in real-time.