From BCI2000 Wiki
Revision as of 21:19, 16 July 2010 by Gmilsap (talk | contribs) (Known Issues: - Added suggestion, removed fixed issues.)

Jump to: navigation, search


Neuroscan Direct Access SDK module

Known Issues

  • Starting the source module without the device connected causes system lockup on "Set Config", requiring force quit of Neuroscan.exe
  • Small DC offsets can occur, especially when running the device at 20 kHz. Running a high pass filter at 0.01 Hz is highly recommended.




Griffin Milsap (

Version History

Source Code Revisions

Functional Description

Acquires signal data from the Neuroscan device. The headbox must be connected to system unit, and system unit must be powered on and connected to the computer via USB. Drivers must be installed and functioning for the Neuroscan device to work. Finally, the license dongle must be plugged in while the device is being used.


Copy the NSDevice.dll to the prog directory for the module to work.

The module may be compiled using any compiler supported by the CMake build system, and both OMF and COFF formatted static object libraries are provided.


  • SourceCh must be set between 1 and 70. The device has 70 channels total.
  • SamplingRate must be set to 100, 200, 250, 500, 1000, 1250, 2000, 2500, 5000, 10000, or 20000 Hz.
  • SourceChOffset is currently unknown. 0 isn't a poor choice here.
  • SourceChGain is also currently unknown. A gain of unity (1) will just not scale the data, and is probably a safe bet.
  • SampleBlockSize must be set to a multiple of the internal sample block size of the device. This internal sample block size will vary with different values of SamplingRate, so in order to find out a good value for this parameter, first set your sampling rate and guess at a SampleBlockSize, press the "Set Config" button, and the BCI2000 log should tell you what the internal sample block size is for that specific sample rate. You can then reset this value to a multiple of that sample block size and try again. For example, the internal sample block size for a 100Hz configuration is 10. You can set the SampleBlockSize to 20, 30, 50 or any integer multiple of this sample block size. For 1000Hz, the internal sample block size is 100. As such, the SampleBlockSize can be set to 200, 600, or any integer multiple of 100
  • Device is an enumerated choice between the Compumedics Synamp2 or the Synamp2Wireless. The module is untested with the Synamp2Wireless, though it should work. If the Compumedics Synamp2Wireless is to be used, a connection string must be provided. See DeviceID
  • DeviceID is the connection string describing the IP address and port number which the Synamp2Wireless is located on. See Synamp2Wireless documentation for more information on where to find this connection string for your device. This parameter is IGNORED for the Synamp2



Future Work

The device library outputs a MASSIVE XML formatted file which describes the capabilities of the connected device. As of right now, nothing is done with this, as parsing XML is not a particularly easy task. Eventually, it may come to pass that this XML file gets parsed and more information about the device can be revealed at the preflight stage to perform more detailed error checking about the configuration for the device. As of right now, it is simply not worth the work needed to implement it.

See also

User Reference:Filters, Contributions:ADCs