tobicore  7.0.0
 All Classes Functions Variables Typedefs Enumerator Friends Groups Pages


The tobicore project provides a total of four C++ libraries that implement some concepts of the TOBI hBCI design.


Low-level library that provides basic functionalities, such as timestamp management (via TCTimestamp) and the TCBlock base class.


Implements the TOBI iC classifier output encoding/decoding via ICMessage.


Implements the TOBI iD events encoding/decoding via IDMessage.


Provides working and cross-platform implementations of some TOBI components, such as an iC client/server class (TPiC) and an iD client class (TPiD).

tobicoremat: mextobicore, mextobiic and mextobiid

tobicoremat provides MEX interfaces to a large set of the tobicore functionalities. The MEX interfaces are not documented here since a per-funtion documentation is provided in the .m files and examples are provided with the interfaces.


  • TOBI project website: general resources about the big BCI project responsible about the hBCI design
  • BCI standards website: lots of information about hBCI and BCI standards in general
  • TOBI iC for dummies: this guide was written to make sure non-technical people could understand the basis of TOBI iC. Do not expect design documents and other boring stuff. You will mainly find user-cases and examples there. Still, it is a must-read document before starting.
  • TOBI iD for dummies: as before.

Compile and install

The tobicore libraries and tools are available on multiple platforms, and the author provides ready-to-use packages. The rule of thumb is:

  • Ubuntu and Debian Linux 32bit/64bit are always supported via .deb packages
  • Windows support is limited to 32 bit and, as today, only for Windows 7
  • No package is provided for other platforms
  • GNU automake and autoconf make it easy to build the libraries on other platforms Some videos are available and provide an overall introduction to the tobicore technicalities.


In order to build tobicore you need:

  • automake, autoconf, libtool, gcc
  • Mathworks Matlab for the MEX interfaces
  • mwap

To compile for Microsoft Windows, you also need:

  • MinGW + Msys: I suggest you download the "mingw-get-install" installer and install the latest official package list.
  • Gnumex


  autoreconf -i
  mkdir build
  cd build
  make install # to install
  make check   # to build the examples
  make html    # to build the documentation


  autoreconf -i
  mkdir build
  cd build
  ../configure --prefix=/mingw/
  make install # to install
  make check   # to build the examples
  make html    # to build the documentation

Debian packages

  dpkg -i libtobicore*.deb


tobicore versions follow the $CURRENT.$REVISION.$AGE schema and the following rules:

  • If the library source code has changed at all since the last update, then increment $REVISION
  • If any interfaces have been added, removed, or changed since the last update, increment $CURRENT, and set $REVISION to 0
  • If any interfaces have been added since the last public release, then increment $AGE
  • If any interfaces have been removed since the last public release, then set $AGE to 0


tobicore is written, documented and maintained by Michele Tavella


This work is supported by thegno European ICT Programme Project FP7-224631, TOBI: Tools for Brain-Computer Interaction. This paper only reflects the authors' views and funding agencies are not liable for any use that may be made of the information contained herein.