Functional electrical Stimulator "COMPEX MOTION"

 

 

T. Keller\, M. R. Popovic**, I. P.I. Pappas**, and P.-Y. Müller***

*ParaCare - Institute for Rehabilitation and Research, University Hospital Balgrist Zurich, Switzerland
**Automatic Control Laboratory, Swiss Federal Institute of Technology Zurich, Switzerland
***Compex SA, Ecublens, Switzerland

SUMMARY

 

Research groups in the field of Functional Electrical Stimulation (FES) are often confronted with the fact that existing and commercially available FES stimulators do not provide sufficient flexibility and cannot be used to perform different FES tasks. The lack of flexibility of the commercial systems until now forced various FES research teams to develop their own stimulators.

This paper presents a newly developed firmware and programming software for the commercial Compex 2 stimulator that enhances the stimulator's versatility and capabilities from a medical and therapeutic device to a neuroprosthesis and research tool. With the new firmware and a new graphical user interface software the stimulator can now be used to develop various custom-made neuroprostheses, neurological assessment devices, muscle exercise systems, and experimental setups for physiological studies. The new stimulator, called "Compex Motion", can be programmed to generate any arbitrary stimulation sequence that can be controlled or regulated by various external sensors, sensory systems or laboratory equipment. By interconnecting two or more Compex Motion stimulators the number of stimulation channels can be increased to multiples of four channels (8,12,16,20,…). The stimulation sequences and the control strategies are stored on exchangeable credit-card sized memory chip-cards read by the stimulator. The chip-cards are programmed using a standard PC. The function of the stimulator is changed instantaneously by simply inserting a different chip-card. The stimulator has four biphasic current regulated stimulation channels and two general purpose analog input channels that can be configured to measure the output voltage of a variety of sensor systems like goniometers, inclinometers, gyroscopes, or EMG sensors. For real-time EMG control of the stimulation patterns an EMG processing algorithm with software stimulation artifact blanking was implemented. The Compex Motion stimulator is manufactured by the Swiss company Compex SA and is currently undergoing clinical trials.

 

STATE OF THE ART

 

Several portable microprocessor or microcontroller FES stimulators for transcutaneous stimulation have been developed to improve upper and lower limb functions in spinal cord injured (SCI) and stroke sub­jects /1-4/. Most of these systems were built for one specific application and did not have an open architecture. In general the setup options were limited, device dependent and the control options were fixed. The preprogrammed stimulation patterns were stored internally. A fixed set of sensors combined with a control algorithm triggered the preprogrammed stimulation sequences. Some systems allowed changes of the stimulation intensity either during the initialization phase or during stimulation on-line. In some cases, a separate PC software allowed one to download new settings for trigger levels and stimulation sequences.

In this article we are describing a new generation of transcutaneous electric stimulators called "Compex Motion". This stimulator represents further evolution and expansion of the already existing ETHZ-ParaCare FES system /5,6/. The new portable stimulator "Compex Motion" exceeds the limitation of other systems by providing to the user a high flexibility in the programming of the stimulation sequences, the control schemes, and the choice of the man-machine interfaces.

 

MATERIAL AND METHODS

 

Hardware

"Compex Motion" is a microcontroller based electric stimulator with four stimulation channels (see Table 1) used for transcutaneous electrical stimulation of selected muscles or muscle groups. The stimulator can deliver current regulated stimulation pulses of maximal 100 mA with a rise time of 3 ms. It has two input channels A and B, and a special purpose port C. A and B can be configured either as analog or digital input channels with a voltage range of 0-5 V. The special purpose port C is used to interconnect two or more stimulators, to serially communicate with a PC, or to trigger the stimulator using a push button. By interconnecting two or more stimulators the number of stimulation channels can be increased from four to multiples of four channels (8,12,16,…). In such an arrangement, one of the stimulators operates as a master stimulator and all other stimulators operate as slave stimulators. The master stimulator ensures that all interconnected stimulators operate synchronously.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Figure 1: Compex Motion electric stimulator:

1) stimulator; 2) keypad with 9 push buttons; 3) three memory chip-cards; 4) two EMG sensors; and 5) two stimulation electrodes

 

Figure 2: Main window of the Compex Motion GUI software. It shows four horizontal timelines associated with each stimulation channel (center and right), pulse amplitude and pulse width safety limits (left), pulse type settings (center bottom), memory chip-card functions (right bottom), and setup functions (left bottom).

 

The Compex Motion stimulator has a rechargeable NiMH battery that provides eight hours of continuous stimulation and is recharged in less than two hours. The stimulator also has a dot matrix LED display that provides a visual interface between the user and the stimulator. The user can interact with the stimulator via nine push buttons on the stimulator (see Figure 1) or via any other user interfaces that are connected to port A, B and C. Currently, EMG sensors and a push button can be purchased with the stimulator. These interfaces can be used to control the stimulation sequences and to regulate the stimulation intensities. Additional stimulator features, accessories, and hardware data are provided in Table 1.

 

Software

The Compex Motion stimulator is programmed with a Graphical User Interface (GUI) software that is installed on a PC (see Figure 2). The GUI software used a “drag-and-drop” technique to program the stimulation sequences. This is done by sequentially placing icons called primitives on a timeline that de­scribes the chronological sequence of the tasks that will be carried out by a stimulation channel. There are four such time lines, one for each stimulation channel. A total of 56 primitives are available in order to take the full advantage of the full flexibility of the system (see Table 2). There are two classes of primitives: global and local. Global primitives represent tasks that affect all active stimulation channels while local primitives affect only the specified channel. The drag-and-drop technique make it easy to compose rapidly precisely timed stimulation sequences including customized pulse width ramps, loops, branches, pauses, user interaction rules, and text display.

The primitives used for user interactions define how a subject must interact with the stimulator and can be customized to individual needs. For example the user can initiate or terminate a stimulation sequence via a predetermined analog or digital sensor signal curve profile detected at the input port A or B. Two different sensor signal curve profiles can be used to select between two different stimulation sequences. Sensors such as EMG sensors, force sensitive resistors, gyroscopes, foot switches, and push buttons have already been successfully applied with the user interaction primitives.

Continuous regulation of the stimulation intensity can be achieved in real-time using an analog input signal, i.e. the pulse amplitude depends on the voltage level of the input signal. This dependence can be arbitrarily defined by a lookup table that can be imported as an ASCII file and can be edited both graphically and numerically. Each stimulation channel has its own lookup table. Thus far sensors such as EMG sensors, sliding resistors, and potentiometers have already been successfully used with this control strategy.

 

RESULTS

 

Table 1 shows the specification of the Compex Motion hardware. Table 2 lists the available primitive types. Using the drag-and-drop technique these primitives are stacked by the programmer in any desired chronological order in a timeline, which form the stimulation sequences.

 

Feature

Characteristics

4 stimulation channels

Current regulated

 

 

 

Pulse amplitude

Range: 0-100 mA

resolution: 1 mA (8 Bit)

 

Pulse width

Range: 0-16 ms

resolution: 500 hs (14 Bit)

 

Stimulation frequency

Range: 1-100 Hz

resolution: 1 Hz (8 Bit)

2 digital input ch. (A & B)

 

Range: 0-5 V TTL

 

2 analog input ch. (A & B)

Max sampl. freq.: 8 kHz

Range: 0-5 V

resolution: 20 mV (8 Bit)

1 special purpose port (C)

Push button, serial port communication, and stimulator interconnection

Working regimes

Master/slave

Stimulation pulses

Monophasic/biphasic; monopolar/bipolar; and alternating/non-alternating

Microcontroller

Motorola HC11

dot matrix LED display

No. pixels: 165 x 64

 

dimensions: 72 mm x 30 mm

chip-card

Can store up to 255 primitives per channel and all relevant stimulation parameters

NiMH battery

Rechargeable, 8 h of continuous stimulation

Stimulator dimensions

148 mm x 80 mm x 30 mm & 420 g

Accessories

AC/DC adapter, push button, 4 cables, self-adhesive electrodes, EMG sensor, ...

Table 1: Compex Motion data sheet specifications

 


Pulse Width Primitives:

Icon

Name

Description

constant pulse width

Generates a pulse with a constant width (4 different values are available per channel)

pulse width ramp-up

Profile for changing the pulse width (2 differ­ent profiles are available per channel; profiles are described with 16 values)

pulse width ramp-down

Profile for changing the pulse width (2 differ­ent profiles are available per channel; profiles are described with 16 values)

no stim

Pulse width equal to 0

 

 

delay

Keeps the actual pulse width at the previous level for the given time interval

Pulse Amplitude Primitives:

Icon

Name

Description

change amplitude

Changes the amplitude from previous to new value in a specified time period (change is linear)

Pulse Frequency Primitives:

Icon

Name

Description

change frequency

Changes stimulation frequency (4 different values are available and they apply to all stimulation channels)

Primitive Sequence Control:

Icon

Name

Description

 

jump back

Program jumps back n times in the sequence to the marker primitive, where n=1-255, or n is infinite (n=0).

 

synchronize

Synchronizes otherwise independent stimula­tion sequences in all 4 stimulation channels

Human Interaction Primitives:

Icon

Name

Description

user interaction

This primitive waits for a specific user action to trigger a stimulation sequence. One can use an arbitrary triggering profile and a sensor.

 

user branch

Two trigger criteria set with the user interac­tion primitive are used to generate branching. If criterion 1 is fulfilled the program proceeds with the next primitive in the line. If criterion 2 is fulfilled the program jumps to a predefined marker and proceeds with the next primitive after the marker.

  

user interrupt

One trigger criterion set in user interaction primitive is used to generate interrupt. If this criterion is fulfilled between markers ON and OFF the program jumps to a predefined marker and proceeds with the next primitive after the marker.

General Primitives:

Icon

Name

Description

end

Terminates stimulation in the specified channel – time line

turn off

Turns off the stimulator

display text

Displays two text lines with 8 characters in each text line

generate sound

Generates a melody (2 different short melodies are available)

Special Primitives:

Icon