Contributions:FlexEEG
Synopsis
This source module supports the FlexEEG system made by NeuroCONCISE Ltd. Its key component is the ADC called NC_flexXADC.
Location
http://www.bci2000.org/svn/trunk/src/contrib/SignalSource/FlexEEG
Versioning
Authors
Tony Moore, Jeremy Hill
Version History
- Revision r7860 2024-02-23 jhill: first debugged commit
Source Code Revisions
- Initial development: 7855--7860
- Tested under: 7860 (Windows)
- Known to compile under: 7860
- Broken since: --
- Known issues: (as at 7860) The API freezes if you press Set Config more than once per session. Then you have to physically power-cycle the device before you can connect again.
Functional Description
This source module supports the FlexEEG systems made by NeuroCONCISE Ltd.
For best results, set the FlexEEGPort environment variable to specify the default serial port address for the computer you are using (e.g. COM9 on Windows). On Windows 11, the dialog that allows you to create or edit environment variables is at: Control Panel->System and Security->System->Advanced system settings->Environment Variables
Installation
The FlexEEG source module requires the flexX64.dll dynamic library. This is part of the manufacturer's API. The file must be placed in the prog directory. A compiled version of the dynamic library for 64-bit Windows is supplied in the lib subdirectory, and will be copied to prog during the build process.
Parameters
SampleBlockSize, SamplingRate, SourceCh, SourceChGain, SourceChOffset, TransmitChList
These parameters are the same as for other BCI2000 source modules. For current devices (as at Feb 2024), the SamplingRate should always be either 125 or 250. The SampleBlockSize must be at least 24 (a value of 25 at 250Hz gives you 100ms blocks). The SourceChOffset values should be all 0 and the SourceChGain values should be all 1 (or both can be left at "auto").
PortName
This is the port on which the headset connects, e.g. COM9 on Windows. You may lastingly set the default value on a particular computer by configuring a system environment variable called FlexEEGPort.
AcquisitionMode
This allows you to switch between normal signal acquisition (code 0), acquiring a square-wave test signal (code 1), or shorting the inputs for purposes of offset or noise measurement (code 2).
DCfilter
This turns on (1) or off (0) the device's built-in DC filter.
Resolution
This sets the device's digitization precision to 16-bit (code 1) or 24-bit (code 0).
States
TODO
Need a state that reflects the device's current battery level, and code for periodically querying the device and updating this state.
Streams
Trigger
Streams the digital trigger channels from the device (this device feature is still under development as at Feb 2024).