E4 Programming Interfaces
E4 wristband research product are compatible with the Android and iOS platforms using the SDK and with Windows using the Bluetooth Low Energy (BLE) Server. All solutions are designed to allow real-time data streaming from E4 devices.
In order to build your own applications you need an API Key and the SDK(s) for your platform(s) of choice. The key is used to authenticate your applications for accounting purposes. You can read the guide Develop your own app.
There are no REST APIs at this time so access to data that has been uploaded to the Empatica Connect web application is only accessible through the use of the Web User Interface.
Mobile SDKs
Empatica provides developers SDKs for mobile development for Android and iOS platforms.
iOS SDK
EmpaLink 0.7 DEPRECATED
You can find info on how to develop your mobile application using the Empatica SDK for iOS tutorial. Sample projects are provided that demonstrate single and multiple Empatica E4 wristbands connections from your iOS device.
EmpaLink.framework is the legacy version of the framework. The minimum deployment target is iOS 7.0
For more detailed information check EmpaLink 0.7 API reference
Android SDK
EmpaLink 2.2 DEPRECATED
For development in Java on your prefered environment, EmpaLink for Android offers developers access to real-time data-streams from within your Android application. E4 data can be retrieved using the following methods:
Return Type | Method | Description |
---|---|---|
void | didReceiveAcceleration(int x, int y, int z, double timestamp) | This method is invoked when a new acceleration value is available |
void | didReceiveBatteryLevel(float level, double timestamp) | This method is invoked when a new battery level value is available |
void | didReceiveBVP(float bvp, double timestamp) | This method is invoked when a new BVP value is available |
void | didReceiveGSR(float gsr, double timestamp) | This method is invoked when a new GSR value is available |
void | didReceiveIBI(float ibi, double timestamp) | This method is invoked when a new interbeat interval (IBI) value is available |
void | didReceiveTemperature(float temp, double timestamp) | This method is invoked when a new temperature value is available |
Note that button press/event mark timing is not yet available on the Android platform.
You can find additional info, including a complete tutorial, on the Empatica SDK for Android tutorial.
Sample project
A sample console app that demonstrates how to establish a streaming connection to the E4 wristband can be found on the Empalink Sample Project for Android GitHub project. For simplicity the project demonstrates EDA streaming for ten-seconds - all other arguments are commented out.
Streaming servers
BLE Server DEPRECATED
Stream data from one or more E4 wristbands into your Windows-based application with the Empatica BLE Server for Windows. Empatica’s Windows BLE Server solution operates exclusively with the BlueGiga BLED112 Bluetooth Smart Dongle.
The Empatica BLE Server is a Windows application that can connect to multiple Empatica E4 devices using Bluetooth and stream data to local endpoint using multiple socket connections. Instructions about the Empatica BLE server are available at Empatica BLE server documentation.
DEPRECATED
BLE clientThe Empatica BLE Client application, developed in C#, is an demonstration console that works in conjunction with the BLE Server in the Windows platform. Instructions and client source-code available at: Empatica BLE client GitHub project.
Support or Contact
Having trouble with Empatica E4 software for Developers? Contact Support and we’ll help you sort it out.