Wikiversity:Fellow-Programm Freies Wissen/Einreichungen/Ersatz für den Parallelen Port: Open Hardware für die Markierung von Ereignissen in Experimenten/EnglishAbstract

Aus Wikiversity

English Abstract


A multitude of scientific disciplines employs experimental research involving the presentation of stimuli to research subjects. Be it displaying a stimulus to a human, applying an electric shock to a rodent, or switching off the lights in a room where an autonomous robot is trying to navigate: Researchers need to record these events together with other data to make sense of the results.

A traditional implementation for event marking is the parallel port available on standard computers. Through its use of direct current signals that directly translate into digital states of a receiving interface, the parallel port can achieve microsecond resolution of data transmission. These fast direct current signals, also called transistor-transistor logic (TTL) pulses, were a reason for manufacturers of recording hardware for experimental research to adopt the parallel port as a standard interface for implementing event marking. However, the parallel port’s original role as a general interface to transmit data has been taken over by serial communication protocols, such as the ubiquitous “universal serial bus” (USB) protocol. Based on the ongoing replacement of parallel port interfaces by superior types of ports on commercially available computers, it is becoming difficult to obtain modern computer hardware that still supports a parallel port “out of the box”. Yet, a large majority of data recording hardware for experimental research still relies on event marker inputs sent from a parallel port interface. Given this situation, researchers often find themselves hoarding outdated computer equipment merely for their availability of the parallel port, or they try to remedy the absence of such a parallel port through workarounds by using PCI adapter cards, or an old docking station for a modern laptop. The problem of parallel port availability can become even more grave for users of Apple computers, which are traditionally produced without a parallel port interface.

Workarounds for event marking should be temporary solutions as they are usually not exhaustively tested, which can introduce dangerous uncertainty about the true latency between an event and its associated marker in the data. Commercial manufacturers are beginning to acknowledge this situation and are releasing products tailored towards bridging the link from USB connectors to the proprietary connectors expecting TTL pulse inputs as from a parallel port. Currently, there are at least 7 viable product alternatives to choose from, most of which have been tested by the respective manufacturers. Unfortunately however, most of the products have at least one of the following drawbacks:


  • they are expensive,
  • they are specific to a particular type of hardware, or
  • they only provide supported functionality under a limited set of computer operating system (i.e., hardware drivers or accompanying software are not provided for all major operating systems)


Even though the relatively widespread MCU evaluation boards such as Arduinos are able to fulfill the same purpose, most labs shy away from them because of uncertainty whether or not events can be marked with the required precision. The same holds true, however, for commercial products without published timing test results of their products.

With the proposed project, we aim to shed light into this uncertainty and provide convincing evidence that USB based “event trigger boxes” are generally adequate replacements of the parallel port. We will describe the general principle that underlies the commercial products linking the USB port to proprietary connectors expecting a TTL pulse. Furthermore, we will provide a suite of latency tests of several such event trigger boxes under two major operating systems (Windows, Linux) and compare the results against a traditional parallel port. As supplemental material, we will provide a detailed tutorial on how to build an event trigger box and software examples on how to operate them using Matlab or Python.