OpenFES: Development of an Open-Source EMG-Triggered Functional Electrical Stimulation Controller for Physical Therapy
Authors: Dutta Anirban , Ahmed Nasir U. 
Published: August 2010

The development of OpenFES hardware presented in this paper involved a closed-loop functional electrical stimulation (FES) system that could be assembled from off-the-shelf parts in India. The state-of-the-art biosignal-based control strategies could be evaluated in a clinical research setting using the familiar development environment of MATLAB/SIMULINK (The Mathworks). This hardware was developed primarily for a rehabilitation research center where students from an engineering and medical school could use it as a testbed for clinical research. It is envisioned that the design of a working prototype would be available after thorough testing at http://robo4rehab.wikispaces.com/OpenFES so that it can be further enhanced in an open-source setting. The command source selected for modulating/triggering the electrical stimulation was electromyogram (EMG), which is the recording of the bioelectrical signal generated at the cell membrane of contracting muscle fibers. The FES controller was implemented in an xPC target (The Mathworks) real-time kernel, running on a single board computer where the stimulation pattern, i.e., the temporal pattern of current pulses, was computed online based on the surface EMG patterns. The stimulation parameters were passed to a dsPIC33F microcontroller (Microchip, India) driven voltage controlled current source (VCCS) via a universal asynchronous receiver/transmitter (UART). The VCCS consisted of a coupled transconductance amplifier in series with precharged capacitors. The biphasic stimulation waveform was obtained with an analog switch that switched to reverse the polarity of the surface electrodes. The input stage for surface EMG consisted of an instrumentation amplifier with an anti-aliasing filter made of switched-capacitor (recording capacitor) banks. The dry surface EMG electrodes had buffer op-amps to provide high input impedance. A dsPIC33F microcontroller (Microchip, India) in the input/output (I/O) stage coordinated the switching of the stimulating capacitors with the recording capacitors in order to reject the stimulation artifact. The control software ran on the xPC target and delivered the stimulation parameters via UART to the dsPIC33F microcontroller (Microchip, India). The controller specifications are as follows: (1) Communications: xPC target is a battery powered stand-alone FES controller, communicating with the slave microprocessor in the input/output stages via UART. (2) FES controller: PC/104 single board computer (Advantech Co., PCM-3355) running xPC target kernel (The Mathworks). (3) PC/104 CPU: 366 MHz ×86 (AMD Geode processor). (4) Display: LCD (1024×768 at 18 bpp TFT) or CRT (1024×768 at 24 noninterlaced). (5) Stimulation pulse-width range: 1–255 ms. (6) Stimulation amplitude range: 0–100 mA (16 bit analog output with voltage controlled current source). (7) Stimulation frequency range: up to 30 Hz. (8) I/O channels (Sensoray, model 526): 4 AO (16 bit), 8 DIO, and 8 AI (16 bit). (9) Channel offset: 1000 Hz. (10) Analog to digital conversion for EMG: 16 bit. (11) Maximum signal amplitude: about 10 mV (peak to peak). (12) Minimum signal amplitude: about 1 mV (peak to peak), i.e., the noise floor should preferably be lower. (13) Signal to noise ratio.