Contributions:Biosemi2ADC: Difference between revisions

From BCI2000 Wiki
Jump to navigation Jump to search
 
(17 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Synopsis==
==Synopsis==
Alpha Version of the BIOSEMI acquisition module.
Working Version of the BIOSEMI acquisition module.
 
===Known Issues===
 
When acquiring at SamplingRate less than the hardware sampling rate, crude averaging of the EEG and AIB signals is performed over each batch of samples:  this is better anti-aliasing than the original simple decimation strategy, but still not ideal. Ideally a properly-designed FIR filter would be used prior to decimation.


==Location==
==Location==
Line 7: Line 11:
==Versioning==
==Versioning==
===Authors===
===Authors===
Samuel A. Inverso (samuel.inverso@gmail.com), Yang Zhen
Samuel A. Inverso (samuel.inverso@gmail.com), Yang Zhen, Maria Laura Blefari,  Jeremy Hill, Gerwin Schalk
 
===Version History===
===Version History===
Revision 1.2  2005/12/14 15:24:15  mellinger: Fixed state name typo in Process().
Revision 2.2 2010/03/04 gschalk:
Revision 1.1 2005/12/12 00:05:24  sinverso: Initial Revision: Working and tested offline. Not tested in real experiments.
Fixed nasty reinitialization bug. Now, pressing SetConfig more than once works.  There is a remaining problem in the Biosemi2Client code that prevents proper function when initialize is called more than once. As a workaround, we now simply delete and recreate the whole object in the ADC's Initialize() function.
 
Revision 2.1   2009/05/27 jhill:
Bugged trigger signal acquisition fixed and tested. Also added an option to acquire trigger signals simultaneously in one 16-bit channel.
 
Revision 2.0  2008/11/07  jhill:
Updated design, including support for an auxiliary Analog Input Box (AIB)
EEG + AIB acquisition tested---triggers not.
 
Revision 1.2  2008/10/25 Maria Laura Blefari:
Fixed the ERROR: Mode changed from 4 to 0
 
Revision 1.1.1 2005/12/14 15:24:15  mellinger: Fixed state name typo in Process().
 
Revision 1.1   2005/12/12 00:05:24  sinverso
Initial Revision: Working and tested offline. Not tested in real experiments.
 
===Source Code Revisions===
===Source Code Revisions===
*Initial development: 960
*Initial development: 960
*Tested under: --
*Tested under: 2372
*Known to compile under: 1658
*Known to compile under: 2372
*Broken since: --
*Broken since: --


==Functional Description==
==Functional Description==
Acquires from a Biosemi Act2.
Acquires from a Biosemi Act2.
Tested with a MK1, may work on a MK2.
Version 1.0 tested with a MK1. Versions 1.2 and up tested on a MK2.


Converts the signal to microvolts before sending it.
EEG channels, Analog Input Box (AIB) channels, and one-bit channels reflecting the digital trigger input states are acquired in sync.  


In Source parameters you can set the module to postfix the BIOSEMI trigger
Warning: If TriggerChList is empty, the trigger values will not be saved in the data files and are not recoverable.
channels after the signal channels. i.e. if you acquire 64 channels of EEG, and
set postfix to true, channels 0 to 63 will be EEG and channels 64 to 79 will
be trigger channels 0 to 15.
Warning: If postfix trigger channels is 0, the trigger values will not be saved in the data files and are not recoverable.  


==Installation==
==Installation==
Copy the Labview_DLL.dll to the prog directory for the module to work.
Copy the Labview_DLL.dll to the prog directory for the module to work. (In the BCI2000 Contrib distribution, that DLL is already in place.)
If you experience problems with the Biosemi 2 source module, uninstall the 'Labview Run time engine' included in the Active View CD (as suggested by Hohyun Cho).


==Parameters==
==Parameters==
Line 37: Line 55:


===EEGChlist===
===EEGChlist===
A list of (one-based) indices to the EEG channels to be acquired. If there are n indices in this list, then the first n channels will be EEG channels.
A list of (one-based) indices to the EEG channels to be acquired. These EEG channels appear first in the final ordering, before AIB and trigger channels.


===AIBChList===
===AIBChList===
Line 43: Line 61:


===TriggerChList===
===TriggerChList===
The old '''PostfixTriggers''' parameter has been replaced by this, a list of indices (each in the range 1 through 16 inclusive) indicating which one-bit trigger channels to postfix after the EEG and AIB channels).  By default, all 16 are postfixed.
The old '''PostfixTriggers''' parameter has been replaced by this, a list of indices (each in the range 1 through 16 inclusive) indicating which one-bit trigger channels to postfix after the EEG and AIB channels.  By default, all 16 are postfixed (for legacy compatibility).
 
Instead of a list, you may alternatively supply a single 0: this means "acquire all triggers simultaneously in one 16-bit channel."


==States==
==States==
Line 53: Line 73:
===MK2===
===MK2===
Set to 1 when connected to an MK2.
Set to 1 when connected to an MK2.


==See also==
==See also==

Latest revision as of 13:15, 12 July 2011

Synopsis

Working Version of the BIOSEMI acquisition module.

Known Issues

When acquiring at SamplingRate less than the hardware sampling rate, crude averaging of the EEG and AIB signals is performed over each batch of samples: this is better anti-aliasing than the original simple decimation strategy, but still not ideal. Ideally a properly-designed FIR filter would be used prior to decimation.

Location

http://www.bci2000.org/svn/trunk/src/contrib/SignalSource/Biosemi

Versioning

Authors

Samuel A. Inverso (samuel.inverso@gmail.com), Yang Zhen, Maria Laura Blefari, Jeremy Hill, Gerwin Schalk

Version History

Revision 2.2 2010/03/04 gschalk: Fixed nasty reinitialization bug. Now, pressing SetConfig more than once works. There is a remaining problem in the Biosemi2Client code that prevents proper function when initialize is called more than once. As a workaround, we now simply delete and recreate the whole object in the ADC's Initialize() function.

Revision 2.1 2009/05/27 jhill: Bugged trigger signal acquisition fixed and tested. Also added an option to acquire trigger signals simultaneously in one 16-bit channel.

Revision 2.0 2008/11/07 jhill: Updated design, including support for an auxiliary Analog Input Box (AIB) EEG + AIB acquisition tested---triggers not.

Revision 1.2 2008/10/25 Maria Laura Blefari: Fixed the ERROR: Mode changed from 4 to 0

Revision 1.1.1 2005/12/14 15:24:15 mellinger: Fixed state name typo in Process().

Revision 1.1 2005/12/12 00:05:24 sinverso Initial Revision: Working and tested offline. Not tested in real experiments.

Source Code Revisions

  • Initial development: 960
  • Tested under: 2372
  • Known to compile under: 2372
  • Broken since: --

Functional Description

Acquires from a Biosemi Act2. Version 1.0 tested with a MK1. Versions 1.2 and up tested on a MK2.

EEG channels, Analog Input Box (AIB) channels, and one-bit channels reflecting the digital trigger input states are acquired in sync.

Warning: If TriggerChList is empty, the trigger values will not be saved in the data files and are not recoverable.

Installation

Copy the Labview_DLL.dll to the prog directory for the module to work. (In the BCI2000 Contrib distribution, that DLL is already in place.) If you experience problems with the Biosemi 2 source module, uninstall the 'Labview Run time engine' included in the Active View CD (as suggested by Hohyun Cho).

Parameters

As of version 2.0 (svn revision 2189) the old parameters PostFixTriggers and TriggerScaleMultiplier have been removed. The functionality of the former is replaced by TriggerChList and the latter can be simulated by setting the corresponding elements of SourceChGain accordingly.

EEGChlist

A list of (one-based) indices to the EEG channels to be acquired. These EEG channels appear first in the final ordering, before AIB and trigger channels.

AIBChList

A list of indices (each in the range 1 through 32 inclusive) indicating which Analog Input Box channels are to be acquired. By default, none are acquired. AIB channels are postfixed immediately following the EEG channels.

TriggerChList

The old PostfixTriggers parameter has been replaced by this, a list of indices (each in the range 1 through 16 inclusive) indicating which one-bit trigger channels to postfix after the EEG and AIB channels. By default, all 16 are postfixed (for legacy compatibility).

Instead of a list, you may alternatively supply a single 0: this means "acquire all triggers simultaneously in one 16-bit channel."

States

BatteryLow

Set to 1 when hardware reports low battery state.

MODE

The mode corresponding to the one on the front of the Biosemi box.

MK2

Set to 1 when connected to an MK2.


See also

User Reference:Filters, Contributions:ADCs