View on GitHub

tools4BCI - Signalserver

Download this project as a .zip file Download this project as a tar.gz file


The SignalServer is a simple program, acquiring data from various hardware devices (mainly biosignal amplifiers) and distributing the acquired data via network connections using the TiA library. It has been implemented to provide a cross-platform data acquisition system with a standardized data delivery method. Thus it is possible to mask the actual hardware and retrieve acquired data in a standardized and manufacturer independent way.

Features and supported hardware

Documentation and User Manual

User manual (howto run and configure the SignalServer): online, pdf

Doxygen doku (for SignalServer development)


The SignalServer is written in C++, using git as version management tool. The Code is available here. To get r/w access to the SignalServer repository, please get in touch with: Christian Breitwieser -- c.breitwieser(at)tugraz(dot)at

Building the SignalServer

Linux & Co.

Under a Linux or Unix based distribution, the SignalServer utilizes the qmake build system from the Qt library. The respective '.pro' and '.pri' files (qmake config files) are included in the SignalServer repo. It is suggested to use the Qt Creater as an IDE under Linux, as it fully supports qmake. Simply press the build button in Qt Creator or run 'qmake' and 'make' afterwards in the command line.

Important: Don't use shadow-builds (Qt Creator - "Projects" button - Shadow Build checkbox) unless you know what you're doing (the external folder is not copied during a shadow build, leading to likner errors)!


The SignalServer source is shipped with a Microsoft Visual C++ 2010 solution file (.sln) and the required project files (.vcxproj) to build the SignalServer. These solution files are also suitable for the Visual C++ Express Edition.

Important: To successfully start the SignalServer under Windows, the appropriate Microsoft Visual C++ 2010 Redistributable Package has to be installed (not needed if Microsoft Visual C++ 2010 is already installed on the system): 32 bit Windows(x86), 64 bit Windows(x64)

Required libraries: boost-libs (pre-compiled libs available here): system, thread, filesystem, program_options, date_time, regex SDL (simple direct media layer), libusb, comedi Remark: The SignalServer utilizes TinyXML for C++ aka. TiCPP (for xml parsing), SDL, and libsub, which are statically linked against the SignalServer. For convenience, pre-built library files are uploaded to the git repository. The respective files are located in the 'external' subfolder. In case of linker errors, please rebuild the respective library by yourself and replace the respective files in the 'external' folder.

Using Linux, those libraries are usually included in the repositories of the respective distributions.

General Remark: Changes in the Linux build environment are currently added to the Windows environment manually and vice versa. Thus, potential compile errors might happen, as a result of missing files in the configuration files. In this case, please submit a ticket or get in touch with one of the developers.


The signalServer is dual-licenced under the GPL version 3.0 and under the Graz University of Technology Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and Graz University of Technology.