Drivers: Emotiv EPOC (how to connect etc)

  • NB: Document updated for OpenViBE 2.0.0 (Jan.2018)


The Emotiv EPOC is a low cost EEG device from Emotiv company. OpenViBE includes a driver to acquire the data coming from the device : 14 EEG channels and 2 gyroscope values. The OpenViBE EPOC driver may be limited to specific Emotiv devices and SDK versions, please read carefully below.

Driver status and support

As of 2018, the Emotiv product range appears to contain various devices, and the related SDKs are going through different changes which from OpenViBE viewpoint may introduce incompatibilities: our code might no longer work. At Inria Rennes where OpenViBE is currently mostly developed we don’t have these newer devices, and we do not currently have the resources to follow the SDK changes in the Acquisition Server code. If you are interested in making OpenViBE work with a specific version of Emotiv hardware and/or SDK, you are more than welcome to do so, and we would be very happy to consider merging such changes to the general OpenViBE distribution. If you’re interested in contributing such changes, please contact us.

You may also be able to get your Emotiv setting work with some tinkering, see this forum thread for discussions around the topic.


OpenViBE drivers were originally developed for the Emotiv EPOC device. Other devices may not work.

OpenViBE 1.3.0 and 2.x.x need the Emotiv Research Edition SDK 3.3.3.

If older 1.x or 2.x Emotiv SDK support is needed, you have three options. 1) Recompile OpenViBE yourself, 2) use an old Acquisition Server in a 1.3.0 installation of OpenViBE, or 3) simply install OpenViBE 1.2.2 to a separate folder and launch the Acquisition Server from there.

If you need newer SDK support, you may need to recompile and/or modify the OpenViBE code.

Using the OpenViBE Windows Installer

When installing OpenViBE with the installer, you will directly have the driver listed in the acquisition server.

When pressing the Driver Properties button, you will be asked the common information (identifier, age and gender of the user), plus specific settings:

  • Electrode count and sampling frequency cannot be changed (14 electrodes and 128 Hz)
  • You can choose to add the 2 gyro sensors to the list of channels
  • If left unchanged, channels will be named according to EPOC official electrode naming
You absolutely need to enter the path to your Emotiv Research Edition SDK. This path will be saved in the application configuration file at shutdown for further use. The SDK must correspond to the version that was used to compile the Acquisition Server.

Compiling the driver

For those who are using OpenViBE from sources, compiling the driver may be still needed.

The instructions remains unchanged, as given in the documentation and FAQ.

Depending on your version of the SDK, you may have to change the path where Cmake looks for Emotiv SDK, described in cmake-modules/FindThirdPartyEmotivAPI.cmake. As the Emotiv tends to change the folder, header and library names from version to another, you may need to tweak the script by changing the names it searches for in a way that they correspond to the version you have available.


If you experience the following error message:

[  INF  ] Connecting to device [Emotiv EPOC]...
[ ERROR ] [INIT] Emotiv Driver: First call to 'edk.dll' failed.
        To use this driver you must have the Emotiv SDK Research Edition (or above) installed on your computer.
        At first use please provide in the driver properties the path to your Emotiv SDK (root directory)
        e.g. "C:\Program Files (x86)\Emotiv Research Edition SDK_v1.0.0.4-PREMIUM"
        This path will be saved for further use automatically.
[ ERROR ] Connection failed...
[  INF  ] Disconnecting.

It means you didn’t specify the right path to your Emotiv SDK, as the driver failed to load the library edk.dll.

Another common error would be :

[  INF  ] Connecting to device [Emotiv EPOC]...
[  INF  ] Connection succeeded !
[  INF  ] Starting the acquisition...
[  INF  ] Now acquiring...
[WARNING] After 5000 milliseconds, did not receive anything from the driver - Timed out
[  INF  ] Stoping the acquisition.
[  INF  ] Disconnecting.

This simply means that the driver managed to connect to the Emotiv engine, but the device is not sending any data to it. Please check if your device is turned on and working correctly on the Emotiv Control Panel.

This entry was posted in Acquisition Server documentation and tagged , , , . Bookmark the permalink.