From BCI2000 Wiki
Revision as of 19:28, 24 June 2010 by Jrenga (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


National Instruments Data Acquisition Module


Not yet in the repository. (It would be in the following directory:



Justin Renga (

Version History

Source Code Revisions

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

Functional Description

Acquires/Generates signals to/from National Instruments Data Acquisition boards. Device must be connected to computer beforehand.


Command Line Parameters

Initializing NIDAQLogger

To begin using the NIDAQLogger module, use the --LogNIDAQ flag (on SignalGenerator.exe), set equal to 1. To activate device(s) for specific functions, use the following flags:

  • --LogNIDIO (for digital input/output)
  • --LogNIAI (for analog input)
  • --LogNIAO (for analog output)

The format for the inputs for the above flags is as follows: [flag]="[device name]-[port specification]" Note that if --LogNIDAQ is used, that at least one of the three above flags MUST be used.

Device Specification

The device name (usually) is to be written as "dev1" or "dev2" (without the ""). Afterwards, use a - to indicate the device name is finished.

Digital Port Specifications

There are three acceptable states that the user can specify for each digital port:

  • 0 - this indicates the port is INACTIVE.
  • 1 - this indicates the port is to be used as INPUT
  • 2 - this indicates the port is to be used as OUTPUT

Analog Port Specifications

There are two acceptable states that the user can specify for each analog port (both input and output):

  • 0 - this indicates the port is INACTIVE
  • 1 - this indicates the port is ACTIVE


Here is an example on the correct usage of the command line parameters:

SignalGenerator.exe --LogNIDAQ=1 --LogNIDIO="dev1-000100200100" --LogNIAO="dev1-10"

BCI2000 Parameters

If either the --LogNIAI or the --LogNIAO flags are used, there will be a parameter in the configuration box (under Source) that will allow users to specify the voltage range they want the device to work under. There will be as many range parameters as there are devices connected that use analog functionality. It will be labeled as dev#VRanges, where # represents the device number.


The states that are available are dependent on the port specifications declared in the command line parameters. The format for the states is the following:


  • The first # refers to the device number.
  • The second # refers to the line number (starting at 0).
  • The [A:D] denotes if the state refers to an analog (A) or a digital (D) channel.

If the user specifies --LogNIDIO="dev1-000100200100" as a parameter, then the states that will be created are the following:

  • NIdev1DINPUT3
  • NIdev1DOUTPUT6
  • NIdev1DINPUT9

The similar states are generated for both analog input and analog output.