Drivers: BrainProducts actiCHamp driver

Copyright Notice: This document was written by Mensia Technologies (2013).


This document describes how to use the OpenViBE driver for a BrainProducts actiCHamp amplifier. The documentation will cover the device capabilities, the corresponding driver and server configuration, and answers to frequently asked questions. This driver is available in OpenViBE version 0.15.0 and newer.

Presentation of the device

The actiCHamp amplifier has the following characteristics and possibilities:

  • 32 to 160 channels, using up to 5 expansion cards of 32 channels
  • To be used with actiCAP active electrode sets
  • 8 auxiliary channels
  • 8bit trigger output and input
  • 10kHz, 50kHz or 100kHz physical sampling frequency
  • Impedance mode to check electrode contacts
  • BrainProducts Active Shield for noise reduction
  • Internal ADC data filter (Averaging x2)
  • Internal ADC data decimation (factor 2)
  • USB connection

Figure 1: BrainProducts actiCHamp


Figure 1: BrainProducts actiCHamp

Driver configuration

The OpenViBE driver for the BrainProducts actiCHamp device can be configured to access most of the amplifier capabilities. Here is a snapshot of the driver configuration panel :

Figure 2: driver configuration


Figure 2: driver configuration

Experiment information

First is the experiment information, common to any OpenViBE driver, that we be send through the OpenViBE data stream for the records :

Figure 3: Experiment information


Figure 3: Experiment information

Acquisition configuration

Second part is the actiChamp acquisition configuration:

Figure 4: acquisition configuration


Figure 4: acquisition configuration

User can select the device. The index depends on the USB index in which the amplifier is plugged.

The number of channels is disabled, as this number is deduced from the number of modules currently activated, set in the last part.

The sampling frequency of the data stream produced by the driver can be chosen from the following list : 128Hz, 256Hz, 512Hz, 1024Hz, 2048Hz, 4096Hz. Note that these sampling frequencies dos not correspond to the physical sampling frequency of the EEG amplifier, and are the most common sampling frequencies used with OpenViBE.

The physical sampling rate of the amplifier is set to 10kHz and cannot be modified.

Whereas the device can handle 100, 50 or 10kHz (plus 25 and 5kHz using the built-in decimation), usual BCI applications and OpenViBE in particular are not handling such high sampling frequencies. Most of the EEG components studied are < 100 Hz, thus a sampling frequency of 512Hz is common for practical research with OpenViBE. The scenarios given with OpenViBE suppose a 512Hz sampling frequency.

We apply a well-adjusted software decimation, with software low-pass FIR filter before downsampling. This process induces a 50ms fixed delay, which is compensated by the Acquisition Server automatically (acquired samples are time-stamped accurately).

The acquisition mode may be set to:

  • Normal, for basic acquisition
  • Active Shield, for acquisition with this noise-filtering algorithm (recommended)
  • Impedance, to check continuously the electrode impedances
  • Test, to send a square signal continuously on every channel

The ADC data filter can be set to either Native (no ADC data filter) or Averaging x2 samples.

User can also activate the data decimation (factor 2).

The Active Shield gain can be set manually (in percent). Default value (5) is recommended.

Finally, the impedance limits of the actiCap can be manually set. Below the Good impedance limit, electrodes LEDs will be green. Above the Bad impedance limit, the LEDs will be red. Between these two bounds the LEDs will be yellow.

Channel management

The last part is the channel selection and naming.

Figure 5: channel management


Figure 5: channel management

The actiCHamp driver detects automatically the number of extension cards connected to the amplifier. For example on this screenshot 2 modules are detected.
User can select the modules to activate by toggling the corresponding buttons.

The 8 AUX channels can be activated by checking the corresponding box.

Finally, channel names can be set as with most of the OpenViBE drivers. If you are using the BrainProducts easycap 64 channels EEG cap, you can use the electrode placement list provided with the driver. This file can be found in (share/openvibe-application/acquisition-server/easycap- 64ch-electrode-names–10–20.txt).
Alternatively, a Channel Rename box can be used within an OpenViBE scenario. A box configuration file is also provided (ov-channel-rename-easycap–64ch.cfg in the same folder).

Acquisition Server configuration

As with every OpenViBE driver, the Acquisition Server automatically detects drift and jitter in the “real” sampling rate of the device compared to the theoretical rate.

When using the actiCHamp amplifier, user should consider adjusting the drift correction parameters to lower the number of unnecessary corrections (e.g. adding samples that will be removed shortly after) , as recommended in the configuration panel header:

Figure 6: recommendations


Figure 6: recommendations

With default acquisition settings, adjusting the jitter estimation count to 500 in the Acquisition
Server preferences
is recommended.

Triggers and My Button

The actiCHamp driver for OpenViBE is managing the input triggers that the device may receive through parallel port, and the My Button in front of the amplifier that can be pressed at will to notify some events.

The device has 8 input trigger bits, the input trigger line can thus be seen as a number between 0 and 256. The trigger states are translated into one OpenViBE stimulation code, in the range OVTK_StimulationId_LabelStart (33024 – all triggers to 0) to OVTK_StimulationId_LabelEnd (33279 – all trigger to 1).

For example, receiving the stimulation code 33068 means that the trigger line has the value 33068 – 33024 = 44.


The code 33068 tells you that the input trigger at index 5, 3 and 2 are activated. Triggers at indexes 0, 1, 4, 6 and 7 are off.

The OpenViBE acquisition server will send a new stimulation every time the driver detects a change in the input trigger line. The MyButton state is also translated into OpenViBE stimulation codes:

  • MyButton is pressed, server sends the stimulation
    OVTK_StimulationId_Button1_Pressed (32786)
  • MyButton is pressed, server sends the stimulation
    OVTK_StimulationId_Button1_Released (32787)
This entry was posted in Acquisition Server documentation and tagged , , , . Bookmark the permalink.