Drivers: Brainmaster Discovery & Atlantis devices with OpenViBE

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

The Brainmaster Discovery and Atlantis driver of the OpenViBE acquisition server is dedicated to Brainmaster devices. These devices have been supported by OpenViBE since version 0.15.0. The driver supports the following models :

  • Atlantis 2×2
  • Atlantis 4×4
  • Discovery 24

Driver properties

Entering the configuration panel of the driver offers a number of options. These options include the common options that you find in all OpenViBE drivers (subject identifier, subject age and subject gender). They also include options related to the specific Brainmaster devices. These options are :

  • The COM port to which the device is attached
  • The baud rate to use to communicate with the device
  • The bit depth of the amplifier
  • The notch filter

Note that the sampling rate is fixed to 256Hz.

In order to speed-up the configuration, several “presets” have been included. Choosing a preset will select the best settings for the device you want to use. Available presets are as follows :

  • Atlantis 2×2 : turns the configuration to an Atlantis kind of device, 4 channels (2 EEG + 2 AUX), 256 Hz sampling rate, 115200 Bds, 24 bits depth and no notch filter
  • Atlantis 4×4 : turns the configuration to an Atlantis kind of device, 8 channels (4 EEG + 4 AUX), 256 Hz sampling rate, 115200 Bds, 24 bits depth and no notch filter
  • Discovery 24 : turns the configuration to a Discovery kind of device, 24 channels (22 EEG + 2 AUX), 256 Hz sampling rate, 460.800 Bds, 24 bits depth and no notch filter

Changing any of the device specific settings will turn the preset to “Custom” and let you chose all the settings manually.

Most of the time, choosing appropriate preset will be sufficient for your needs.

Configuration panel for Atlantis kind of devices

Configuration panel for Discovery kind of devices or manually configured devices

Choosing the COM port

The COM port can be autodected. In order to do that, the Brainmaster Discovery and Atlantis driver tries each COM port from COM 1 to COM 16 until it finds one that can be opened. It happens that some ports can be opened even if no Brainmaster device is plugged to them (for instance modem and bluetooth devices usually use COM ports as well). If the detection went wrong, feel free to set the COM port manually and according to the Windows Device Manager.

Device Serial Nr and Device Passkey

These fields must be set in order to use Brainmaster devices with OpenViBE.

The device serial number can be found on a sticker on the back of your device. Its format is as follows : XXXXX (where X are numbers)

The device passkey should be requested to Brainmaster support. It is a different key than the one you have for Brainmaster software. Its format is as follows : XXXX-XXXX-XXXX (where X are numbers or letters).

In order not to set-up the keys each time you start the acquisition server, you can set the following environment variables to your OpenViBE configuration file :

AcquisitionServer_Driver_BrainmasterDeviceSerial
AcquisitionServer_Driver_BrainmasterDevicePasskey

Here is an example of openvibe.conf that would include these tokens :

AcquisitionServer_Driver_BrainmasterDeviceSerial = 12345
AcquisitionServer_Driver_BrainmasterDevicePasskey = 1234-abcd-wxyz

Troubleshooting and frequently asked questions

My device has 5 (resp. 10) EEG electrodes but the channel name changing panel shows only 4 (resp 8) channels.

Atlantis devices use two electrodes per EEG channel. This means each EEG channel has a possibly independent reference. This is different of what is commonly used in BCI or more generally in higher number of electrodes setups. Atlantis 2×2 uses the following 5 electrodes : A1, R1, G, A2, R2. This results in two channels, first one is the difference of potential from A1 to R1 (namely A1-R1), second one is the difference of potential from A2 to R2 (namely A2-R2). The other two channels are the 2 Auxiliary channels. Atlantis 4×4 is designed in the same way : 10 electrodes A1, R1, G, A2, R2, A3, R3, G, A4, R4. This results in four channels : A1-R1, A2-R2, A3-R3, and A4-R4. The other four channels are the 4 Auxiliary channels. As regarding to the ground electrode, as for any OpenViBE driver, it is never considered in the Acquisition Server.

I am not using Auxiliary channels but the driver won’t let me disable their acquisition

Just use a Channel Selector box after the Acquisition Client box to keep the channels you are interested in and leave the others out.

The COM port can is not detected correctly

Go to the Windows Device Manager (Right click on My Computer, followed by Manage, followed by Device Manager)
Find your Brainmaster device and click Properties
Find the COM port your device is connected to
Use this COM port in the acquisition server configuration panel

The acquisition server says “Could not log in device”

Check that your serial number is set correctly
Check that your passkey is set correctly
Check that you use the passkey you received from Brainmaster for OpenViBE and that you are not using the passkey that should be used for Brainmaster
Try with a lower Bds rate

Atlantis and Discovery presets deactivate notch filter, is it normal ?

Yes it is normal. OpenViBE users usually want the signals as “raw” as possible. The notch filter can be done in software using the “Temporal Filter” box if needed. Still hardware filter usually have better performances than software filters. So for that reason and as an option, you can change these settings manually and go ahead with a pre-filtered signal.

I still have problems using my Brainmaster device with OpenViBE

Edit your OpenViBE configuration file and set the log level to Trace

Kernel_MainLogLevel = Trace

Then run several tests with the acquisition server and save the openvibe-acquisition-server.log file in a safe place. Finally go to the OpenViBE forum (http://openvibe.inria.fr/forum), precisely describe the problem you are facing and attach the log file accordingly.

I know Brainmaster devices and want to be sure what is acquired from the device (raw datastream)

The raw content of the data stream can be dumped in a text file. In order to activate this feature, edit your configuration file and point the appropriate variable to the file you want to dump the stream in.

AcquisitionServer_Driver_BrainmasterFrameDumpFilename = c:/dump.txt

Then run the acquisition server. Note that each use of the acquisition server will overwrite the previous dump.

It happens that the acquired signal looks choppy

OpenViBE implements a drift correction process to allow devices without hardware triggers to reliably tag signals during acquisition. The “reference” clock for this process is the computer’s clock. As their is no hardware sync between the device and the computer’s clock, it happens and it is normal that some devices drift (that is : instead of sending the promised 256 samples per second, they send 256.1 samples per second for instance). As the computer clock is the clock OpenViBE considers as a reference, it has to add and/or remove a fraction of the acquired samples accordingly. While acquiring and inspecting signals with a “Signal Display” box, one should see vertical dashed line for each correction due to drift. This can be checked doing the following actions :

  1. in the designer connect the “stimulations” output of the acquisition client to the “stimulations” input of the signal display
  2. run the scenario
  3. you should see a vertical dashed line for each correction due to drift

This issue can be solved reducing the buffer size and latency of the COM port which the device is connected on. Indeed the default settings cause the OS to buffer the data in big blocks. During the buffering period, OpenViBE believes the device does not send enough samples and adjusts the drift accordingly. As soon as a -big- block of samples gets to OpenViBE, it realizes too many samples were acquired (as it adjusted the drift previously) so it -again- adjusts the drift in the opposite way, causing the signal to be significantly modified (this is the worst scenario happening for the drift correction process !).
In order to reduce the buffer size and latency of the COM port, process as follows :

  1. Right click on the “My computer” icon
  2. Go to “Manage”
  3. Go to the “Device Manager”
  4. Go to “COM and LPT ports”
  5. Go to your Discovery COM port
  6. Go to “Port parameters” tab
  7. Change baud rate to 460800 (Discovery) or 115200 (Atlantis)
  8. Go to “Advanced”
  9. Set the reception / transmission buffer size to at most 64
  10. Set the latency to at most 2ms
  11. Set the delay for reading and writing to 0

The drift correction process does not matter to me, how can I disable it ?

It is not recommended to disable the drift correction process. However, if you still want to disable it, process as follows :

  1. in the acquisition server, go to “Preferences”
  2. in the “drift correction” combo box, select “disable”
  3. start the acquisition server
  4. at some point you’ll probably see the drift gauge moving out of its allowed boundaries – but this will keep all the acquired samples
This entry was posted in Acquisition Server documentation and tagged , , , , . Bookmark the permalink.