Contributions:vAmpADC
Function
The vAmpADC filter acquires data from up to four V-Amp or FirstAmp EEG amplifiers. The V-Amp is an amplifier/digitizer combination from Brain Products. Support for this device in BCI2000 consists of a BCI2000-compatible Source Module (vAmpSource.exe).
V-Amp Hardware
The V-Amp consists of 16 independent 24-bit A/D converters that can sample at up to 2 kHz per channel (16 channels, plus 2 auxiliary) or 20kHz per channel (4 channels).
Installation
The necessary system drivers are located in the BCI2000\src\extlib\brainproducts\vamp\ folder. To install the driver, follow these steps:
- Plug in the V-Amp to a USB port. Windows should recognize it, and start to install drivers.
- Depending on the version of Windows being used, a Found New Hardware dialog should appear. Do NOT search online for drivers; instead, select Don't Search Online.
- When it asks you to insert the disc that came with the amplifier, select the option that allows you to browse for the driver.
- Navigate to BCI2000\src\extlib\brainproducts\vamp\. It should find the driver files, and installed the necessary software.
- For the last step, copy the files DiBpGmbH.dll and FirstAmp.dll to the BCI2000\prog\ folder.
- You should now be able to run the vAmpSource.exe module in BCI2000.
Parameters
Parameters common to all source modules are described under User Reference:DataIOFilter. In addition, the vAmpADC provides the following parameters:
SamplingRate
The sample rate of the system. All data is either acquired at 2000 Hz or 20 kHz, and then decimated to the desired rate. Therefore, only rates that are integer divisors of the base rates are accepted. In 2000 Hz mode, the valid rates are:
- 2000
- 1000
- 666.6
- 500
- 400
- 333.3
- 285.7
- 250
- 222.22
- 200
In 20 kHz mode, the 10 times the above rates are valid. Prior to decimation, a 2nd-order anti-aliasing Butterworth filter with a corner frequency of 0.45 times the sample rate is applied to the signal. All sampling rates are supported for one or more amplifiers. If you are sampling at high rates and from multiple amplifiers, the CPU may be overloaded depending on the speed of your computer and the BCI2000 configuration. In case you are experiencing problems (e.g., data loss, jerky display, etc.), increase the SampleBlockSize so that you are updating the system less frequently (usually, updating the system 20-30 times per second is sufficient for most applications), and increase Visualize->VisualizeSourceDecimation. This parameter will decrease the number of samples per second that are actually drawn in the Source display.
DeviceIDs
List of serial numbers (e.g., 70) of all devices. Serial numbers of found devices will be listed in the BCI2000 log window. If you have more than one device, this list determines the order of the channels in the data file.
HPFilterCorner
A high-pass digital filter for removing dc-offsets. This occurs after data has been read into BCI2000.
SampleBlockSize
Samples per channel per digitized block. Together with the sampling rate, this parameter determines how often per second data are collected, processed, and feedback is updated. For example, at 600 Hz sampling and a SampleBlockSize of 20, the system (e.g., source signal display, signal processing, and stimulus presentation) will be updated 30 times per second.
SourceCh
The total number of channels across all USBamp devices.
SourceChDevices
The number of channels acquired from each device. If there is only one device, this parameter has to equal SourceCh. For example, '16 8' will acquire channels from the first device listed under DeviceIDs, and 8 channels from the second device listed under DeviceIDs. Data acquisition always starts at channel 1. The sum of all channels (e.g., 24 in this example) has to equal the value of SourceCh. In high-speed mode, this number may not be higher than 5 per device (4 channels + digital).
SourceChList
The list of channels that should be acquired from each device. The total number of channels listed should correspond to SourceCh. For more than one device, SourceChDevices determines how the SourceChList values are mapped to each device. For example if SourceChDevices = '8 8' and SourceChList = '1 2 3 4 13 14 15 16 5 6 7 8 9 10 11 12', then channels 1-4 and 13-16 will be acquired on the first device, and channels 5-12 will be acquired on the second device. These channels will be saved in the data file as 16 contiguous channels. The order of channels does not matter; i.e., '1 2 3 4' is the same as '2 3 1 4'. The channels are always in ascending order on a single device. Channels may not be listed twice on a single device; e.g., entering '1 2 3 4 5 6 7 1' if SourceChDevices = '8' will result in an error. If this parameter is left blank (the default), then all channels are acquired on all devices. For the V-Amp 16, channels 1-16 are EEG channels, 17-18 are Auxiliary channels, and 19 are the 8 digital channels stored in bits.
AcquisitionMode
- If set to analog signal acquisition, the V-Amp records analog signal voltages (default).
- If set to high-speed acquisition, the V-Amp records analog signals at 20 kHz instead of 2000 Hz.
- If set to Calibration, the signal output is a square wave test signal generated by the V-amp (which can be used to verify correct system calibration).
- If set to Impedance, impedance data is recorded instead of the signal.
This impedance test reports input impedances for each channel in a separate window. Values are color-coded according to the magnitude:
- Green: 0-5 kOhm
- Orange: 5-30 kOhm
- Red: 30-1000 kOhm
- Purple: > 1 MOhm
Values are updated real-time. Channels are shown in columns, and devices in rows.
- If set to high-speed calibration, a square wave is generated at 20 kHz.
Additional Information
Data Storage
- The signal is originally recorded from the V-Amp as 32-bit integers, and converted into .
- The auxiliary input units are in volts.
- (SourceChOffset is assumed (and required) to be zero for all channels.)
BCI2000 Signal Processing or any offline analysis routine can derive, as with any other BCI2000 source module, sample values in by subtracting, from each stored sample, SourceChOffset (i.e., zero), and multiplying it with SourceChGain for each channel. If SignalType is set to float32, data samples are stored in units of . In this case, SourceChGain should be a list of 1's (because the conversion factor between data samples into is 1.0 for each channel). Still, when values other than 0 and 1 are specified, a consistent data file will be produced, i.e. values will be transformed before they are written to the file, such that applying SourceChOffset and SourceChGain will reproduce the original values in .
Known Issues
Please note that when BrainVision Recorder was running on the computer before you are using BCI2000 there might be some errors ("VampADC::Initialize error opening device" or even a complete crash of BCI2000). There is a daemon process called "VAmpService.exe" running on the computer everytime you start BrainVision Recorder until the next reboot. If you encounter such an error just reboot the computer without running BrainVision Recorder after that again or simply kill the process "VampService.exe" in the task manager.