Over the last few decades, technology to record through ever increasing numbers of electrodes has become available to electrophysiologists. For the study of distributed neural processing, however, the ability to stimulate through equal numbers of electrodes, and thus to attain bidirectional communication, is of paramount importance. Here, we present a stimulation system for multi-electrode arrays which interfaces with existing commercial recording hardware, and allows stimulation through any electrode in the array, with rapid switching between channels. The system is controlled through real-time Linux, making it extremely flexible: stimulation sequences can be constructed on-the-fly, and arbitrary stimulus waveforms can be used if desired. A key feature of this design is that it can be readily and inexpensively reproduced in other labs, since it interfaces to standard PC parallel ports and uses only off-the-shelf components. Moreover, adaptation for use with in vivo multi-electrode probes would be straightforward. In combination with our freely available data-acquisition software, MeaBench, this system can provide feedback stimulation in response to recorded action potentials within 15 ms.