TOBI: Tools for Brain-Computer Interaction

The TOBI project defines a standardized interface called TiA (TOBI interface A) to transmit raw biosignals, supporting multi rate and block-oriented transmission of different kinds of signals from various acquisition devices (e.g., EEG, EOG, near-infrared spectroscopy signals, etc.) at the same time [1].

Interoperability between on streams provided with the TiA and the FieldTrip buffer is provided by the tia2ft application. Tia2ft can connect to a TiA server, and serve the incoming data through its own FieldTrip buffer, or optionally, push it to an external FieldTrip buffer (potentially run on a different device).

Note that only homogeneous signal streams (i.e. with a sampling rate and block size that is consistent between channels) are supported at the moment.

License

Tia2ft is available under the 3-clause BSD license (see LICENSE.txt). This license permits commercial use, and is compatible with the GPL license. The licences of the libraries used in tia2ft are available in their respective directories.

Usage

Without command line arguments, tia2ft attempts to connect to a TiA server and a FieldTrip buffer both served on the same computer. The following options are supported:

  -h [ --help ]                     Show help message.
  -v [ --verbose ]                  Print more info.
  --tia-host arg (=localhost)       Set host name of TiA server.
  --tia-port arg (=9000)            Set port of TiA server.
  --fieldtrip-host arg (=localhost) Set host name of FieldTrip buffer server.
  --fieldtrip-port arg (=1972)      Set port of FieldTrip buffer server.
  --serve-ft-buffer                 Start a new FieldTrip buffer instead of 
                                    connecting to an existing one.

Compiling

To recompile tia2ft, a C++ compiler with the STL and Boost libraries is required.

To compile tia2ft, you can do the following:

  1. build libbuffer.a in /realtime/buffer/src by issuing make,
  2. build tia2ft by issuing make in /realtime/acquisition/tobi/.

Then, it can simply be run with:

$ ./tia2ft.sh --serve-ft-buffer

The shell script adds the TiA library to the search path, and starts the executable tia2ft.

Compiling on windows is not yet supported.

Compiling on OS X is not yet supported.

Testing tia2ft

To test tia2ft, one can use the TOBI signal server to generate artificial signals. With the TOBI signal servers version 8ea1376, a TiA serving sine-waves can be started as follows:

$ ./server.sh bin/server_config.xml

When this sever is running, tia2ft can connect to this server.

References

  1. IEEE Trans Biomed Eng. 2012 Mar;59(3):852-9. Epub 2011 Dec 21. Proposing a standardized protocol for raw biosignal transmission. Breitwieser C, Daly I, Neuper C, Müller-Putz GR.

Related links