PATENT DOCUMENT

Abstract:
The systems and methods provide effective neuromuscular stimulation to meet a host of different prosthetic or therapeutic objections. The systems and methods also provide convenience of operation, flexibility to meet different user-selected requirements, and transportability and ease of manipulation, that enhance the quality of life of the individual that requires chronic neuromuscular stimulation.

Full Description:
FIELD OF THE INVENTION  
         [0001]    This invention relates to systems and methods for providing function to otherwise paralyzed muscles.  
         BACKGROUND OF THE INVENTION  
         [0002]    Functional Electrical Stimulation or Function Neuromuscular Stimulation, in short hand, typically refer to prosthetic systems and methods that restore function to muscles in the body that are otherwise paralyzed due to lack of neuromuscular stimulation, e.g., due to spinal cord injury, stroke, or disease. These conditions can break or otherwise disrupt the path or paths by which electrical signals generated by the brain normally travel to neuromuscular groups, to stimulate coordinated muscle contraction patterns. As a result, even though the nerves and muscles are intact, no electrical stimulation is received from the spinal cord, and the associated muscles do not function. Such systems and methods replace the disrupted, physiologic electrical paths, and restore function to the still intact muscles and nerves. Such systems and methods are known, e.g., to restore finger-grasp functions to muscles in the arm and hand, or to restore bladder and bowel control to muscles in the bladder, urethral sphincter, and bowel or to restore a standing function to muscles in the hip and thigh.  
           [0003]    Neuromuscular stimulation can perform therapeutic functions, as well. These therapeutic functions provide, e.g., exercise to muscle, or pain relief for stroke rehabilitation, or other surgical speciality applications, including shoulder subluxation, gait training, etc.  
           [0004]    While existing systems and methods provide remarkable benefits to individuals requiring neuromuscular stimulation, many quality of life issues still remain. For example, existing systems are function specific, meaning that a given device performs a single, dedicated stimulation function. An individual requiring or desiring different stimulation functions is required to manipulate different function specific stimulation systems. Such systems are not capable of receiving control inputs from different sources, or of transmitting stimulation outputs to different stimulation assemblies. Concurrent performance of different stimulation functions is thereby made virtually impossible.  
           [0005]    Furthermore, the controllers for such function specific systems are, by today&#39;s standards, relatively large and awkward to manipulate and transport. They are also reliant upon external battery packs that are themselves relatively large and awkward to transport and recharge.  
           [0006]    While the controller can be programmed to meet the individual&#39;s specific stimulation needs, the programming requires a trained technical support person with a host computer that is physically linked by cable to the controller. The individual requiring neuromuscular stimulation actually has little day to day control over the operation of the controller, other than to turn it on or turn it off. The individual is not able to modify operating parameters affecting his/her day-to-day life.  
           [0007]    It is time that systems and methods for providing neuromuscular stimulation address not only specific prosthetic or therapeutic objections, but also address the quality of life of the individual require neuromuscular stimulation.  
         SUMMARY OF THE INVENTION  
         [0008]    The invention provides improved systems and methods for providing prosthetic or therapeutic neuromuscular stimulation.  
           [0009]    One aspect of the invention provides neuromuscular stimulation systems and methods that universally enable different, user-selectable neuromuscular stimulation functions. In one embodiment, the systems and methods employ a universal controller that is adapted to provide different functional neuromuscular stimulation functions, which can be selected by the user. The controller comprises a housing and an output device that is carried by the housing that can be coupled to an electrode. A microprocessor carried by the housing, which is coupled to the output device. The microprocessor includes a processing element that is operative in first and second modes. In the first mode, the processing element generates a signal pattern to an electrode to control a first neuromuscular stimulation function, e.g., a motor control function. In the second mode, the processing element generates a signal pattern to an electrode to control a second neuromuscular stimulation function that is different than the first neuromuscular stimulation function, e.g., a bladder or bowel control function. An input device carried by the housing is coupled to the microprocessor to enable selection by the user of the first or second modes.  
           [0010]    The input device desirably includes a display element on the housing. In this arrangement, the microprocessor is further operative to generate a display on the display element prompting selection of the first or second modes.  
           [0011]    The microprocessor can enable selection of either the first or second modes. Desirably, the microprocessor can enable concurrent selection of the first and second modes, so that, e.g., a user can affect a motor control function (for example, a standing function) while simultaneously affecting a bladder control function.  
           [0012]    Desirably, the housing is sized and configured to fit comfortably within a hand of the individual, or it can be otherwise sized and configured to be easily carried by the individual, e.g., in a shirt pocket or on a belt.  
           [0013]    The systems and methods that embody the features of the invention provide effective neuromuscular stimulation to meet a host of prosthetic or therapeutic objections. The systems and methods also provide convenience of operation, flexibility to meet different user-selected requirements, and transportability and ease of manipulation, that enhance the quality of life of the individual that requires chronic neuromuscular stimulation.  
           [0014]    Other features and advantages of the inventions are set forth in the following specification and attached drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]    [0015]FIG. 1 is a diagrammatic view of a system that makes possible the restoration of function to muscles in the body that are otherwise paralyzed due to lack of neuromuscular stimulation;  
         [0016]    [0016]FIG. 2 is a diagrammatic view of a system that supports multiple prosthetic or therapeutic objectives, using a universal external controller, for achieving (i) a hand-grasp function in upper extremity arm muscles; (ii) a standing function in lower extremity leg muscles; and (iii) a bladder and bowel control function;  
         [0017]    [0017]FIG. 3A is a front view of the universal external controller shown in FIG. 2, showing the interface screen by which the user can select one or more neuromuscular stimulation functions;  
         [0018]    [0018]FIG. 3B is a bottom view of the universal external controller shown in FIG. 3A, showing the outputs for connecting different function-specific neuromuscular stimulation assemblies to the controller;  
         [0019]    [0019]FIG. 3C is a perspective view of the universal external controller shown in FIG. 3A, demonstrating how the compact size and configuration of the controller makes it well suited for hand-held operation;  
         [0020]    [0020]FIG. 4 is an exploded perspective view of the universal external controller shown in FIGS. 3A to  3 C;  
         [0021]    [0021]FIG. 5 is a representative circuit block diagram for the microprocessor housed within the universal external controller shown in FIGS. 3A to  3 C;  
         [0022]    [0022]FIGS. 5A to  5 M are schematic circuit diagrams of the principal circuit components of the microprocessor housed within the universal external controller shown in FIGS. 3A to  3 C;  
         [0023]    [0023]FIG. 6 is a view of an opening screen of the user interface that the microprocessor shown in FIG. 5 generates, prompting the user to select from a list of different stimulation functions that the universal external controller enables;  
         [0024]    [0024]FIG. 7 is a view of the hierarchy of the Exercise Regime screens of the user interface that the microprocessor shown in FIG. 5 generates, prompting the user to select from a list of different exercise stimulation functions that the universal external controller enables;  
         [0025]    [0025]FIG. 8 is a view of the hierarchy of the Finger-Grasp Pattern screens of the user interface that the microprocessor shown in FIG. 5 generates, prompting the user to select from a list of different finger grasp functions that the universal external controller enables;  
         [0026]    [0026]FIG. 9 is a view of the hierarchy of the screens of the user interface that the microprocessor shown in FIG. 5 generates, as the user affects different finger-grasp control functions using a shoulder position sensor as the control signal source;  
         [0027]    [0027]FIG. 10 is a view of the hierarchy of the screens of the user interface that the microprocessor shown in FIG. 5 generates, as the user affects different finger-grasp control functions using the keypad of the universal external controller as the control signal source;  
         [0028]    [0028]FIG. 11 is a view of the hierarchy of Set Up screens of the user interface that the microprocessor shown in FIG. 5 generates, which allow the user to select and change certain operating states or conditions of the user interface of the universal external controller;  
         [0029]    [0029]FIG. 12 is a schematic view of a remote programming system, which can be used in association with the universal external controller shown in FIGS. 3A to  3 C, to control, monitor and program the universal external controller;  
         [0030]    [0030]FIG. 13 is a view of the hierarchy of the screens of the user interface that the microprocessor shown in FIG. 5 generates, which allow the user or a trained technician to input programming instructions to the microprocessor, so that operation of the universal external controller can be customized and optimized; and  
         [0031]    [0031]FIGS. 14A to  14 D are diagrammatic views of the pulsed output command signals that the universal controller generates to conserve power and, thus, conserve battery life. 
     
    
       [0032]    The invention may be embodied in several forms without departing from its spirit or essential characteristics. The scope of the invention is defined in the appended claims, rather than in the specific description preceding them. All embodiments that fall within the meaning and range of equivalency of the claims are therefore intended to be embraced by the claims.  
       DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0033]    The various aspects of the invention will be described in connection with providing functional neuromuscular stimulation for prosthetic or therapeutic purposes. That is because the features and advantages that arise due to the invention are well suited to this purpose. Still, it should be appreciated that the various aspects of the invention can be applied to achieve other objectives as well.  
       I. System for Providing Functional Neuromuscular Stimulation Using a Universal External Controller  
       [0034]    [0034]FIG. 1 shows a system  10  that makes possible the restoration of function to muscles in the body that are otherwise paralyzed due to lack of neuromuscular stimulation, e.g., due to spinal cord injury or stroke. Spinal cord injury or stroke can break or otherwise disrupt the path or paths by which electrical signals generated by the brain normally travel to neuromuscular groups, to stimulate coordinated muscle contraction patterns. As a result, even through the nerves and muscles are intact, no electrical stimulation is received from the spinal cord, and the associated muscles do not function.  
         [0035]    In use, the system  10  generates and distributes electrical current patterns to one or more targeted neuromuscular regions. The resulting patterns of neuromuscular stimulation restore desired muscle function in the targeted region or regions. The stimulatation can be achieved by direct application of electrical current to a nerve (e.g., using a nerve cuff electrode), or by indirect distribution of electrical current to a nerve through adjacent muscle tissue (e.g., using epimysial or intramuscular electrodes).  
         [0036]    As will be described in greater detail later, the system  10  can restore function to a single, targeted neuromuscular region, for example, to upper extremity muscles in the arm, e.g., to restore hand-grasp functions; or to lower extremity muscles in the leg, to restore standing or ambulatory functions; or to bladder and bowel muscles, to restore micturition; or to muscles controlling (in males) erection and ejaculation, or (in females) lubrication, to restore sexual or reproductive function. The system  10  can also be selectively operated to restore function to more than one targeted neuromuscular region, making it possible for an otherwise paralyzed individual to use the system  10  to selectively perform not only hand-grasp functions, but also to selectively perform standing/ambulatory and/or bladder and bowel control functions and/or other stimulation functions, as well.  
         [0037]    The system  10  comprises basic functional components that can be assembled and arranged to achieve single or several neuromuscular stimulation functions. Generally speaking, as shown in FIG. 1, the basic functional components for a prosthetic neuromuscular stimulation function include (i) a control signal source  12 ; (ii) a pulse controller  14 ; (iii) a pulse transmitter  16 ; (iv) a receiver/stimulator  18 ; (v) one or more electrical leads  20 ; and (vi) one or more electrodes  22 .  
         [0038]    As assembled and arranged in FIG. 1, the control signal source  12  functions to generate an output, typically in response to some volitional action by a patient, or a trained partner, or another care giver. In response to the output, the pulse controller  14  functions according to preprogrammed rules or algorithms, to generate one or more prescribed stimulus timing and command signals.  
         [0039]    The pulse transmitter  18  functions to transmit these prescribed stimulus timing and command signals, as well an electrical operating potential, to the receiver/stimulator  18 . The receiver/stimulator  18  functions to distribute electrical current patterns according to the prescribed stimulus timing and command signals, through the leads  20  to the one or more electrodes  22 . The one or more electrodes  22  store electrical energy from the electrical operating potential and function to apply electrical current patterns to the targeted neuromuscular region, causing the desired muscle function.  
         [0040]    The basic functional components can be constructed and arranged in various ways. In a representative implementation, some of the components, e.g., the control signal source  12 , the pulse controller  14 , and the pulse transmitter  16  comprise external units manipulated outside the body. In this implementation, the other components, e.g., the receiver/stimulator  18 , the leads  20 , and the electrodes  22  comprise implanted units placed under the skin within the body. Other arrangements of external and implanted components can occur, as will be described later.  
         [0041]    In the representative implementation shown in FIG. 2, a system  24  supports multiple prosthetic or therapeutic objectives. For purpose of illustration, in FIG. 2, the system  24  is capable of achieving (i) a hand-grasp function in upper extremity arm muscles; (ii) a standing function in lower extremity leg muscles; and (iii) a bladder and bowel control function.  
         [0042]    To accomplish the different hand-grasp, standing, and bladder and bowel control functions, the system  24  dedicates, for each function, a function-specific external control signal source  12 ( 1 )( 2 )( 3 ), a function-specific external pulse transmitter  16 ( 1 )( 2 )( 3 ), a function-specific implanted receiver/stimulator  18 ( 1 )( 2 )( 3 ), function-specific implanted leads  20 ( 1 )( 2 )( 3 ), and function-specific implanted electrodes  22 ( 1 ) ( 2 ) ( 3 ). To control all three function-specific receiver/stimulators, the system  24  employs a single, external pulse controller  26 , which, for this reason, will also be called the “universal external controller.” In concert with the other function-specific components, the universal external controller  26  selectively achieves all three hand-grasp, standing, and bladder and bowel control functions.  
       A. The Function-Specific Hand-Grasp Function Components  
       [0043]    For the hand-grasp function, epimysial and intramuscular electrodes  22 ( 1 ) are appropriately implanted by a surgeon in the patient&#39;s arm. The function-specific implanted electrodes  22 ( 1 ) are positioned by the surgeon by conventional surgical techniques to affect desired neuromuscular stimulation of the muscles in the forearm and hand.  
         [0044]    Desirably, the neuromuscular stimulation affected by the electrodes  22 ( 1 ) achieves one or more desired palmar grasp patterns (finger tip-to-thumb pinching) and/or one or more desired lateral grasp patterns (thumb to flexed index finger pinching). The palmar grasp patterns allow the individual to grasp large objects (e.g., a cup or book), and the lateral grasp patterns allow the individual to grasp small or narrow objects (e.g., a pen or fork).  
         [0045]    Implanted leads  20 ( 1 ) connect the electrodes  22 ( 1 ) to the function-specific implanted receiver/stimulator  18 ( 1 ) in conventional ways. The receiver/stimulator  18 ( 1 ) is placed by a surgeon under the skin on the chest. The receiver/stimulator  18 ( 1 ) receives the stimulus timing and command signals and power from the universal external controller  26  through the function-specific external pulse transmitter  16 ( 1 ).  
         [0046]    In the illustrated embodiment, the pulse transmitter  16 ( 1 ) takes the form of a transmitting coil, which is secured to a skin surface over the receiver/stimulator  18 ( 1 ), e.g., by tape. The pulse transmitter  16 ( 1 ) transmits the stimulus timing and command signals and power through the skin to the receiver/stimulator  18 ( 1 ) for the hand-grasp function in the form of radio frequency carrier waves. The electrodes store electrical energy from the carrier waves. The stimulus timing and command signals for the standing function are distributed as biphasic current pulses in discrete channels to individual implanted electrodes  22 ( 1 ). The biphasic pulses provide amplitude and duration electrical signals that achieve the desired coordinated muscular finger-grasp function. Because the implanted receiver/stimulator  18 ( 1 ) receives power from universal external controller  26  through the external pulse transmitter  16 ( 1 ), the implanted receiver/stimulator  18 ( 1 ) requires no dedicated battery power source, and therefore has no finite lifetime.  
         [0047]    The external control source  12 ( 1 ) for the hand-grasp function is coupled to the universal external controller  26 . As will be described in greater detail later, the external controller  26  can support a variety of external control sources  12 ( 1 ), which can be coupled to the controller by cable or by wireless link, as will also be described in greater detail later.  
         [0048]    In the embodiment illustrated in FIG. 1, the external controller  12 ( 1 ) comprises a mechanical joy stick-type control device, which senses movement of a body region, e.g., the shoulder, which is therefore also called a shoulder position sensor. The shoulder position sensor can comprise, e.g., a two axis angle transducer that measures motion of the shoulder relative to the chest. The shoulder position sensor can be secured to the skin of the shoulder in the region of the sternal notch and clavicle using tape. As will be described later, when the user manipulating the shoulder in predetermined ways, the shoulder position sensor generates functional or proportional signals that, when processed according to the pre-programmed rules of the controller  26 , select or deselect either palmar or lateral grasp patterns, proportionately control of the opening and closing of the hand, or lock the hand in a desired grasping position. As will be described in greater detail later, in an alternative implementation, manipulation of input buttons on the universal external controller  26  also can be used to perform these finger-grasp functions.  
         [0049]    Further details of these function-specific components for the hand-grasp function can be found in Peckham et al U.S. Pat. No. 5,167,229, which is incorporated herein by reference. Commercial examples of such function-specific components can also be found in the FREEHAND™ System, sold by NeuroControl Corporation (Cleveland, Ohio).  
       B. The Function-Specific Standing Function Components  
       [0050]    For the standing function, epimysial and intramuscular electrodes  22 ( 2 ) are appropriately implanted by a surgeon in the patient&#39;s upper leg. The function-specific implanted electrodes  22 ( 2 ) are positioned by the surgeon by conventional surgical techniques to affect desired neuromuscular stimulation of the muscles in the hip and thigh.  
         [0051]    Desirably, the neuromuscular stimulation affected by the electrodes  22 ( 2 ) achieves a contraction of leg muscles in the hip and thigh to bring the individual to an upright and standing position. In this position, the individual can stand upright and move about, typically with the aid of a walker or arm crutches.  
         [0052]    Implanted leads  20 ( 2 ) connect the electrodes  22 ( 2 ) to the function-specific implanted receiver/stimulator  18 ( 2 ) in conventional ways. The receiver/stimulator  18  ( 2 ) is placed by a surgeon under the skin in the abdomen or thigh. The receiver/stimulator  18 ( 2 ) receives the stimulus timing and command signals and power from the universal external controller  26  through the function-specific external pulse transmitter  16 ( 2 ).  
         [0053]    As in the finger-grasp function, in the illustrated embodiment, the pulse transmitter  16 ( 2 ) for the standing function takes the form of a transmitting coil, which is secured to a skin surface over the receiver/stimulator  18 ( 2 ), e.g., by tape. The pulse transmitter  16 ( 2 ) transmits the stimulus timing and command signals and power through the skin to the receiver/stimulator  18 ( 2 ) for the standing function in the form of radio frequency waves. As in the finger-grasp function, the stimulus timing and command signals for the standing function are distributed by the receiver/stimulator  18 ( 2 ) in discrete channels to individual implanted electrodes  22 ( 2 ) and provide electrical amplitude, duration, and interval command signals that achieve the desired coordinated muscular standing function.  
         [0054]    The external control source  12 ( 2 ) for the standing function is coupled to the universal external controller  26 . As explained earlier in the context of the finger-grasp function, the universal external controller  26  can accommodate input from a variety of other external control sources, either by hard-wire or wireless links. In the illustrated implementation, the external control source  12  ( 2 ) comprises a remote control button accessible to the individual, by which the user (or care giver) can select or deselect the standing function. One or more input buttons on the universal external controller  26  itself can also be used to select and deselect the standing function.  
       C. The Function-Specific Bladder and Bowel Control Function Components  
       [0055]    For the bladder control function, cuff electrodes  22 ( 3 ) are appropriately implanted by a surgeon about sacral nerves that lead to the bladder and bowel. The function-specific implanted electrodes are positioned by the surgeon by conventional surgical techniques to affect neuromuscular stimulation of muscles in the bladder, bowel and urethral sphincter.  
         [0056]    Desirably, the neuromuscular stimulation affected by the electrodes  22 ( 3 ) achieves a contraction of the muscles of the bladder, urethral sphincter, and bowel. After the bladder has contracted in response to the neuromuscular stimulation, it is possible to relax the sphincter muscles, allowing the bladder to empty.  
         [0057]    Implanted leads  20 ( 3 ) connect the electrodes  22 ( 3 ) to the implanted receiver/stimulator  18 ( 3 ) in conventional ways. The receiver/stimulator  18 ( 3 ) is placed by a surgeon under the skin in the abdomen. The receiver/stimulator  18 ( 3 ) receives the stimulus command signals from the universal external controller  26  through the external pulse transmitter  16 ( 3 ).  
         [0058]    As with the finger-grasp and standing functions, in the illustrated embodiment, the pulse transmitter  16 ( 3 ) takes the form of a transmitting coil, which is secured to a skin surface over the receiver/stimulator  18 ( 3 ), e.g., by tape. The pulse transmitter transmits the stimulus command signals through the skin to the receiver/stimulator  18 ( 3 ) for the bladder and bowel control function in the form of radio frequency waves.  
         [0059]    As explained earlier in the context of the finger-grasp and standing functions, the universal external controller  26  can accommodate input from a variety of other external control sources  12 ( 3 ), either by hard-wire or wireless links, to also affect the bladder and bowel control function. In the illustrated implementation, the external control source  12 ( 3 ) for the bladder and bowel function comprises an external remote control device, that can select or deselect the bladder and bowel control function. One or more input buttons on the universal external controller  26  itself can also be used to select and deselect the bladder and bowel control function.  
         [0060]    Further details of these function-specific components for the bladder and bowel control function can be found in Brindley U.S. Pat. No. 3,870,051, which is incorporated herein by reference. Commercial examples of such function-specific components can also be found in the VOCARE™ System, sold by NeuroControl Corporation (Cleveland, Ohio).  
       D. The Universal External Controller  
       [0061]    As FIGS. 3A, 3B,  3 C, and  4  show, the universal external controller  26  is desirably housed in a compact, lightweight, hand held housing  28 . In one implementation, the housing  28  measures about 9.5 cm by 5.6 cm×2.7 cm, and weighs, e.g., about 160 g. As such, the controller  26  readily fits into a pocket or can be clipped onto the belt of an individual.  
         [0062]    Desirably, the controller  26  is battery powered. In the illustrated embodiment, the controller  26  includes a power input slot that receives an interchangeable, rechargeable, industry-standard battery  30  (see FIG. 4), e.g., a Lithium Ion battery used in association with a MOTOROLA™ Star Tech™ Cellular Phone. The controller  26  desirably interchageably accommodates rechargeable batteries of various capacities, so that different power usage levels of the controller (depending upon the number and type of prosthetic functions of the controller  26 ) can be readily supported.  
         [0063]    Desirably, the battery  30  cannot be charged when connected to the universal external controller  26 , so that the controller  26  (and, thus, the user) cannot be connected to main power. Instead, the battery  30  must be removed and coupled to an associated external battery charger (not shown).  
         [0064]    The controller  26  also desirably includes a display screen  32  and keypad  34 , which together form an interactive interface between the individual user and the controller  26 . The display  32  can comprise, e.g., a liquid crystal display. The display  32  presents to the individual pertinent operational and status information, and also prompts the individual to select or modify operational settings using the keypad  34 . The keypad  34  can comprise, e.g., a one-piece silicone-rubber molded unit.  
         [0065]    The controller  26  desirably houses a microprocessor  36 , which, in the illustrated embodiment (see FIG. 4), is implemented on a main, double-sided circuit board  38 . The main circuit board  38  carries the components of the microprocessor  36 , e.g., high and low voltage supplies, a high voltage protector, input/output ports  112  (shown in FIG. 3B) and drivers for the external control signal sources and pulse transmitters, a microcontroller, keypad interface, the liquid crystal display  32 , and an audio device (e.g., a buzzer). The microprocessor  36  also desirably includes a 900 MHz transceiver, to allow wireless linking between the controller  26  and a compatible external wireless control signal source  12 ( 1 ) ( 2 ) ( 3 ), as will be described in greater detail later. If desired, additional full size or half-size circuit boards  40  (see FIG. 4) can be optionally provided, to handle special input signal conditioning for one or more of the function-specific control signal sources (e.g., the joy stick-type shoulder position sensor).  
         [0066]    The microprocessor  36  can be realized with, e.g., a conventional MC68HC12 microcontroller. The microprocessor  36  also desirably includes a flash memory device on the main circuit board  38 , which can be realized with e.g., a conventional EEPROM memory chip. The flash memory device carries embedded, programmable code, which will also be call the “firmware.” The firmware expresses the pre-programmed rules or algorithms under which the stimulation timing and command signals are generated in response to input from the various external control sources, as well as the pre-programmed rules or algorithms that govern operation of the display  32  and keypad  34  of the controller  26  to create the user interface, as well as the other input/output devices supported by the controller  26 .  
         [0067]    The microprocessor  36  of the controller also desirably includes an infrared transceiver. The transceiver allows the wireless transfer of information to and from the microprocessor through an optical lens  42  (see FIGS. 3C and 4). This makes possible wireless programming of the firmware by infrared link by an external computer, as will be described later. This also makes possible wireless linking between two or more controllers  26 , for exchange of information and for replacement and backup purposes. As will be described later, the microprocessor  36  also accepts programming input via the input keypad  34 , allowing the individual user or care giver to program operation of the controller  26  to the extent permitted by the firmware.  
         [0068]    In the illustrated embodiment, the housing  28  encloses the display  32 , keypad  34 , and circuit board(s)  38  and  40  between front (keypad side) and rear (battery side) housing shells  44  and  46 , which can be made, e.g., from molded ABS impact-resistant plastic. Spash-proof gaskets  48  are desirably placed at appropriate places, e.g., about the keypad, battery contacts, and housing shells, to seal the housing  28  against ingress of moisture. A LCD lens window  50  desirably covers the display  32 . Pivots  52  for a conventional flip cover can also be provided on the housing  28 .  
       1. Main Circuit Board Components  
       [0069]    [0069]FIG. 5 shows a representative circuit block diagram for the microprocessor  36  of the universal external controller  26 . The specific circuitry shown in FIG. 5 allows the selection of a desired neuromuscular stimulation objective and supports the generation of output signals to one neuromuscular stimulation assembly to achieve the objective. However, it should be appreciated that the circuitry can be modified to include multiple parallel output stages, so that concurrent outputs to different neuromuscular stimulation assemblies can be provided.  
         [0070]    As shown in FIG. 5, the circuitry is built on two printed circuit boards: the main circuit board  38  and the auxiliary board  40 . FIGS. 5A to  5 M show representative circuit schematics for the components carried on the two boards  38  and  40 .  
         [0071]    The main circuit board  38  consists of five circuit modules. These are (see FIG. 5) the power supply module  200 , the implant driver module  202 , the microcontroller module  204 , and the user interface module  206 . The representative implementation mounts these modules on a double-sided, 6-layer FR 4  printed wiring main circuit board  38  (88 mm×49 mm).  
         [0072]    In the illustrated embodiment, the functions supported by the main circuit board  38  include: (i) mounting of push buttons of the keypad  34  for user control; (ii) mounting of the display  32  and audio device for user prompting and information display; (iii) mounting of contacts for user serviceable battery  30 ; (iv) mounting of output plug contacts for the indicated function-specific pulse transmitters; (v) an interface to auxiliary control boards  40 , e.g., for specialized function-specific control signal sources  12  ( 1 ) ( 2 ) ( 3 ); (vi) control of processing functions via the microprocessor  36  and memory chip; (vii) interface to the keypad  34 , display  32 , audio device, and other user interfaces to the microprocessor  36 ; (viii) drivers for the indicated function-specific pulse transmitters  16 ( 1 )( 2 )( 3 ); (ix) interface to the battery  30 , including detection of battery charge status; (x) provision of an infrared communications link; and (xi) provision of a 900 MHz communications link.  
         [0073]    Various circuit components and configurations can be placed on the main board to realize these and other functions. A representative implementation will be generally described with reference to FIGS. 5A to  5 M and associated tables. The representative implementation meets medical grade IPC standard design rules, using no wires and all standard components, except one custom made transformer. The representative implementation uses no adjustable components, except one trim capacitor (to accommodate variations in the one custom made transformer). The representative implementation is EMC compatible.  
         [0074]    The Power Supply Module  200  includes a low-voltage supply circuit  208  (shown schematically in FIG. 5A) and a high-voltage supply circuit  210  (shown schematically in FIG. 5B). The low-voltage supply circuit  208  converts the battery voltage of 2.7 to 4.2 V to the general circuit operation voltage of 5.0 V. The high-voltage supply circuit  212  converts the same battery voltage to the variable operating voltage for the implant drivers (5.0 to 8.5 V for the finger-grasp and standing functions, and 10 to 40 V for the bladder/bowel control function). Each voltage supply circuit  208  and  210  is a DC/DC converter built around a specific IC chip. The level of the high voltage is set by the microcontroller module  204  via a DAC. A high-side current sensing IC provides output current value to the microcontroller module  204 .  
         [0075]    The Implant Driver Module  202  includes the function-spicific driver  212  for the bladder and bowel control function (FIG. 5D), the function-specific driver  214  for the hand-grasp function (FIG. 5E), and the function-specific driver  216  for the standing function (FIG. 5F), with an associated high voltage protector (FIG. 5C), to provide failsafe hardware protection. The hand-grasp and standing function drivers  214  and  216  generate amplitude-modulated carrier of 6.78 MHz for powering and communicating with the implanted function-specific receivers/stimulators, respectively  18 ( 1 ) and  18 ( 2 ). As will be described in greater detail later, the output RF for each of these drivers  214  and  216  can be set by the user at one of five levels between 0.5 to 1.0 W. This variable RF power setting ensures reliable coupling to the associated implanted function-specific receiver/stimulator  18 ( 1 ) or  18 ( 2 ) at the specific depth of implantation (which can vary), while minimizing battery consumption. The bladder and bowel control driver  212  generates high voltage (10 to 40 V), high current (up to 1 A) pulses to excite the associated receiver/stimulator  18 ( 3 ). Three identical output stages can be controlled by the microcontroller module  204  for interfacing with either a 3-channel or a 2-channel receiver/stimulator  18 ( 3 ). The function of the high-voltage protector  218  is to prevent accidental application of high voltage to the finger-grasp or standing drivers  214  to  216  in case of a firmware failure.  
         [0076]    The Microcontroller Module  204  (schematically shown in FIG. 5G) is built around a Motorola HC12 chip. The HC12 chip has 1-kbyte RAM and 32-kbyte flash EEROM. The built-in flash memory is used for the system firmware. An external 8-kbyte EEPROM chip is used for user-specific data, such as for finger-grasp patterns (as will be described later). A 4-MHz ceramic resonator is selected for obtaining a 2-MHz clock frequency in the HC12. The HC12 uses a synchronous serial peripheral interface (SPI) to communicate with three peripheral chips: the LCD display driver; the DAC for high-voltage setting; and the ADC in the auxiliary board  40  (as will be described later. The HC12 also uses an asynchronous serial communication interface (SCI) to communicate with the infrared transceiver  220  (shown schematically in FIG. 5K) and the 900-MHz transceiver  222  (shown schematically in FIG. 5L). The internal 8-channel, 10-bit ADC of the HC 12  is used to monitor the critical parameters such as battery voltage, output voltage to the low-voltage supply  208 , output voltage and output current of the high-voltage supply  210 , and the received signal strength of the 900-MHz transceiver  222 .  
         [0077]    The User Interface Module  206  consists of the circuitry  224  for the keypad  34  (shown schematically in FIG. 5H), the circuitry  226  for the liquid crystal display (LCD)  32  (shown schematically in FIG. 5I), and the circuitry  222  for the 900-MHz transceiver (shown in FIG. 5L). In the keypad circuit  224 , a pair of perpendicularly situated reed switches is connected in parallel to each of the regular pushbutton switches for the “enter” and “exit” functions, as will be described later. The reed switches allow the user to operate the device using a finger ring with a magnet, without having to physically touch the keypad  34 . The LCD circuit  226  has a 16 character×4 roll screen  32  with LED back lighting. The volume of the sound generated by the buzzer circuit  228  (shown schematically in FIG. 5J) is adjustable by changing the pulse width. The infrared transceiver  220 (shown schematically in FIG. 5K) is implemented with a transceiver IC and discreet transmitting LED and receiving photo diode. The 900 MHz transceiver (shown schematically in FIG. 5L) is formed with a loop antenna, an amplitude-sequenced hybrid (ASH) transceiver module, and a dedicated microcontroller chip for decoding the received commands. Input and output level shifters are used for interfacing the 3-V transceiver module  222  with the 5-V HC12 microcontroller.  
         [0078]    In the representative implementation, the controller also includes a double-sided, 6-layer FR4 printed wiring board  40  (40 mm×46 mm) (shown schematically in FIG. 5M), which serves as an input signal conditioning card for a joy-stick type shoulder position sensor, which is used in the illustrated embodiment to carry out the finger-grasp function. The main board  38  and auxiliary board  40  are connected together through a 30-contact interboard connector  240 . The auxiliary board  40  includes an input filter  230  having low-pass filters and surge suppressors for improving immunity to electromagnetic interference. The auxiliary board  40  also includes a differential amplifier  232 , which has two instrumentation amplifier IC chips set a gain of 10 for both X and Y axis signals coming from the shoulder position sensor. The auxiliary board  40  also includes a an analog-to-digital converter  234 , which is a 2-channel, 12-bit serial ADC chip. A power supply  236  on the board  40  uses a charge-pump IC to convert battery voltage to the 5 V excitation level for the shoulder position sensor. The 5 V output is pulsed at a duty cycle of {fraction (1/16)} to conserve battery power. The board  40  also includes switch interface relays  238 , which relays the two external switches to the microcontroller module  204 , while also providing the signal about the connection of the sensor or the switches.  
         [0079]    The following tables describe for ready reference further details of the components and their functions as shown in FIGS. 5 and 5A to  5 M.  
                                 TABLE 1                           The Low Voltage Supply Circuit 208 (FIG. 5A)                Component   Description   Circuit Function                       F1101   THERMAL   Limits magnitude and               SWITCH/FUSE   duration of over voltage               1.1 A   clamped currents from                   battery input           D1101   DIODE, ZENER   Protects LV Regulator and               5.6 V   VDD powered devices (CPU)                   from static discharge and                   accidental over voltage           C1101,   Capacitors   Filter noise fed back to           C1102       battery voltage network           R1101,   Resistors   Divider for CPU VBAT           R1102       monitor input           U1101   PWM DC/DC   Provides control and               Power Up   power switching for Low               Converter   Voltage Flyback power                   converter           C1103   Capacitor   Filters switching noise                   within and to U1101                   regulator           R1104,   R-C Network   Pull-Up (dissable) and           C1104       flitch filter for                   PENTER/V LV  ONB (active                   low)           R1103   Resistor   Pull-Down (dissable)                   VDDON ONA (active high)           L1101   Inductor,   Dynamic energy storage               Power   for power conversion           D1101   Rectifier,   Switch mode communtating               Schottky 40 V,   Rectifier               400 mA           C1105   Capacitor   Switching Output Filter           R1105,   Resistors   Low Voltage Switching           R1106       Regulator feedback sense                   divider           R1107,   Resistors   Low Voltage Linear           R1108       Regulator feedback sense                   divider           C1106   Capacitor   Linear Output Filter                      
 
         [0080]    [0080]                             TABLE 2                           The High Voltage Supply Circuit 210 (FIG. 5B)            Component   Description   Circuit Function               C2101   Capacitor   Filter HV Converter noise               fed back to battery               voltage network       M2102   Power MOS FET,   HV Converter battery           P Ch   power switch       M2101   Power MOS FET,   Gate drivers for M2102           N Ch       R2101,   Resistors   Gate drivers networks for       R2102       M2102 and M2102       U2101   PWM DC/DC   Provides control and           Power Up   drive for High Voltage           Converter   Flyback power converter       C2102-C2104   Capacitors   Filters switching noise               within and to U2102               regulator       R2103   Resistor   Sets basic switching               frequency for U2101               regulator       R2104,   R-C Network   Supply +5 V, (VDD) to       C2105       U2101 and decouple VMOS               gate drive noise from MPU               supply       B2101,   R-C Network   Supply VBAT to storage       C2106, −7       inductor L2101 and               decouple power switching               noise battery voltage               network       L2101   Inductor,   Dynamic energy storage           Power   for power conversion       M2103   Power MOS FET,   Power converter switch           N Ch       R2105   Resistor, Low W   Current Sense, PWM               control, limit       D2101   Rectifier,   Switch mode communtating           Schottky 60 V,   Rectifier           1.0 A       C2108,   Capacitors   Switching Output Filter       C2109       R2106,   Resistors   High Voltage feedback       R2107,   Potentiometer,   sense divider with CPU       U2102   Digital 32 pos   control through setting           linear   or the digital Pot       R2108,   R-C Network   Power up preset network       C2110       for U2102       U2103   Transconduct-   Translates current sense           ance Current   voltage across pins 2-7           Sense Amp   input to ground reference               signal       R2109   Resistor   Current sense Scaling               Resistor       C2112   Capacitor   Output noise filter       R2111-R2113   Resistor   Divides HV level for CPU           Divider Net   HV monitor input and Free               hand HV upper limit                    
         [0081]    [0081]                                 TABLE 3                           The Bladder and Bowel Control Function       Driver 212 (FIG. 5D)                Component   Description   Circuit Function                       D2201-D2204   ZENER   Protects HV Power and               TRANSIENT   VOCARE Switches from               CLAMP DIODE   transient discharge and                   loss of HV converter                   control           C2201,   Capacitors   Filter HV Converter noise           C2302       and provide energy                   reservoir for VOCARE                   pulse load           M2202B   Power MOS FET,   HV Converter switch for               P Ch   Free Hand Driver           M2202A,   Power MOS FET,   HV Converter switch for           M2205A, B   P Ch   VOCARE Coils C, B, A           M2201, −3, −4,   Power MOS FET,   Gate drivers for M2202           −6   N Ch   and M2205           R2203-R2214   Resistor   Gate drivers networks for                   M2202 and M2205           U2201   Comparator   Conditioned switch for HV                   to Free Hand Driver           R2201,   Resistor   Divides logic level to           R2202   Divider   match HV upper limit                   sense voltage above which                   Free Hand high voltage                   will not switch on                        
         [0082]    [0082]                             TABLE 4                           The Hand-Grasp Function Driver 214 (FIG. 5E) and       the Standing Function Driver 216 (FIG. 5F)            Component   Description   Circuit Function               U2301   Crystal   Controls Power Drive           Oscillator   Frequency           Module,           13.5600 MHz       U2302   Dual Flip Flop   Divide Oscillator by 2               for 6.78 MHz ISM               frequency and bi-phase               drive for Class B output               stage       R2301,   Resistors   Rf isolated logic input       R2304       networks       U2303   AND Gate   Output Stage Gate Driver           Buffers       R2306-R2308   Resistors   Gate Drive Hi-Low Through               current limiters       R2309,   Resostors   Gate Pull-Downs       R2310       M2301,   Power MOS FETs   Class B Power Amplifier       M2302       C2307-C3211   Passive Filter   Harmonic and Radiated       L2301-L2303       Emission Suppression       C2305,   Capacitors   Local RF Bypass       C2305       B2301-B2305   Ferrite Beads   Radiated Emission               Suppression       R2302   Resistor   Connection to DC               continuity coil check       C2312   Capacitor   RF Filter                    
         [0083]    [0083]                             TABLE 5                           The Microcontroller Module 204 (FIG. 5G)            Component   Description   Circuit Function               C1201-C1205   Capacitors   Microcontroller supply               bypasses       C1206   Capacitors   Local bypass for POWER               RESET chip, U1202       U1201   Microcontroller   Provides all system               control and interface       D1201,   R-Diode Network   Programming Pulse       R1202       Interface       D1202   Diode   Prevents Input drive               when MPU is powered down       Y1201,   Quartz crystal,   MPU Clock reference and       R1201   4.0 MHz and   associated bias resistor           resistor       R1203, C1208   R-C Networks   A/D Converter input       thru R1210,       Filter networks       C1215       C1216-C1222   Capacitors   Spike filters on               operator switch inputs       U1202   IC, Power   Monitors VDD and reset           Monitor Reset   on power drops below 4.4               volts for 20 msec       U1203   IC, 2.50 volt   Provides 2.5 volt A/D           ref   reference       C1207   Capacitor   Noise Filter for A/D ref       R1211-R1213   Resistors   Serial Buss Pull-Downs       R1222,   R-C Network   Pull-Up for Implant Coil       R1223       Continuity check input       R1224,   Resistors   Daughter Bd. TP1, 2 Pull-       R1225       downs       U1204   IC, Serial   Alterable non-volatile           EEPROM   memory for setup               preferences       R1214   Resistor   Chip Select Pull-up               (inactive)       U1205   IC, IR and RS-   Provides serial IR send           232 interface   receive functions       D1203   LED, IR   IR link IR emitter       R1216   Resistor   Sets IR LED operating               current       C1225   Capacitor   Local bypass for IR               transmit switching noise       C1224   Capacitor   Local bypass for IR/RS-               232 power       D1203   Diode, IR photo   IR link IR detector       R1215, −17-   Resistors   Pull-Downs for U2105       18       control and data lines       U1208   IC, remote   Decodes encrypted button           control   application data           encrypte/decode           chip       C1226   Capacitor   Local bypass for remote               control chip power       R1220,   Resistors   Pull-downs for U1208       R1221       control and data lines       U1206,   IC, 2-way   MPX Telemeter and IR       U1207   switch   communications to one               set of MPU lines       R1219   Resistor   Pull-downs for TEL-IR               control line       J1201   2 × 15 Pos.   Option Daughter Board           Female   Jack                    
         [0084]    [0084]                                 TABLE 6                           The User Interface Module (FIG. 5H)                Component   Description   Circuit Function                       U1301   IC, 3.0 V   Switches buzzer power               regulator           C1301   Capacitor   Local bypass for buzzer                   regulator           C1302   Capacitor   Filters switching noise                   within buzzer regulator           C1303,   Capacitors   Regulator Output           C1309       Filters           R1301,   Resistors   MPU interface and Pull-           R1308       Down           D1301   Diode   Inductive spike clamp           LS1301   Sound   Provides Audible Signal               Transducer           U1302   LCD Module   Provides Visual User                   interface           C1304   Capacitor   Local bypass for LCD                   Module           R1302   Resistor   LCD (Chip Sel) Pull-Up                   (inactive)           R1303,   Resistors   LCD and interface bias           R1304           U1303   IC, 3.0 V   Switches buzzer power               regulator           C1305   Capacitor   Local bypass for buzzer                   regulator           C1306   Capacitor   Filters switching noise                   within buzzer regulator           C1307,   Capacitors   Regulator Output           C1308       Filters           R1306,   Resistors   MPU interface and Pull-           R1307       Down           SW1301-   SPST, MOM Push   User interface Buttons           SW1312           SW1309-   SPST, MOM Mag   Alternate Control Mode           SW1312   Reed           U1202   IC, Power   Monitors VDD and reset               Monitor Reset   on power drops below                   4.4 volts for 20 msec           J1301   ZIF Jack,   LCD Jack               Ribbon                        
         [0085]    [0085]                                 TABLE 7                           The Infrared Transceiver 220 (FIG. 5K)                Component   Description   Circuit Function                       C1401   Capacitor   Filter noise fed back to                   VDD           R1401   Resistor   Pull-Down (disable) TEL,                   SHD (active &lt;OFF&gt; low)           U1401   Linear Low Drop   Provides +3.0 volts for               Regulator   Transceiver Module,                   U1402           C1402   Capacitor   Filters switching noise                   within U1401           C1403,   Capacitors   Regular Output Filters           C1409           R1403   Resistor   Transmit, TELTXD Hi-Z                   pull-down           R1404   Resistor   Transmit power set           R1402,   R-C Network   AGC Bias Supply and           C1404       bypass           C1405   Capacitor   Peak Detector Attack-                   Decay time constant           R1403   Resistor   VBBO load isolation                   resistor           R1405   Resistor   Sets Bandwidth of Baud                   Rate Low Pass Filter           R1406,   Resistors   Pull-ups for CT0 and CT1           R1108       Mode           R1401   Resistor   RX DDATA Pull-Down           U1403   Single 74 HCT   Level translates RX DATA               equivalent OR   to 5 volt logic               Gate           C1406,   Capacitors   Antenna Tuning           C1407           ANT1401, −02   Metal strips   Telemeter antenna                   elements           C1408   Capacitor   Antenna match                        
         [0086]    [0086]                             TABLE 8                           The Input Filter 230 (FIG. 5M)            Component   Description   Circuit Function               J4101   Jack, 14 pos,   Shoulder Position           Female   Transducer Module Input       B1401   Ferrite Bead,   1 × 10 Common Mode Choke,           10 Lines   EMI suppression       DS4101-   ZENER,   Protects Shoulder       DS4109   TRANSIENT   Position Diff. Amp. from           CLAMP 9 V   transient discharge       L4101,   L-C Networks   Filter DC Power and       L4103,       Ground lines to external       C4101, C4110       Shoulder position       and L4102,       Transducer Module       L4104 C4102,       C4111       R4109, R4116   R-C Networks   Filter Differential X       C4103, C4112       and Y Signal and three       thru R4115,       switch closure signal       R4122 C4109,       lines from external       C4118       Shoulder position               Transducer Module       R4108, R4123   Zero Ω Jumpers   EM Immunity Test Jumpers                    
         [0087]    [0087]                                 TABLE 9                           The Differential Amplifier 232 and A-D       Converter 234 (FIG. 5M)                Component   Description   Circuit Function                       U4102,   IC,   Shoulder Position           U4104   Instrumentation   Transducer Amplifier               Differential               Amp           F4205, −6   Resistors   Input pull down load,           R4208, −9       Amplifier           C4209,   Capacitors   Differential low pass           C4210       filter           R4207,   Resistors   Gain Set, Differential           R4210       Amplifier           U4203,   IC, Reference,   Pseudo Ground for U4102,           U4205   2.5 V   U4104           C4204,   Capacitors   Pseudo Ground noise           C4205       Filter           U4201   IC, Step up   Provide switchable low               Charge Pump   noise power to Shoulder               w/Linear   Position Transducer and               Regulator   Amplifier           R4204   Resistor   SHD input over drive                   protection           C4201   Capacitor   Local Bypass of noise                   fed back to battery                   voltage           C4202   Capacitor   Charge Pump           C4203   Capacitor   Regulator Output Bypass           U4206   A/D Converter,   Provides expanded               12 Bit/2 Ch   resolution of Shoulder               Serial   Position Amplifier                   Output           U4207   IC, Ref.,   Full scale ref., for               4.096 V   U4106 A/D           C4206   Capacitor   Full scale ref., noise                   Filter           C4207   Capacitor   Local bypass for A/D                   Conv.           R4211-R4213   Resistors   Serial Buss Pull UP and                   Downs           R4214   Resistor   Board Identification                   Load           J4201   2 × 15 PIN, Male   Daughter to Main Bd.               Bd. Mt Plug   Connector           R4201-R4203   Resistors   Pull-downs Switch                   closure lines           D4201-D4203   Diodes, Signal   Reverse Drive protection                   for MPU                        
       2. The Firmware  
       [0088]    The pre-programmed rules for the controller  26  (comprising the firmware) are contained in the EEPROM memory chip. The rules govern, e.g., the operation of the user interface, the generation of the stimulation timing and command signals by the supported function-spicific utilities, the interface with the various function-specific control signal devices (including wireless links), the special modulation of pulse outputs, and communication with external programming sources. The control algorithms expressing the rules can be realized as a “C” language program implemented using the MS WINDOWS™ application.  
         [0089]    The firmware, once embedded, can be reprogrammed or updated in various ways, including linkage (by cable or wireless infrared) of the controller  26  to an external computer with the appropriate software, or by the user using the keypad  34  on the controller  26  itself.  
         [0090]    Further details of these representative implementations of these functional blocks of the controller firmware will now be described.  
       3. The User Interface  
       [0091]    In the illustrated implementation (see FIG. 3A) the front shell  44  of the controller  26  presents the display  32  on which the various screens generated by the user interface are displayed. The user interface also displays on the screen  32  various graphic icons, e.g., a battery life icon  54 , a stimulation energy application icon  76 , and others (not shown), such an alarm or warning icon and a external computer connection icon. Associated audible signals can also be used to provide information regarding the status of these indications, e.g., low or discharged battery, errors, etc.  
         [0092]    The front shell  44  of the controller  26  also presents the keypad  34 , through which the user communicates with the interface. In the illustrated implementation (see FIG. 3A), six push buttons  56  to  66  are present. The push button  56  is used to turn the controller on. The button  56  also serves an enter key to progress from screen to screen of the interface. The push button  58  is used as to exit out of certain programming screens, as well as a control signal source in certain functions. The push buttons  60  and  62  are used to scroll up and scroll down the screens, to move through the menus generated by the user interface. The push bottons  64  and  66  are used to increment or decrement selections during certain functions. An audible signal or beep can be selectively generated upon pushing the buttons  56  to  66 .  
       E. Task Selection Menu  
       [0093]    Upon power up, the firmware displays an appropriate welcome screen (not shown) and executes a main loop, which continues to runs in the background at prescribed time intervals (e.g., every  16  msec). The main loop self-test the microprocessor  36  for defective hardware or corruption of the flash memory contents. Errors noted by the main loop interrupt operation of the controller  26  and cause the user interface to display appropriate error icon and audible signal.  
         [0094]    Absent an error during start up, the user interface function displays a Task Selection Menu  68  (see FIG. 3A) on the display screen  32 . The Task Selection Menu  68  lists the specific therapeutic or prosthetic functions supported by the controller  26 . In the illustrated implementation, the listed functions are (i) The Finger-Grasp Function; (ii) the Standing Function; and (iii) the Bladder and Bowel Control Function, as already described. The user selects a function by scrolling (operating the scroll buttons  60  and  62 ) and pushing the enter button  56 . Upon selection, the firmware executes the function-specific processing utility dedicated to the selected function.  
         [0095]    By way of example, the details of the processing utility dedicated the finger-grasp function will be described. Similar interface and control features can be executed to carry out the other functions.  
         [0096]    In the illustrated implementation (see FIG. 6), the Opening Screen  70  for the finger-grasp function list four operational choices: Exercise; Function; Patterns; and Set Up.  
       1. Exercise  
       [0097]    By selecting Exercise (using the scroll bottons  60  and  62  and the enter button  56 ), the screen displays an Exercise Regime Screen  72  (see FIG. 7), which also shows a time delay before an exercise regime is automatically initiated by the firmware. Different exercise regimes (designated Exercise  1 , Exercise  2 , Exercise  3 , etc.) can be selected by the user by pressing the enter button  56  once within a predetermined short time interval (e.g., 3 seconds) after a given Exercise Regime Screen  72  is displayed. Typically, the timing parameters and exercise grasp patterns for each exercise regime have been preprogrammed into the firmware by a clinician, as will be described later.  
         [0098]    With the desired exercise regime selected, the user presses the enter button  56  or waits for the time delay to expire. The display  32  shows an Exercise Underway Screen  74  to indicates that stimulation is being applied to carry out the selected exercise regime. The Exercise Underway Screen  74  displays a Stimulation On Icon  76 , as well as the time remaining for the exercise session. As soon as the selected exercise regime is completed, the display  32  shows an Exercise Completed Screen  78 .  
         [0099]    After a prescribed time period of no further input (e.g., two minutes), the firmware turns the controller  26  off to conserve battery life. This automatic time-out feature is executed throughout the interface.  
       2. Patterns  
       [0100]    When Patterns is selected on the Opening Screen  70  (by use of the scroll buttons  60  and  62  and enter button  56 ) (see FIG. 8), the display  32  shows a Grasp Pattern Selection Menu  80  by which lateral and palmar grasp patterns can be selected. The Menu  80  lists “lateral” and “palmar” followed by numbers. The user scrolls using the buttons  60  and  62  to select either pattern. The user then increments or decrements using the buttons  64  and  66  to select the specific pattern by number. For example, there can be several lateral patterns (designated Lateral  1 , Lateral  2 , Lateral  3 , and Lateral Off) and several palmar patterns (designated Palmar  1 , Palmar  2 , Palmar  3 , and Palmar Off), which typically have been pre-programmed into the firmware by a clinician, as will be described later. When done choosing, the user selects the enter button  56 , which returns to the Opening Screen  70  for the finger-grasp function.  
       3. Function  
       [0101]    When a shoulder position sensor is coupled to the universal external controller  26  (designated as SW 1  in FIG. 9), selection of Function on the Opening Screen  70  allows the user to control the finger-grasp function using the external shoulder position sensor. Typically, the clinician will have previously preprogrammed the controller  26  so that either back and forth shoulder movements or up and down shoulder movements sensed by the shoulder position sensor will generate the appropriate proportional commands to open and close the grasp. The clinician may also have preprogrammed the controller so that quick movements of the shoulder position sensor will lock the grasp. Alternatively, the clinician may have preprogrammed the controller to lock the grasp in response to input from a remote lock switch (designated as SW 2  in FIG. 9) coupled to universal external controller  26 . The remote lock switch toggles the existing grasp pattern between a locked and unlocked position, and can be used by individuals who have difficulty with or do not want to use the shoulder jerk motion.  
         [0102]    With the Function selected, the user turns the shoulder position sensor on. The firmware responds to shoulder movement input in either elevation/depression or protraction/retraction to grade hand position and strength from opened to closed. Thus, for example, by retracting the shoulder, the hand opens, and by protracting the shoulder, the hand closes.  
         [0103]    In response to shoulder movement, the firmware turns the stimulation on to undertake the last selected lateral grasp pattern. The firmware executes a proportional control algorithm that, in response to the prescribed shoulder movement (e.g., protracting the shoulder), applies stimulation to progressively close the user&#39;s hand in the desired grasp pattern. Changing the prescribed shoulder movement (e.g., retracting the shoulder) changes the execution of the proportional control algorithm to apply stimulation to progressively open the hand. The hand can be thereby progressively opened or closed in this manner. Pressing a switch on the shoulder sensor will toggle between lateral and palmar grasp patterns  
         [0104]    As shown in FIG. 9, a Grasp-Function Status Screen  82  is displayed as the control algorithm is being executed. A graphical depiction on the Grasp-Function Status Screen  82  (which, in the illustrated embodiment, comprises a directional arrow and a bar chart) proportionally tracks the grasp position of the hand from open to closed, and vice versa. The Grasp-Function Status Screen  82  also displays the current grasp pattern. The Stimulation On icon  76  is also displayed.  
         [0105]    If so programmed, a small quick shoulder motion will lock the grasp in the then-existing position, and the Grasp-Function Status Screen will accordingly change to indicate the grasp is “locked.” With the grasp locked, the user is able to move the shoulder without altering the then-existing grasp pattern. When the user wants to regain control of the hand, a subsequently small quick shoulder motion will unlock the grasp, and the grasp function resumes according to the prescribed shoulder movement from the then-existing position. The Grasp-Function Status Screen  82  changes to indicate that the grasp is “unlocked” and the proportional direction display resumes. Alternatively, if so programmed, depressing a remote lock switch will cause the grasp to lock and unlock.  
         [0106]    Desirably, according to preprogrammed rules in the firmware, when the unlock command has been given, the grasp command enters a realignment state, during which the existing position of the grasp will not change until the user moves the shoulder back to the position where the lock command occurred. This keeps the user&#39;s hand from step-jumping opened or closed until the user is prepared to control it. Alternatively, the realignment state can be automatically implemented, during which, upon receiving an unlock command, the firmware aligns the grasp command range with the user&#39;s current shoulder position. The position of the command range can be automatically adjusted during proportional control, too. These options are selectable during programing of the firmware.  
         [0107]    Appropriate audio signals can be also generated by the controller to mark changes in the stimulated grasp pattern from open to close, locked and unlocked, lateral and palmar.  
         [0108]    Holding the enter button  56  for a predetermined time (e.g.  2  seconds) turns the controller  26  and the ongoing stimulation off. Holding the switch on the shoulder position sensor for a prescribed period will also turn the ongoing stimulation off.  
         [0109]    If a shoulder position sensor is not coupled to the universal external controller  26 , the user can subsequently control a selected grasp pattern by using the keypad  34  on the controller  26  itself.  
         [0110]    In a representative implementation, with the Opening Screen  70  for the finger-grasp function displayed, depressing the enter button  56  for a prescribed time period (e.g., 2 seconds) turns the stimulation on to undertake the last selected lateral grasp pattern. As FIG. 10 shows, the Grasp-Function Status Screen  82  is displayed, as previously described. The firmware executes a gated ramp control algorithm that, in response to pressing or holding the control button  58 , applies stimulation to progressively close the user&#39;s hand in the desired grasp pattern. Pressing the enter button  56  changes the execution of the gated ramp algorithm to apply stimulation to progressively open the hand. The hand can be progressively opened or closed in this manner. The graphical depiction on the Grasp-Function Display Screen  82  (i.e., in the illustrated embodiment, the directional arrow and a bar chart) proportionally tracks the grasp position of the hand from open to closed, and vice versa. Pressing the enter button  56  twice while executing a grasp function toggles between a selected lateral or palmar grasp pattern. The Grasp-Function Display Screen likewise displays the current grasp pattern and the Stimulation On Icon  76 .  
         [0111]    By releasing the enter button  56  as the hand is opening or closing, the gated ramp algorithm locks the hand at the then-existing grasp position, and the Grasp-Function Status Screen  82  accordingly indicates that the grasp is “locked.” When the user wants to regain control of the hand, a subsequently pressing the enter button  56  resumes the grasp function in the last selected direction from the last-existing position. Upon receiving a lock command, the gated ramp control algorithm maintains the grasp as the last-existing command level until it receives a further command from the keypad  34  to unlock the grasp pattern or to turn the controller  26  off.  
         [0112]    Holding the enter button  56  for a predetermined time (e.g. 2 seconds) turns the controller  26  and the stimulation off.  
       4. Setup  
       [0113]    The firmware can permit an individual user to program designated functions of the controller using the keypad  34 . The extent to which the firmware allows this will vary according to degree of freedom the manufacturer or clinician wants to provide an individual user.  
         [0114]    Selection of Setup in Opening Screen  70  (using the scroll buttons  60  and  62  and control button  58 ) permits this function. In one representative implementation, the firmware allows the user to customize the controller  26  by (i) selecting the grasp lock control input source; (ii) disabling sound that accompanies use of the keypad  34  or shoulder position sensor; (iii) or changing the volume of audible feedback.  
         [0115]    Selection of Setup displays a Selection Menu Screen  84  (see FIG. 11), where the permitted reprogramming selections are listed. By scrolling to the appropriate selection (using buttons  60  and  62 ), incrementing or decrementing the associated status selections (using buttons  64  and  66 ), and by selecting (by pressing the enter button  56 ), the various reprogramming selections can be accomplished. For example, the user can choose to lock the grasp using an external switch or by shoulder motion itself; or turn the keypad sound on or off; or turn the audible feedback for shoulder sensor movement on or off; or adjust audible feedback volume from medium or high.  
       F. Interface with the Control Signal Devices  
       [0116]    The universal external controller  26  can accommodate input from a variety of external control sources, such as myoelectric surface electrodes, remote control switching devices, reed switches, and push buttons on the user interface panel of the universal external controller  26  itself. External control sources can be coupled to the universal external controller  26  by direct (i.e., cable) connection, or by wireless link (e.g., 900 MHz).  
       G. Communication with External Programming Sources  
       [0117]    When the universal external controller  26  is not otherwise engaged in the execution of a functional task, the controller  26  can be linked to a remote computer  86  for programming by a clinician(see FIG. 12).  
         [0118]    The link can comprise a hardware interface, e.g., an interface module and serial cable to route and translate data between the remote computer  26  and universal external controller  26 . Alternatively, the firmware of the universal external controller  26  allows communication through an infrared link, thereby eliminating the need for an interface module, serial cable and any direct hardware connection. The infrared link simplifies communication and eliminates electrical safety concerns associated with direct electrical connection.  
         [0119]    The firmware establishes communication with the remote computer  86 , to identify and qualify incoming information received from the remote computer  86 . The interface desirably includes a Clinician Set Up Screen  88  (see FIG. 13), which is displayed upon pushing the control button  58  when in the Opening Menu  70  for a given selected function. The Clinician Set Up Screen  88  shows a Computer Link prompt, which can be selected by use of the buttons  64  and  66  and control button  58  to show a Computer Link Status Screen  90 . The Computer Link Status Screen  90  indicates “waiting” and then “talking” as the link between the universal external controller  26  and the remote computer  86  is established.  
         [0120]    In the illustrated implementation (see FIG. 12), the remote computer  86  desirably executes a programming system  92 , which can be used to control, monitor and program the universal external controller  26  in the selected function. The programming system  92  allows a clinician to customize the firmware residing in an individual universal external controller  26  according the specific needs of the user and the treatment goals of the clinician. The primary purpose of the programming system  92  is to adjust parameters and store the parameters affecting the selected function in the universal external controller  26 , which is used by the patient during daily operation. The system  92  also desirably provides an interface to display visual feedback to the clinician and user about the operation of the control algorithms and equipment associated with the controller  26 .  
         [0121]    In a representative implementation, when the finger-grasp function is selected, and the universal external controller  26  and remote computer  86  are linked, the programming system  92  can be run to assess the muscle recruitment patterns, set grasp stimulation patterns, adjust controller parameters, set exercise timing, and retrieve usage data resident in the firmware affecting the finger-grasp function. The programming system  92  enables inputs from the universal controller  26  to be monitored and stimulus outputs to be controlled in real time. The programming system  92  also allows operational parameters to be saved to an electronic patient file and downloaded to the universal external controller  26 . The universal external controller  26  can then be disconnected from the programming system, allowing portable operation, as already described.  
         [0122]    Desirably, the programming system  92  can be installed on a personal computer (e.g., a 233 MHZ Pentium II laptop with 800×600 resolution monitor) running Microsoft Windows™98 or higher. The programming system  92  desirably includes a clinician programming interface, which allows allows the clinician to observe, modify, and program the stimulus patterns, the shoulder position control characteristics, and the exercise sequences in an expeditious and user-friendly way. In a representative implementation, the clinician programming interface can be written in the Visual Basic  6  programming language for execution in the Windows environment.  
         [0123]    In the illustrated implementation (see FIG. 12), the system is composed of a generic module  94  including generic patient information and as well as one or more specific modules  96  for each of the function-specific tasks supported by the controller  26  (e.g., the finger-grasp function, the standing function, and the bladder and bowel control function).  
         [0124]    The generic patient information module  94  stores all general information about the patient using the particular universal external controller  26 . The information in this module  94  does not necessarily relate to any particular function-specific device, but includes, e.g., fields for entering personal information that the patient may prefer to keep confidential.  
         [0125]    The number and nature of the specific modules  96  will vary according to the number and nature of the function-specific tasks that the controller  26  supports. By way of example (see FIG. 12), for the finger-grasp function, there can be a system device information module  98 , an electrode profiling module  100 , a lateral and palmar grasp patterns programming module  102 , a shoulder position sensor programming module  104 , and an exercise programming module  106 . Appropriate counterpart modules can also provided for the other treatment functions supported by the controller  26 .  
         [0126]    For the finger-grasp function, the device information module  98  captures, stores, displays, and allows modification of information that relates to the components arranged to accomplish the finger-grasp function system, including surgical implantation procedures, device serial numbers, electrode mapping, and progress notes. For the finger-grasp function, the remaining modules  100  to  106  allow optimization and programming of functional features of the components.  
         [0127]    The electrode profiling module  100  aids the clinician in determining the stimulation thresholds and operational range of parameters for each electrode implanted on a muscle. This information determines system performance and configures electrodes for grasp programming. For example, for each electrode, the maximum force that can be obtained from the electrode during use can be determined, as can specific points of interest (POI) of the recruitment characteristics of each muscle. For each electrode/muscle, the threshold for recruitment and the maximum desired force is determined for each grasp pattern. Additional POI&#39;s can be denoted such as spillover to other muscles and other comments.  
         [0128]    The grasp programming module  102  provides a mechanism for the clinician to program, view, and modify grasp patterns. The grasp pattern coordinates the activity of the muscles implanted with electrodes to produce different functional grasp, e.g. lateral and palmar grasps. The main functions of the module  102  are to program, view, and modify the activation level of each electrode as a function of percent command. This module  102  provides templates and example grasps that the therapist can modify for the individual patient. The therapist can then test the pattern, compare to previous patterns, and modify the pattern before transferring them to the universal external controller  26 .  
         [0129]    The shoulder position sensor programming module  104  provides a mechanism for the therapist to program, view, and modify the shoulder position proportional control and lock parameters. The module  104  allows the therapist to determine the patient&#39;s range of shoulder motion, select control and locking directions, select stationary or mobile command, display visual feedback to aid the patient in understanding the operation of the shoulder controller, set the parameters for locking the grasp, test the shoulder position sensor settings, both with and without an active grasp, and compare the new settings with previous settings.  
         [0130]    The exercise programming module  106  enables the therapist to program, view, and modifying patient exercise routines. The main functions of this module  106  include setting exercise duration, setting the delay in starting the exercise, selecting the exercise patterns, and selecting specific exercise timing parameter. It also allows the therapist and user test the exercise patterns prior to programming.  
         [0131]    In the illustrated implementation, the Clinician Set Up Screen  88  (see FIG. 13) also includes a Coupling Power prompt. When selected (using the buttons  60  and  62  and the control button  58 ), a Coupling Power Select Screen  108  is displayed. The Screen  108  allows the clinician (using the increment/decrement keys  64  and  66  and control button  58 ) to select an appropriate couple power setting, from 1 (lowest) to 5 (highest). The clinician can thereby adjust the power output of the pulse transmitter  16  for the selected function. The controller  26  is thereby able to adjust to different different depths of implantation for the receiver/stimulator for a given function, which, in turn, dictate different radio frequency power levels to transcutaneously link the receiver/stimulator for that function to the associated pulse transmitter for that function. The clinician is thereby able to customize the controller  26  to optimize reliable coupling while maximizing battery life.  
         [0132]    In the illustrated implementation (see FIG. 13), the Clinician Set Up Screen  88  also includes a Device Status prompt. When selected (using the buttons  60  and  62  and control button  58 ), a Device Status Screen  110  is displayed. Information on the Device Status Screen  110  allows the clinician to assess the operating state of the controller  26  for monitoring and trouble shooting purposes.  
       H. Power Conservation  
       [0133]    In addition to the allowing optimization of coupling power (as just described), the firmware also incorporates preprogrammed rules that promote other power conserving techniques aimed at prolonging battery life. In the illustrated embodiment, the power conserving techniques includes pulsed signal output (to the receiver/stimulator) and pulsed signal input (from the control signal source).  
       1. Pulsed Signal Output  
       [0134]    As previously described, under the control of the pre-programmed rules in the firmware of the microprocessor  36 , the universal external controller  26  governs the hand-grasp function by generating prescribed stimulus timing, command, and power signals based upon input received from the shoulder position sensing control signal source. The prescribed stimulus timing, command, and power signals are formatted for transmission by the function-specific pulse transmitter in the form of modulated radio frequency carrier wave pulses. By pulsing the output command signal for the hand-grasp function, the universal controller conserves power, to thereby conserve battery life.  
         [0135]    As shown in FIG. 14A, the output command signals are transmitted during successive frame intervals  114 . Each successive frame interval includes  114  an ON period  116 , during which radio frequency energy is generated to transmit the command signals to the function-specific pulse transmitter, and an OFF period  118 , during which no radio frequency energy (and thus no command signals) are being transmitted. The duration of the frame interval  114  can vary. In a representative embodiment, the ON periods  116  and OFF periods  118  begin on 1 msec boundaries, so that the frame interval  114  is an integer multiple of 1 msec. The frame rate is set to equal the stimulus frequency, which equals 1/Frame Interval. In a representative embodiment, the stimulus frequency is 6.78 MHz±5 KHz.  
         [0136]    Within each ON period  116  of a given frame interval  114  (see FIG. 14B), there is a power up phase  120 , followed by an output stimulus phase  122 , followed by a recharge phase  124  (to allow for radio frequency magnetic field decay). The command signals  126  are transmitted only during the output stimulus phase  122 . The command signals  126  are transmitted in channel groups  128 , with a channel  128  group dedicated to a given implanted electrode where stimulation is to be applied. Each channel group  128  includes a set amplitude command  130  and an set duration command  132 . The length of the output stimulus phase  122  will, of course, depend upon the number of channels receiving stimulation and the nature of the stimulation. When a channel has no command output (i.e., there are no set amplitude or duration commands for that channel), the next higher stimulation channel assumes its time slot.  
         [0137]    In the illustrated embodiment, all commands begin on 1 msec boundaries (as previously stated). Representative time periods for the phases are, for the power up phase  120 : 16 msec in duration if the OFF period  118  is more than 52 msec in duration, otherwise, 6 msec; for the output stimulus phase  122 : 2 times N msec in duration, where N is the number of channels being stimulated; and for the recharge phase  124 , 10 msec in duration. As frame rates increase, the OFF period  118  will become shorter until there is no OFF period  118 .  
         [0138]    Within each channel group  128 , the set amplitude command  130  and the set duration command  132  are arranged within a pulse window  134  (see FIGS. 14C and 14D). The initial period of the pulse window includes a coding window  136 . The preprogrammed rules of the firmware generate successive radio frequency pulses during which radio frequency energy is applied (RF ON) and during which radio frequency energy is not applied (RF OFF). In a representative embodiment, the total interval for a given RF ON and RF OFF sequence is 10 μsec (±1 μsec), and the RF ON interval within this period is 4 μsec (±1 μsec). Gaps  140  are formed between the RF ON and RF OFF periods, which in the representative embodiment last 6 μsec (±1 μsec). The pre-programmed rules of the firmware establish the set amplitude command and the set duration command depending upon the number and sequence of gaps  140  in the pulse window  134 .  
         [0139]    The coded correlation prescribed between the number and sequence of gaps  140  and the related commands can, of course, vary. In a representative implementation (see FIG. 14C), a succession of two to nine gaps  140  in the initial coding window  136  prescribe the channel for which a set duration command  132  is to be effective. Two to nine gaps  140  identify channels 1 to 8, respectively (i.e., two gaps means channel  1 , three gaps means channel  2 , and so on). In FIG. 14C, seven gaps identify a set duration command for channel  6 .  
         [0140]    As further shown in FIG. 14C, the succession of channel gaps  140  in the coding window  136  is followed by a gap  142  having a length (i.e., duration) which sets the actual duration of the stimulation pulse that is to be applied to the prescribed channel. The length of the gap  142  outside the coding window  136  can vary, e.g., between 1 μsec to 200 μsec. In FIG. 14C, the gap  142  outside the coding window  136  is shown to be 65 μsec, which specifies a stimulus duration of 65 μsec.  
         [0141]    In the representative implementation (see FIG. 14D),a succession of eleven gaps  140  in a successive coding window  136  prescribes the amplitude of the pulse that is to be applied to the earlier prescribed channel. As FIG. 14D shows, following the eleven gaps  140  in the coding window  136  is another succession of gaps  144  outside the coding window  136 , the number of which set the pulse amplitude. For example, in the representative implementation, eleven gaps  140  in the coding window  136  followed by one gap  144  sets an amplitude of 14 mA; eleven gaps  140  in the coding window  136  followed by two gaps  144  sets an amplitude of 8 mA; eleven gaps  140  in the coding window  136  followed by three gaps  144  sets an amplitude of 2 mA, and eleven gaps  140  in the coding window  136  followed by four gaps  144  sets an amplitude of 20 mA. In FIG. 14D, a pulse amplitude of 2 mA is set.  
         [0142]    In a representative embodiment, each pulse window  134  is assigned a duration of at least 410 μsec. Within the pulse window  134 , the initial coding window  136  is assigned a duration of 150 μsec (±5 μsec).  
       2. Pulsed Single Inputs  
       [0143]    The input from the shoulder position sensor can also be pulsed, to conserve power consumption. In the illustrated embodiment, as already explained, the power supply  236  on the auxiliary board  40  converts battery voltage to the 5 V excitation level for the shoulder position sensor. The 5 V output to the shoulder sensor is pulsed at a duty cycle of, e.g., {fraction (1/16)}. Thus, the input from the shoulder position sensor to the controller  26  is received in pulses.  
         
       [0144]    I. Therapetic Functional Neuromuscular Stimulation Using a Universal External Controller The firmware of the universal external controller  26  can be programmed for use in association with other components to perform other neuromuscular stimulation functions. For example, the universal external controller  26  can be used to provide therapeutic exercise and pain relief for stroke rehabilitation and surgical speciality applications, including shoulder subluxation, gait training, dysphagia, tenolysis, orthopedic shoulder, and arthroplasty.  
         [0145]    Details of the treatment of shoulder subluxation by neuromuscular stimulation are set forth in copending U.S. patent application Ser. No. 09/089,994, filed Jun. 3, 1998 and entitled “Percutaneous Intramuscular Stimulation System” and copending U.S. patent application Ser. No. ______, filed Jan. 6, 2001 and entitled “Treatment of Shoulder Dysfunction Using a Percutaneous Intramuscular Stimulation System,” both of which are incorporated herein by reference.  
       II. Representative Uses of the Universal External Controller  
       [0146]    The universal external controller  26  as described herein incorporates several fundamental features that address convenience, flexibility, and ease of use.  
         [0147]    By way of example, these features include:  
         [0148]    (i) The controller  26  can be worn on the users body by virtue of it having a low weight and size.  
         [0149]    (ii) The user can be enabled to modify parameters, such as how to control the system, the type and degree of exercise they undertake, and the type and degree of stimulus parameters they use for their stimulation function.  
         [0150]    (iii) The utilization of cell phone battery technology makes the service, maintenance, and usage of the system more “consumer-like” and therefore easier to understand and use.  
         [0151]    (iv) The controller  26  isolates the user from ever having to connect the system directly to any source of power or communication link. The system uses the rechargeable battery as its sole power source and the infrared link as a communications port to a computer.  
         [0152]    (v) The controller  26  enables an extremely flexible control-input port that allows for, e.g.:  
         [0153]    1. Wireless communication (900 mghz)  
         [0154]    2. Proportional input signals (shoulder control)  
         [0155]    3. Natural signals generated by the body (EMG, ENG, EEG)  
         [0156]    4. A direct contact switch (on-off)  
         [0157]    (vi) The controller  26  can support simultaneous control of two independent RF based implantable pulse generators (e.g., motor-control, and/or bladder/bowel control, and/or erection control function).  
         [0158]    (vii) The controller  26  can communicate to any RF-based implantable pulse generators. Thus, the controller  26  can be easily integrated into an existing RF-based stimulation system.  
         [0159]    (viii) The controller  26  can be programmed by a host computer, or be programmed directly by the user or a trained technician, without the need of an external host computer.  
         [0160]    The following Examples are provided to exemplify the convenience, flexibility, and ease of use of a controller  26  that embodies features of the invention.  
       EXAMPLE 1  
     Different Selectable Neuromuscular Functions  
       [0161]    It has already been explained how the controller  26  can enable individual selection of different, functional neuromuscular stimulation functions, e.g., the finger-grasp function, or the standing function, or the bladder and bowel control function.  
         [0162]    The controller  26  can also be configured to provide these and other different neuromuscular functions concurrently. For example, using the menu-driven interface of the controller  26 , as previously described, the user can select to implement a standing function concurrently with a bladder and bowel control function. In this arrangement, e.g., a user could affect concurrent neuromuscular stimulation to enable micturation while in a standing position. In the arrangement, the controller  26  receives control signals through one input to affect the operation of the standing function (e.g., a remote push-button control coupled to the input, or a push button programmed for this purpose on the user interface panel of the universal external controller  26  itself), while receiving other control signals through another input to affect operation of the bladder and bowel control function (e.g., another remote push-button control coupled to the other input, or another push button on the controller  26  programmed to accomplish this purpose). Concurrently, the controller  26  generates one stimulation output to the receiver/stimulator  18 ( 2 ) for the standing function, while generating another, different stimulation output to the receiver/stimulator  18 ( 3 ) for the bladder and bowel control function. In this arrangement, the controller  26  concurrently supports different control signal inputs and different stimulation outputs to different stimulation assemblies.  
         [0163]    The controller  26  can be further configured to concurrently provide an additional finger-grasp function, based upon control signal input received by the controller  26  from e.g., a shoulder position sensor, and a stimulation output generated by the controller  26  to the receiver/stimulator  18 ( 1 ) for the finger-grasp function. These concurrent, multiple stimulation functions make possible normal user control over the bladder and bowel function, while standing. Selection of the bladder and bowel control function concurrent with the selection of the finger-grasp function can also be accomplished, without selection of the standing function, to provide normal control over the bladder and bowel function while in a seated position.  
         [0164]    As another example, concurrent selection of the finger-grasp function and the standing function would enable the user to grasp objects while in a standing position. Concurrent selection of these two functions would also allow the user to ambulate while carrying an object grasped in the user&#39;s fingers. Again, normal control over these functions is thereby provided.  
       EXAMPLE 2  
     Controller with Different Control Signal Sources  
       [0165]    As previously explained, the universal external controller  26  can accommodate input from a variety of external control sources, such as myoelectric surface electrodes, remote control switching devices, reed switches, and push buttons on the user interface panel of the universal external controller  26  itself. External control sources can be coupled to the universal external controller  26  by direct (i.e., cable) connection, or by wireless link (e.g., 900 MHz). These different control signal sources can be selected for operation concurrently to achieve different, concurrent stimulation functions (as the preceding Example 1 demonstrates). These different control sources can also achieve the same stimulation function based upon different source inputs.  
         [0166]    For example, the user can choose to affect the standing function, e.g., by operation of a remote push-button control, or a reed switch, or a push button programmed for this purpose on the universal external controller  26  itself. In addition, the user can also provide a designated care partner with a remote control switch to affect the standing function independently of the user, either by wireless transmission of a control signal or by a cable connection. Thus, for example, while the user holds of an ambulation assistance device, such as a walker, the care partner can remotely affect the standing function for the user, so that the user can be lifted to a standing position while the assistance device lends ancillary support and stability. Conversely, the care partner can remotely affect the termination of the standing function, so that the user can return to a seated position while the assistance device lends ancillary support and stability.  
         [0167]    Various features of the invention are set forth in the following claims.