Jump to content

Contributions:Biosemi2ADC: Difference between revisions

From BCI2000 Wiki
Mellinger (talk | contribs)
No edit summary
 
Mellinger (talk | contribs)
 
(21 intermediate revisions by 3 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==
===PostfixTriggers===
Make the triggers 16 channels and place them after end of EEG channels?
*0: no (they will not be saved at all),
*1: yes, post fix them.


===TriggerScaleMultiplier===
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.
A number to multiply triggers by to scale them to the visualization range.
 
===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==
==States==
===BatteryLow===
===BatteryLow===
Set to 1 when hardware reports low battery state.
Set to 1 when hardware reports low battery state.
===Mode===
===MODE===
The mode corresponding to the one on the front of the Biosemi box.
The mode corresponding to the one on the front of the Biosemi box.
===MK2===
===MK2===
Set to 1 when connected to an MK2.
Set to 1 when connected to an MK2.
==See also==
[[User Reference:Filters]], [[Contributions:ADCs]]
[[Category:Contributions]][[Category:Data Acquisition]]

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