iEpi is a powerful tool, but one that is continually growing to meet the needs of researchers who need to understand human behaviour. The following lists outline major components of iEpi and their benefits and limitations.


iEpi can measure a broad variety of parameters from on-board and federated sensors that can interface with iEpi through Bluetooth. The architecture of iEpi is highly extensible allowing new on or off phone sensors to be incorporated with ease. Sensors which have currently been integrated with iEpi and applications which they are typically used for in at least one dataset are listed below.

On Phone Sensors

  • Accelerometer
    • Activity level, phone context, orientation
  • Gyroscope
    • Activity type, orientation, combined with Magnetometer for compass
  • Magnetometer
    • Primary compass sensor, metal detector
  • GPS
    • Location, location, location
  • WiFi
    • Location, broader area contact
  • Bluetooth
    • Proximity to people and telemetered places
  • Battery
    • User compliance

Off Phone Sensors

  • Wii Board configured as weight scale
    • Weight
  • EEG
    • Affect, attention

Integration with Other Apps

iEpi has a rudimentary plug in architecture in place which allows other trusted apps to register for activation and to use iEpi's upload capacity. Currently we have implemented an app which delivers XML-encoded surveys and an app which allows users to make photographic records of their meals. Adding additional federated apps is a relatively simple proposition.


Security: iEpi provides secure communications by encrypting data as it is captured, and batching that data into files. Regardless of the communications channel employed, the data encryption should ensure secure communications between participants and the server.

Configurability: iEpi can be configured for a number of data retrieval regimes. By default iEpi uploads data when connected to white-listed WiFi networks periodically. Uploads can be configured to be context dependent, for example when a certain amount of data has been accumulated or when the phone is plugged in. Batching can be set to near continuous for near-real time applications, to never for applications where data connectivity is expected to be low.


iEpi uses a DMZ formalism to capture encrypted data on a publicly facing server and push decrypted and parsed data to an SQL server. Only minor experiment-specific changes to the parser task are required for current versions of iEpi.

Data Analysis

iEpi includes a suite of data analysis tools to perform fist cut analysis of the data to extract more semantically meaningful values. These post-processing tools are written in a variety of languages and employ a variety of tools including: SQL, Java, C, R, MATLab, GoogleMaps, MapPoint and ARCGIS. Examples of higher order features available include:

  • Step counting and activity detection
  • Phone and user state
    • Phone on or off person. Person sitting standing or walking.
  • Approximate indoor localization using WiFi trilateration
  • Dynamic graph metrics
  • Mobility entropy metrics
  • Participant compliance

Simulation Integration

Combining iEpi with dynamic agent based simulation systems is an effective way of leveraging the data to create “what if” scenarios. We have successfully implemented simulations leveraging iEpi data for health and networking in MATLab, Anylogic and NS3.

© Kevin Stanley 2014