Real-Time Linux Biological-Experiment Control project

Home Page . Download Page . Mailing List . CVS Server Instructions . Papers and Publications . Contact Us

Project Overview

We have developed a software system for scientific experimentation.

Experimenters can use this system to design their own hard real-time data acquisition and control applications. Applications are split into two parts: the user interface and the real-time control module. The user interfaces are written as Qt C++ plugins which get loaded into the DAQSystem program. Real-time control modules, which use RTLinux or RTAI, are written as C code that gets loaded into the kernel and is executed by the rtlab.o kernel module.

Software Screenshot

DAQSystem (with APD Control plugin)
multi-channel data acquisition GUI using our new codebase
The Experiment System pictured above supports arbitrary sampling rates, arbitrary numbers of channels, and many DAQ boards.
    To the left is a screenshot of our experiment software, the Real-time Experiment Control Software for Linux. Pictured is the Data Acquisition System user program which is actively receiving experiment data from the real-time kernel task via FIFOs and shared memory. Three analog input (AI) channel graphs can be seen at the top half of the screen. One of the channels towards the center depicts a characteristic cardiac action potential waveform (which is coming in from a biological preparation). Additionally, there is a custom experiment plugin interface in the lower half of the screen, the APD Control experiment, which is trying to control APD alternans of a one-dimensional (cable) cardiac system.

General Info

This C++ user interface is written using the Qt graphical libraries on the Linux operating system. Hard real-time execution is made possible by modifications to Linux known as Real-Time Linux (of which there are two variants, RTLinux and RTAI ) which can provide temporally accurate guarantees about real-time processing. These timing guarantees are essential for control systems.

Data acquisition (DAQ) requires a PCI or ISA DAQ card. Most major DAQ boards are supported as we use the COMEDI driver package, which is an actively developed and community-supported open-source driver suite for measurement devices. COMEDI supports many DAQ boards, however check to see if your board is supported in COMEDI's official list of supported hardware.

Download

  • Software Source Code: The source code and documentation to the experiment system is freely available. It requires Qt 3.x, COMEDI, a DAQ board and RTLinux/RTAI in order to build.

  • LiveCD (stand alone bootable CD): A bootable CD is available as well. Basically it is a full-featured Linux (with RTLinux) operating system that runs completely off the CD and does not require a hard drive installation! It is primarily intended for those who either:
    • Would rather not install Linux to their hard drive right now
    • Have Linux, but are unsure about modifying their kernel and installing Real-Time Linux extensions
    • Have had trouble building the experiment system source code package for some reason (such as they don't have all the required headers and libraries) and would rather try a binary-only approach
    • Or, simply like the idea of a stand-alone bootable CD and the convenience that it provides
    You can burn this CD image and boot from it. It features a full-featured Linux Kernel, RTLinux, Comedi, and the 'x-setup' and 'rtlab-setup' hardware wizards which will help you get up and running. The CD has some online help too.

  • Click here for download and installation information for all of the above

Acknowledgements

We would like to thank members of the open-source software community. Dozens of people offered tons of advice, suggestions, and/or source code to aid us in the development of this software.

This project is supported by the National Science Foundation (NSF grant DBI-0096596, PI: David Christini).