From BCI2000 Wiki
Jump to: navigation, search


The TDTclient program is a data acquisition tool for the BCI2000 software suite that uses the Tucker-Davis Technology (TDT) RX5 – Pentusa system or RZ2 System. The TDT systems are capable of multi-channel (up to 64, or higher), high data transfer rates (more than 1 GB / s) allowing for high density EEG, ECoG, or even single-unit recordings. The system is highly configurable, allowing the user to use digital filtering and complex analysis on the hardware.




J. Adam Wilson, University of Wisconsin – Madison Department of Biomedical Engineering Neural Interfaces Technology and Research Optimization (NITRO) Lab

Source Code Revisions

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

Installation and Requirements

Currently, the TDTclient supports the following system configuration:

  • TDT Pentusa/RX5 OR
  • TDT RZ2
  • GBIT or Optibit
  • ActiveX libraries installed (to install from source)

The obsolete Medusa system is not currently supported, but if there is enough of a demand, it can probably be implemented (contact for more details.) The same computer requirements apply as those for BCI2000.

Install TDT Drivers

The most current TDT drivers should be downloaded and installed from Make sure that the microcode on the hardware is updated to at least version 58 as well, or the program WILL NOT WORK!!

Install TDT ActiveX Library

Currently, the ActiveX library must be installed on the local machine in order to use the TDTclient. It can be obtained from, and it requires a password to install.



The amount of gain to add to the signal. Generally, between 10000 and 100000 is a good value to use, but test it to see what gives good signals.

Circuit Path

The Circuit Path is the path to the TDT *.rco or *.rcx file to be used. Several files are included.

  • chAcquire64.rco - Up to 64 channels from the RX5 system; requires a 5 processor system
  • chAcquire16.rco - Up to 16 channels from the RX5 system; requires a 2 processor system
  • chAcquire64_RZ2 - Up to 64 channels from the RZ2 system chAcquire64.rco

An 8-processor RZ2 system does exist which should be capable of recording 256 channels. If you need this implemented, please contact


The corner frequency of the digital high-pass filter in the circuit. This can be set to 0 to not be used, but be aware that the Medusa pre-amp have an analog high-pass filter at 1.5 Hz built in.


The corner frequency of the digital low-pass filter. This can be set to any value, but it is recommended that the highest value used is at half of the sampling frequency (i.e. 256 for a sample rate of 512).


This is the bandwidth of the 60 Hz notch filter. If set at 10, the bandstop filter will have corner frequencies of 55 and 65 Hz.


The number of processors on the TDT system. This value must correspond to the rco file used in CircuitPath. For example, the chAcquire64_RZ2.rcx and chAcquire16.rco should have nProcessors set to 2, while chAcquire64.rco should use 5.


The sampling rate of the system. Use the TDTsampleRate program to calculate the value to enter here! The TDT has a fixed rate of 24414.0625 Hz, so the requested sample rate must be some integer fraction of this value. For example, a sample rate of 512 Hz is not possible, because it is impossible to find an integer that will divide 24414.0625 to get 512. The closest rate to 512 Hz that can be used is 519.448, because 24414.0625 / 519.448 = 47. This value (47) is used to set the period of the PulseTrain in figure 1.


The number of EEG channels to acquire. These are channels recorded from the preamp. NumEEGchannels plus the number of entries in FrontPanelList must add to SourceCh.


A list of front panel components to collect. The RZ2 system provides 8 analog inputs and 8 digital inputs which can be recorded as extra channels into BCI2000. To collect all 8 analog channels, enter 1 2 3 4 5 6 7 8 for this value; to collect just digital channels, enter 9 10 11 12 13 14 15 16. Any combination of 1-16 is valid. Note: The number of values listed here plus NumEEGchannels MUST add to SourceCh!


If digital inputs are used on the front panel, they must be converted from a digital value (0 or 1) to a floating-point value with this scale factor.


Analog inputs recorded from the front panel will have a different gain than those recorded on the EEG preamps, and need a different gain value to be recorded properly.




As mentioned previously, the TDT can only use sampling rates that are integer divisors of the base sampling rate of 24414.0625 Hz. The TDTsampleRate program takes the desired sample rate and calculates the closest sample rate that will be compatible with the TDT. To start it, go to the EEGSource/TuckerDavis/TDTsampleRate folder, and start TDTsampleRate.exe. Enter the desired sample rate in the appropriate box, press Calculate, and copy and paste the calculated rate into the BCI2000 configuration screen.

Additional Information

Additional information about configuration and usage is available in the TDTclient for BCI2000 document which is provided with the source code.

See also

User Reference:Filters, Contributions:ADCs