Portable programmer for hearing aids

Abstract: A programmer for programming hearing aids which have a controller for setting the audio response parameters of the hearing aid, and which can be fitted in a patient's ear. The programmer comprises data entry means, a display unit, a microcontroller and a communication interface. The hearing aids are coupled to the programmer either using a cable or through an infrared link using a lapel unit which has a short y-cable to the hearing aids. The fitter uses the data entry means, i.e. a keypad, to program the parameters, which are then shown on the display unit. The display unit is divided into right and left ear display fields. Each display field includes a number of bar charts for displaying the values of the parameters. The display also includes an icon to indicate the type of hearing aid fitting, i.e. binaural or monaural, and an icon to indicate the hearing aid currently being programmed, i.e. right or left. The programmer also allows two sets of parameters to be stored for each ear, and then compared monaurally or binaurally.

Description: FIELD OF THE INVENTION This invention relates to a hearing aid programmer. More particularly, the invention concerns a hand-held and portable hearing aid programmer. BACKGROUND OF THE INVENTION Advances in signal processing electronics and the miniaturization of integrated circuits have led to a very powerful class of hearing aids. Today's hearing aid represents a complex electro-acoustical device capable of providing a most natural audio impression for the hearing-impaired patient. To achieve this natural audio impression, however, it is necessary to make numerous adjustments to the parameters which control the audio response of the hearing aid. The parameters must be adjusted to compensate the patient's particular hearing deficiencies. Typically, the hearing aid fitting professional, or fitter, follows a two-step procedure to fit a patient with a hearing aid. In the first step, the fitter sets the hearing aid parameters to a target setting and then fits the aid in the patient's ear. The second step involves the patient evaluating the performance of the hearing aid and the fitter "tweaking" the parameters. Since some aspects of the hearing aid response are inherently subjective on the patient's part, the fitter often reprograms the hearing aid several times before the optimum parameter settings are achieved. Each setting change requires removing the hearing aid, programming the parameter setting, and then refitting the hearing aid for the patient's evaluation. In addition, the patient's hearing characteristics may change over time, which again would require removing the hearing aid, reprogramming the settings, and then refitting the hearing aid. Clearly, it is desirable to program the hearing aid without removing it from the patient's ear. U.S. Patent No. 4,575,586, which issued to Christian Topholm, discloses an apparatus for adjusting a hearing aid that is fitted in the patient's ear. The apparatus comprises an adaptor that is coupled to the hearing aid. The adaptor, in turn, connects to a control desk through a bowden cable. The coupling between the adaptor and the hearing aid is mechanical. Levers on the control desk cause corresponding actuators in the adaptor to move via the bowden cable. The movement of actuators moves the sliding switches typically found on the older style hearing aids. The Topholm invention has major drawbacks. First, the invention relies on a mechanical coupling and movement to adjust the miniature switches on the hearing aid. As can be appreciated, a mechanical adjustment movement is not as precise as an electronically programmed setting. Moreover, the number of parameter settings is limited by the physical size of the adaptor and the hearing aid. Secondly, the desk control unit does not easily lend itself to portable operation due to the size of the adjustment levers and the diameter of the bowden cable. Thirdly, the fitter does not receive immediate feedback on the settings beyond the response of the patient. Lastly and most importantly, the Topholm invention does not allow different sets of parameter settings to be easily programmed and evaluated by both the patient and the fitter while the hearing aid is fitted in the patient's ear. Document WO 90/08448 discloses the technical features referred to in the preamble of present Claim 1. Accordingly, it is an object of the present invention to provide a portable or handheld hearing aid programmer. The programmer utilizes an electronic interface to the hearing aid thereby providing a full hearing aid parameter programming capability. Another object of the present invention is to provide the programmer with a display unit. The display unit gives the fitter immediate feedback on the parameter settings and other functions associated with programmable hearing aids. A further object of the present invention is to provide a comparison programming function to allow the fitter to switch or toggle between different sets of parameter settings, while the hearing aid remains fitted in the patient's ear. The foregoing and other objects of the present invention will be apparent in the following pages. According to the invention there is provided an electronic programmer for programming two hearing aids said hearing aids being capable of fitting in or on a patient's right ear or left ear, and each of said hearing aids including a programmable controller for setting a plurality of audio signal parameters which determine the performance characteristics of each of said hearing aids, said programmer comprising data entry means for programming a set of values for the audio signal parameters, and display means for displaying the values for the audio signal parameters, said display means comprising a plurality of display fields, characterized in that said display means includes a right ear display field for simultaneously displaying, graphically, a set of values for said plurality of the audio signal parameters associated with the hearing aid fitted in the patient's right ear, and a left ear display field for simultaneously displaying, graphically, a set of values for said plurality of the audio signal parameters associated with the hearing aid fitted in the patient's left ear, said left and right ear fields being displayed adjacent each other and at the same time, and in that the programmer further comprises controller means, coupled to said display means and said data entry means, for controlling said display means, said controller means including communication means for communicating with the programmable controller in each of said hearing aids and for causing said data entry means to programme said set of values either for the hearing aid fitted in the patient's right ear or the hearing aid fitted in the patient's left ear, so that while said set of values for one hearing aid is being programmed, said sets of values for both hearing aids are displayed adjacent to each other and at the same time. IN THE DRAWINGS Figure 1 is a pictorial representation of a typical arrangement for fitting a hearing aid using apparatus according to the present invention; Figure 2 is a pictorial representation of the programmer according to the present invention; Figure 3 is another pictorial representation of the programmer in Figure 2, shown from a different angle; Figure 4 is a pictorial representation of the lapel unit of the apparatus according to the present invention; Figure 5, which is beside Figure 1, is a pictorial representation of the programmer interfacing to the lapel unit via an infrared link; Figure 6 is a diagrammatic representation of the display incorporated in the device; Figure 7 is a diagrammatic representation of the keypad incorporated in the device; Figure 8 is a schematic block diagram of the hardware for the programmer; Figure 9 is a schematic block diagram of the hardware for the lapel unit; Figure 10 is a block diagram of the firmware organization for the programmer showing the top control level of the code; Figure 11(a) is a flow-chart of the timer interrupt handler in the firmware for the programmer; Figure 11(b) is a flow-chart of the keypad interrupt handler in the firmware for the programmer; Figure 12(a) - (g) are block diagrams of the firmware sub-modules for servicing the keys associated with the keypad; Figure 13 is a block diagram of the firmware organization for the lapel unit showing the top level control flow in the firmware; and Figures 14(a) - (b) are block diagrams of the firmware sub-modules incorporated into the top level control firmware of Figure 13. DETAILED DESCRIPTION Figure 1 shows a typical arrangement for fitting a hearing aid using apparatus 1 according to the present invention. The purpose of the apparatus 1 is to set the audio signal parameters which control the response of the hearing aid and compensate for the hearing deficiencies of the patient in a portable setting. Typically, a patient will be fitted with one hearing aid, but may require two hearing aids, one for each ear. As shown in figure 1, the apparatus comprises a portable programmer 2, an extension cable 4 and a y-cable 5. The extension cable 4 connects to the programmer 2 and using the y-cable 5 couples one or two hearing aids, indicated by 6,8, to the unit 2. The cables 4,5 provides the electronic link between the programmer 2 and the hearing aids 6,8 fitted in the patient. In another embodiment of the present invention, the programmer 2 can also be coupled to a lapel unit 20, with an infrared link replacing the extension cable 4, as shown in Figure 5. The Y-cable 5 connects the hearing aids 6,8 to the lapel unit 20. The principle function of the programmer 2 is to set the adjustment parameters of the hearing aid 6 or 8 according to the requirements of the patient. As depicted in Figure 2, the programmer 2 is of a size that can be hand-held and battery powered. The programmer 2 comprises a housing or enclosure 10, a display unit 12, a keypad 14, and a communication interface 16. The housing 10 can be manufactured as two pieces, a top half and a bottom half, using known injection-moulding techniques. As shown in Figure 2, the top half is indicated by 10a and the bottom half is indicated by 10b. The top half 10a "houses" the display 12, the keypad 14, the communication interface 16, an electronic circuit board (not shown) and a battery compartment (not shown). The bottom half 10b meshes with the top half 10a and provides an enclosure for the electronic circuit board (not shown), and the components associated with the display 12, the keypad 14 and the communication interface 16, which protects them from hostile environmental conditions and mechanical damage. In the preferred embodiment, the programmer 2 measures 63 mm by 185 mm, and is 19 mm thick. The programmer 2 weighs 195 grams with batteries installed. Without batteries, the programmer 2 weighs in at 173 grams. With these dimensions, the programmer 2 can be handheld and portable. Referring still to Figure 2, the keypad 14 comprises 9 keys in the present embodiment of the invention. The placement of the keypad 14 in the top half 10a of the housing 10 allows one handed operation of the keypad 14, and also allows the programmer 2 to be operated with either the right or the left hand. Furthermore, the ergonomic placement of the keypad 14 ensures that all keys of the keypad 14 can be reached and operated with the thumb of the hand holding the programmer 2. As will be discussed below, the keypad 14 is used to program the parameters associated with the hearing aid(s) 6 or 8. The display unit 12 is located directly above the keypad 14 in the top half 10a of the housing 10. By mounting the display 12 above the keypad 14, the display 12 is not obstructed by the fitter's hand or fingers. The display 12 shows each parameter setting for the hearing aid(s) 6,8. To achieve this, the display 12 includes various fields and icons which will be discussed in detail below. The communication interface 16 resides in the top edge of the housing as shown in Figure 3. As will be discussed in detail below, the communication interface 16 includes both a hardwire link to the hearing aid(s) 6,8 and an infrared link to the lapel unit 20. The hardwire link comprises a jack 17 into which the Y-cable 5 from the hearing aid(s) 6,8 plugs. The infrared link comprises an infrared transmitter, indicated by 18. As shown in Figure 4, the lapel unit 20 has its own housing 20a. Like the housing 10 for the programmer 2, the housing 20a can be two piece construction using plastic injection moulding techniques. The lapel unit 20 includes a jack 22 for accepting the cable 5 which is plugged into the hearing aids 6,8. The lapel unit 20 also includes an infrared receiver, indicated by 24, which accepts the infrared data transmitted by the programmer 2. As mentioned, the lapel unit 20 is battery powered and provides the infrared link to the hearing aids 6,8 from the programmer 2. In the preferred embodiment of the invention, the lapel unit 20 also includes green and red LED indicators 26,28. As will be discussed, the green LED 26 provides a visual indication of infrared data reception, while the red LED 28 indicates low battery status. In the preferred embodiment, the lapel unit 20 measures 65 mm by 70 mm, and is 22 mm thick. The lapel unit 2 weighs 70 grams with batteries installed. Without batteries, the lapel unit 20 weighs in at 48 grams. It will be appreciated that a lapel unit 20 with these dimensions and weight can be hung around the patient's neck without undue discomfort to the patient. As shown in Figure 1, the Y-cable 5 plugs into the hearing aid(s) 6,8 which are mounted in the patient's ear(s). The Y-cable 5 is bifurcated having a first end 30 for the right ear hearing aid 6 and a second end 32 for the left ear hearing aid 8. In the preferred embodiment, the first end 30 is colour-coded red for the right ear and the second end 32 is colour-coded blue for the left ear. With the Y-cable 5 connected to the hearing aid(s) 6,8, the set-up is complete and the fitter can program the hearing aid(s) 6,8 using the programmer 2. The data associated with the hearing aid 6 or 8 audio signal parameters is programmed by the fitter and transmitted to the hearing aid(s) 6,8 via the y-cable 5, using the extension cable 4 or using the lapel unit 20 and the infrared transmitter 18. Having presented an overview of the apparatus 1 according to the present invention, the following paragraphs will discuss the details of the features and components incorporated in the apparatus 1. The display 12 is shown in Figure 6. The primary purpose of the display 12 is to provide a visual indication of the level to which each audio response parameter in the hearing aid(s) 6,8 is set. As is known, a hearing aid 6,8 is fitted to the patient by adjusting the audio response parameters associated with the hearing aid 6 or 8. Typical audio response parameters are maximum power output, gain and frequency response. The display 12, according to the present invention, has provision for showing the settings of eight audio response parameters. The parameters are power output (P) 34, gain (G) 36, low tone (L) 38, high tone (H) 40, compression threshold (C) 42, release time (R) 44, and (X) and (Y) parameters 46,48. As will be appreciated by one skilled in the art, the display 12 works with the keypad 14 under the control of a microcomputer which runs a program stored in firmware. The details of the microcontroller and firmware follow a discussion of the operation of the display 12 and the keypad 14 from a feature level, i.e. functions provided by the display 12 and the keypad 14. The display 12 operates together with the keypad 14 to provide the fitter with the functions necessary to program the settings for audio response parameters 34 to 48 for either one or two hearing aids 6,8 mounted in the ears of the patient. In the art, a two hearing aid 6,8 fitting is known as a binaural fitting, whereas a single hearing aid 6 or 8 fitting is termed a monaural fitting. To provide the programming functions, the keypad 14 includes nine keys, as shown in Figure 7. The keys are an EAR key 50, a parameter SELECT RIGHT key 52, a parameter SELECT LEFT key 54, a parameter SETTING INCREASE key 56, a parameter SETTING DECREASE key 58, a SAVE key 60, a READ key 62, an A/B COMPARISON key 64, and a CLEAR key 66. Before the details are discussed of the features incorporated into the display 12 and the keypad 14, a brief overview of the programming steps followed by the professional fitter may be helpful. Consider first a typical binaural fitting. In a binaural fitting, the patient has both a right ear hearing aid 6 and a left ear hearing aid 8. The fitter first initializes the procedure by reading the parameters previously stored in the hearing aid(s). He then selects the hearing aid 6 or 8 to be programmed by pressing (toggling) the EAR key 50. The fitter then selects the parameter setting, i.e. gain (G), to be programmed by using the parameter SELECT keys 52,54. The value of parameter setting is then adjusted using the parameter SETTING keys 56,58. These two steps are then repeated until all the parameter settings have been adjusted to the values required by the patient. The fitter then uses the SAVE key 60 to transmit or download the parameter settings into non-volatile memory (not shown) in the selected hearing aid 6 or 8. The procedure is then repeated for the other hearing aid 6 or 8 in the binaural fitting. The READ key 62 can be used with the EAR key 50 to verify the parameter settings downloaded to the hearing aid(s) 6,8. The A/B COMPARISON key 64 provides an advanced programming function which allows two sets of parameters for each ear to be compared (in both a monaural and a binaural fitting), as will be discussed below in detail. Referring to Figure 6, the display 12 is designed to provide the hearing aid professional with all the necessary information to program and verify the settings for the audio response parameters of the hearing aid(s) 6,8 mounted on or in the patient's ear(s). The display 12 also includes some features in the preferred embodiment which enhance the operation of the programmer 2. As mentioned, the fitter can set the parameters of a hearing aid 6 or 8 in both monaural and binaural fittings. To indicate the hearing aid configuration being programmed, the display 12 shows a hearing aid fitting icon 68. The fitting icon 68 in the shape of a patient's head viewed face on is positioned prominently in the top and centre of the display 12 as shown in Figure 6. In another embodiment, the icon 68 has the shape of the patient's head and includes right ear and left ear segments 70,72. The appropriate segment 70,72 is displayed by the firmware to indicate the presence of a hearing aid in the patient's ear. For example, in a monaural fitting the appropriate ear segment is turned on, whereas for a binaural fitting both segments 70,72 are displayed as shown in Figure 6. To indicate which hearing aid is being programmed, the appropriate segment can be backlit. For example, in Figure 6, the right ear hearing aid 6 is currently active for programming as indicated by segment 70. In the present embodiment of the invention, the display 12 is partitioned into two principle portions, a right side portion 74 and a left side portion 76. According to accepted practice in the art, the right ear hearing aid parameters are shown on the left portion 76 of the display 12 and the left ear hearing parameters are shown on the right portion 74. Adjacent to the fitting icon 68, there are respective right hearing aid selected and left hearing aid selected fields 78,80. The fields 78,80 indicate whether the right or left hearing aid 6 or 8 is selected, i.e. under control of the programmer 2. In a binaural fitting, the selected fields indicate which hearing aid 6,8 is currently active, i.e. being programmed. As shown in Figure 6, the right ear hearing selected field is turned on using a backlit field, and therefore the hearing aid 6 in the patient's right ear is under the control of the programmer 2. The particular hearing aid 6 or 8, i.e. right or left, is selected by using the EAR key 50 on the keypad 14. If the right hearing aid 6 is currently under the control of the programmer 2, i.e. the right hearing aid selected field 78 is ON, and pressing the EAR key 50 turns on the left hearing aid selected field 80 while turning off the right hearing aid selected field 78. In effect, the EAR key 50 provides a toggle function between the right and left hearing aids 6,8. A third depression of the EAR key 50 selects the binaural condition by backlighting both fields 78 and 80. This mode is used only in the COMPARE A/B mode for a binaural fitting. Under the control of the firmware, each time the EAR key 50 is activated the current settings of the parameters for that hearing aid are also displayed as will be discussed. It should be appreciated that the toggle function of the EAR key 50 is only present in a binaural fitting. The presence of two hearing aids, i.e. a binaural fitting, is determined through the firmware. If, for example, the patient is only fitted with right ear hearing aid 6, then the left hearing aid selected field 80 is not displayed. When an ear or hearing aid 6,8 has been selected it comes under the control of the programmer 2. The fitter can then use the keypad 14 to adjust the various audio response parameters associated with the hearing aid 6 or 8. Once the parameters have been set, the professional uses the SAVE key 60 to load parameters into non-volatile memory in the selected hearing aid 6 or 8. The SAVE key 60 works in conjunction with a pair of right and left ear save indicators 82,84. The save indicators 82,84 are located directly below the respective hearing aid selected fields 78,80 in the display 12. When the right ear hearing aid 6 is active, as shown in Figure 6, pressing the SAVE key 60 causes the save indicator 82 to flash for 5 seconds but a SAVE code (not shown) is not sent to the right ear hearing aid 6 mounted on or in the patient's ear unless the SAVE key (or any other key) is pressed during the 5 second interval. In the present embodiment of the invention, the microcomputer in the programmer 2 and the microcomputer in the lapel unit 20 are programmed to interface with the GP521 Controller/Memory Chip, i.e. hearing aid controller, for Hearing Instruments, manufactured by Gennum Corporation of Burlington, Ontario, Canada. The GP521 is a general purpose controller/memory for use with audio signal path circuits in programmable hearing aids. It includes 8 programmable audio control outputs, an EEPROM non-volatile memory, a RAM temporary storage unit, a status register, and a bi-directional serial communication interface. The GP521 incorporates a flexible communication protocol which includes data transmission error detection. A feature of the communication protocol exploited in the present invention is the data packet echo. When the GP521 receives a data packet, the received packet is echoed back to the transmitting unit, thereby allowing data verification. It will be appreciated by one skilled in the art that the programmer 2 can be configured to interface with a hearing aid controller other than the GP521. As mentioned above, the parameter SELECT keys 52,54 and the parameter SETTING keys 56,58 provide the fitter with the programming functions to adjust the parameters associated with the hearing aid(s). As shown in. Figure 6, the left portion 74 of the display 12 includes a right ear display field 86, and the right portion 76 of the display 12 includes a left ear display field 88. The right ear display field 86 includes bar chart icons 92 which display the values of the audio signal parameters associated with the right ear hearing aid 6. Similarly, the left ear display field 88 includes bar icons 92 which display the values of the audio signal parameters for the left ear hearing aid 8. As mentioned, in the art the right ear audio signal parameters are shown in the left side 74 and the left ear audio signal parameters are shown in the right side 76. The display 12 includes a graduated scale 90 between the two fields 86,88. The scale 90 provides a quick determination of the current value of the parameter currently selected and being adjusted. In the preferred embodiment of the invention, there are as discussed eight parameters 34 to 48 available for programming for each hearing aid. The power parameter (P) 34 sets the maximum output power from the hearing aid. It represents the maximum output level the hearing aid can deliver. In other words, it represents the maximum absolute sound pressure level which the hearing aid can produce. The gain parameter (G) 36 represents the amplification factor of the hearing aid. The low tone (L) 38 parameter is a bass control which cuts out or attenuates frequencies below a selected frequency. The selected frequency is determined by the setting of this parameter. The high tone (H) 40 is the opposite of the low tone parameter (L) 38. It represents the ceiling or upper frequency response of the hearing aid. Frequencies above the selected high tone value are attenuated. The compression threshold parameter (C) 42 is a setting which eliminates clipping. If the input level exceeds the compression threshold (C), the gain of the hearing aid is reduced to avoid clipping. The release time parameter (R) 44 is related to the compression threshold (C) 42. Once the hearing aid goes into compression, the release time parameter sets the time for the hearing aid controller to go out of compression after input signal which caused compression disappears. The two auxiliary parameters (X) and (Y) 46,48 can be programmed to produce a second prescription, i.e. a second program, for the hearing aid. For example, the auxiliary parameters (X) and (Y) 46,48 can be used for programming a secondary value for the gain (G) 36 and low tone cut (L) 38, with all the other parameters, i.e. power (P) 34, high tone cut (H) 40, compression threshold (C) 42 and release time (R) 44, remaining the same. The hearing aid 6,8 can then be switched between the initial set of parameter values and the secondary set of parameter values, i.e. program 1 and program 2, using a switch on the hearing aid as is known in the art. As shown in Figure 6, each parameter setting is displayed using the bar chart icon 92. The bar chart icon 92 consists of a number of segments 94 with each segment representing an incremental value for the parameter. In the preferred embodiment, each segment 94 represents a 1/4 increase or decrease in the value of the setting by 1/15 of the full range of the parameter. This is a function of the programmable settings in the GP521 as will be appreciated. The value of the parameter setting is indicated by cumulative number of segments 94. To facilitate determining the current value of a parameter setting, the display 12 includes two aids. The first aid comprises the graduated parameter setting scale 90. The scale is located in between the right and left fields 86,88 and includes numbers indicative of the parameter settings. The outside edge of each display field also includes a graduated scale but without the numeric indexing. The second aid comprises numeric read-out fields 92R,92L of the current value of the selected parameter. As shown in Figure 6, the numeric read-out fields 92R,92L are located in top outside corners of the display 12. The field 92R or 92L displays the current value of the selected parameter as a decimal number. The decimal number correlates to the value indicated by one segment, in this case each segment represents a fifth setting. Referring still to Figure 6, the selected parameter setting for low tone (L) 38, indicated by an highlighting L within an arrow, is 2.6 in the numeric field 92R for the right hearing aid 6. This corresponds to 8 segments, i.e. 8/15 of the full range, in the bar graph display 94 for the L parameter 38. The numeric field 92R,92L displays the current value of each parameter setting and changes as a new parameter is selected using the parameter SELECT keys 52,54. Cursor 55 indicates the parameter currently selected. The numeric field 92R,92L also changes in response to the parameter SETTING keys 56,58. As mentioned, the programmer 2 includes an advanced programming function which is associated with the A/B COMPARISON key 64. The A/B key 64 allows the fitting professional to switch, i.e. toggle, the hearing aid(s) 6 or 8 mounted in the patient's ear(s) between a first set of parameters and a second set of parameters. It will be appreciated that this function allows the professional to almost instantaneously change the performance characteristics of the hearing aid 6 or 8 based on the stored parameter values and receive immediate feedback from the patient based on the two sets of parameters. The two sets of parameters are stored locally in the programmer 2, in a buffer A and a buffer B (not shown). There are respective A and B buffers for each ear. For each ear, only one of the buffers A or B is active at a time. The active buffer is updated in the background by the firmware with the current values of the parameter settings as they are programmed by the fitter, i.e. using the parameter SELECT keys 52,54 and the parameter SETTING keys 56,58. To compare newly programmed parameter settings with the previous settings, i.e. stored in the other buffer, the professional simply pushes the A/B key 64. Pushing the A/B key 64 causes a number of actions to occur. For example, if buffer A is currently active while the new parameter values are being programmed, pushing the A/B key 64, first deactivates buffer A and activates buffer B. Deactivating buffer A causes the new (currently displayed) values of the parameter settings to be stored in buffer A. Second, by activating buffer B, the display field 86 or 88 is updated with the parameter settings stored in buffer B. In the preferred embodiment, on power-up or after a reset, buffer A becomes the active buffer. If the A/B key 64 is pushed after power-up, then the unprogrammed parameter settings of buffer B are displayed which can be either zero values or default values that are initialized during the power-up sequence or stored in memory. To indicate which buffer, i.e. A or B, is currently active, the display 12 includes an A/B activity icon indicated by 98 in Figure 6. The activity icon 98 comprises the letters AB with the respective letter being displayed for the currently active buffer. Since there are A and B buffers for each ear, it is also necessary to look at the hearing aid selected field 78,80 to determine which ear the buffer is active for. As shown in Figure 6, for a binaural fitting both display fields 86,88, i.e. right ear and left ear, show the parameter settings, and the right ear is active. Consequently, for the left ear, the display field 86 shows the parameter settings of the buffer which was active at the time the EAR key 50 was pushed to switch to the right ear. By pressing the EAR key 50 again, the left ear becomes active, and the A/B activity icon 98 displays the currently active buffer for the left ear. When the A/B key 64 is pushed, the firmware also transmits the contents of the currently active buffer, i.e. A or B, to the hearing aid 6 or 8 (the selected hearing aid in a binaural fitting). This function allows the fitter to almost instantaneously change the parameter settings of the hearing aid 6 or 8 and immediately gauge the response of the patient to the modified settings. If, for example, the values for the low tone cut (L) 38 and gain (G) 36 parameters, are off slightly, they can be adjusted using the parameter SELECT keys 52,54 and SETTING keys 56,58. In another embodiment of the present invention, when there is a monaural fitting the inactive display field 86 or 88 can be used to show the parameter settings stored in the inactive buffer, i.e. A or B. For example, if the patient is only being fitted with a right ear hearing aid 6, then the parameter settings stored in the active buffer, e.g. the A buffer, can be displayed in the right ear display field 86, with the A/B activity icon 98 indicating A. The left ear display field 88, in turn, displays the parameter settings stored in the inactive buffer, e.g. the B buffer. When the A/B key 64 is pushed, the right ear display field 86 changes to the parameter values stored in the B buffer, and the A/B activity icon 98 indicating B turns on. The left ear display field 88, in turn, displays the parameters stored in the A buffer which is now the inactive buffer. The advantage of this display scenario is that the parameters stored in both buffers A,B are displayed at the same time. Once the correct prescription, i.e. parameter settings, has been determined for the patient, the parameter settings are stored in the hearing aid 6,8 using the SAVE key 60. When the SAVE key 60 is pushed, the firmware transmits the SAVE command to the hearing aid via the lapel unit 20 or directly through the cable 4. The SAVE key 60 operates together with the SAVE indicators 82,84. As shown in Figure 6, the save indicators 82,84 are located below the respective right and left ear selected icons 78,80 at the top of the display 12. In the preferred embodiment of the present invention, the save indicators 82,84 flash for a preset period but the selected hearing aid 6 or 8 is not programmed with the parameter settings stored in the current buffer until a second SAVE key 60 depression occurs. It will be appreciated that the protocol for the SAVE command depends on the type of hearing aid being fitted. For the Gennum GP521, the SAVE command causes the parameter settings to be transferred from RAM to the EEPROM (not shown). The other advanced programming feature included in the preferred embodiment is the program 1 and program 2 functions associated with the auxiliary parameters (X),(Y) 46,48. As mentioned, the parameters (X),(Y) 46,48 provide additional two settings which can be configured as secondary settings for any two of the original six parameters, i.e. power (P) 34, gain (G) 36, low tone cut (L) 38, high tone cut (H) 40, compression threshold (C) 42 and release time (R) 44. For example, the (X) 46 parameter can be configured as a secondary.gain (G) parameter and the (Y) 48 parameter can be configured as a secondary high tone cut (H) parameter. The configuration of the secondary settings is done through hardware in the hearing aid in a known manner and is dependent on the specifications of the hearing aid being fitted. As shown in Figure 6, the display 12 includes a PROGRAM icon 100 to indicate which PROGRAM is active, i.e. the primary program comprising the six parameters or the secondary program comprising 4 parameters and the (X) and (Y) parameters. The hearing aid hardware is used to select program 1 or program 2. Hearing aid programmers, i.e. the GP521, supporting this secondary program feature typically include a switch (not shown) which switches between program 1 and program 2. The last programming feature incorporated in the preferred embodiment is the clear function associated with the CLEAR key 66. The clear function puts the display 12 and the hearing aids 6,8 into an initialization state. The initialization state involves transmitting clear codes to the hearing aids 6,8, activating the buffer A, activating the right ear display 86 and right ear selected icon 78, clearing settings for the parameters (P) to (Y) 34 to 48, and setting the parameter SELECT key to the power (P) 34 parameter. To indicate that the clear function is in progress, the scale 90 flashes for a predetermined period. This is a safety feature to prevent clearing the program setting accidentally. A second depression of the CLEAR key 66 clears the settings. Pressing any other key while the display is flashing restores the on final settings. Having considered the functions associated with programmer 2 on a feature level, the discussion will now deal with the hardware and firmware implementation of these functions. Reference will first be made to Figures 8 and 9 which depict the hardware implementation, in the preferred embodiment, for the programmer 2 and the lapel unit 20 respectively. Next, the firmware structure will be considered with reference to Figures 10, 11(a)-(b), 12(a)-(g), 13 and 14(a)-(b). Referring now to Figure 8, the hardware associated with programmer 2 comprises a microcomputer 200, a liquid crystal display (LCD) 202, a key matrix 204, a battery power supply 205, and the communication interface 16. The battery power supply 205 can comprise four AAA-type cells to provide a supply voltage of 4 to 6 volts DC. The communication interface includes an infrared transmitter 206 and a cable connector 208, which is part of the jack 17. In known manner, the hardware is mounted on a printed circuit board (not shown). The microcomputer 200 forms the heart of the hardware in the programmer 2. Considerations for the programmer 2 dictate a low power device which includes on-chip resources such as program memory, data memory, input/output ports and timers. It will be appreciated that these on-chip resources not only reduce the component count, and footprint of the circuit board, but also provide a cost effective solution. A suitable device for the microcomputer 200 is the SMC6246 microcomputer manufactured by S-MOS Systems Inc. of San Jose, California. The SMC6246 is a 4-bit microcontroller which utilizes the SMC6200 as its core processor. The SMC6246, manufactured as a single chip CMOS package, includes the following on-chip resources: 6K x 12 Read Only Memory (program memory), 640 x 4 Random Access Memory (data memory), time base counter, 44 input/output lines, and a serial communication port. In addition, the SMC2646 includes two other features which make it particularly suited for the programmer 2 application. They are an on-chip LCD driver and a battery level detect circuit (not shown). The SMC2646 can also operate on a low voltage supply, e.g. 2 to 3 volts. In the preferred embodiment, the LCD display 202 is a custom designed device. The display 202 comprises a 50 x 50 mm custom display and is manufactured by Seiko-Epson. As shown in Figure 8, the microcomputer 200 interfaces to the display 202 through an LCD driver port 210. The SMC6246 driver port 210 has the capability to drive a 40 segment display. In this application, the display 202 requires only 26 segment drive lines 212. The other portion of the display driver interface comprises 16 LCD common output lines 214. Referring still to Figure 8, the key matrix 204 comprises three columns 216 and three rows 218, with the nine function keys 50 to 66 located at the cross-points of the rows 218 and columns 216. In the preferred embodiment, the three rows 216 connect to three output lines 220 in the microcontroller 200 and the three columns 216 connect to three input ports 222. In known manner, the key matrix 204 is serviced by outputting logic pulses on the rows 218 and scanning the columns 216. When a key 50 to 66 is pressed an electrical contact is formed at the respective cross-point and the logic pulse is detected at the input lines 222 connected to the columns 216. In known manner, the columns 216 of the matrix 204 can be polled, or serviced as part of an interrupt driven routine. The microcomputer 200 communicates with the hearing aids 6,8 using the extension cord 4 and Y-cable 5 which connects to the cable port 208 and jack 17. A serial communication implementation is chosen for the cable port 208 because high bandwidth is not a requirement and consequently a two-wire implementation is cost effective. The cable port 208 comprises 2 pairs of input/output lines 224,226. One pair 224 is dedicated to right hearing aid data transfer, and the other pair 226 is dedicated to left ear data transfer. In each pair 224,226, one line is the clock line 224C,226C and the other line is the data line 224D,226D. The clock is generated in firmware by outputting a train of logic pulses on the clock line 224C or 226C. Since the input/output structure is bidirectional, the data line 224D,226D provides a half-duplex communication function. To enhance the integrity of the data, each data line 224D,226D is conditioned using a buffer 227. A suitable device for the buffer 227 is the LT101CN8 manufactured by Linear Technology Corp. As shown in Figure 8, the hardware associated with the programmer 2 also includes the infrared transmitter 206. The transmitter 206 comprises a pair of infrared light emitting devices (LEDs) 228a,228b connected in parallel to a PNP drive transistor 230. The transistor 230, in turn, is coupled to an output line 232 on the microcontroller 200. The transistor 230 provides the drive current necessary to pulse the infrared LEDs 228a,228b. In known manner, the LEDs 228a,228b are pulsed by turning the transistor 230 ON and OFF using the output line 232. Using the infrared transmitter 206, the programmer 2 is linked to the lapel unit 20 in a wireless mode. The lapel unit 20, as shown in Figure 9, also includes a microcomputer 300, which in the preferred embodiment is the SMC6246. It will be appreciated that the primary function of the microcomputer 300 in the lapel unit 20 involves receiving data from the programmer 2, converting the received data into the protocol required by the GP521 located in each hearing aid 6,8, and downloading the data to the GP521(s). In an alternate embodiment, the microcomputer 300 in the lapel unit 20 can also respond to status requests, i.e. read operations, from the microcomputer 200 in the programmer 2, and sends the programmer 2 status data such as the current parameter settings downloaded in the GP521 in the hearing aid 6,8. It will be appreciated that the programmer 2 and the lapel unit 20 essentially function in a master-slave relationship. As shown in Figure 9, the microcomputer 300 in the lapel unit 20 includes a communication interface 302 comprising an infrared detector circuit 306, a cable port 304, and a battery power supply 307. The battery power supply 307 can comprise two AAA cells to provide a supply voltage of 2 to 3 volts DC. The cable port 304, which connects to the jack 22 (not shown), couples the lapel unit 20 to the hearing aids 6,8 via the Y-cable 5. Similar to the programmer 2, the cable port 304 for the lapel unit 20 comprises two pairs of lines 308,310. The first pair 308 is for the right ear hearing aid 6 and comprises a data line 308D and a clock line 308C. The second pair 310 connects to the left ear hearing aid 8 and also includes a data line 310D and a clock line 310C. The lines 308,310 are conditioned using a buffer 312. The infrared receiver circuit 306 comprises a detector 314 optimized for the infrared spectrum and a bias circuit 316 and an input level shifter 318. The input buffer 318 couples to the output of the detector 314 and to an input pin 320 on the microcomputer 300. In known manner, the input shifter 318 shifts the output signal from the detector 314 to a suitable level for the logic connected to the input pin 320 in the microcomputer 300. The bias circuit 316 sets the bias of the detector 314 to optimize the response of the detector 314. In the preferred embodiment, the bias circuit 316 includes a voltage doubler circuit indicated by 317. To achieve the optimal response from the detector 314, it is necessary to use a 5 volt supply. If the microcomputer 300 and lapel unit is being powered by a 2 volt battery supply 307, then the voltage doubler 317 is used to "up" the bias voltage to the detector 314. As shown the voltage doubler circuit 317 comprises the MAX630CSA integrated circuit indicated by 319. The circuit 319 is configured in known manner using an inductor 319i, a diode 319d and a capacitor 319c. In the preferred embodiment, an output line 322 on the microcomputer 300 is used to disable the bias circuit 316 by coupling to the circuit 319 and to an enable transistor 321. The transistor 321 connects to a terminal of the detector 314 and controls the current in the detector 314. This disable logic allows the bias circuit 316 and detector 314 to be put into a power-save mode, for example, when there are no hearing aid(s) 6,8 plugged into the lapel unit 20. The microcomputer 300 in the lapel unit 20 also includes the pair of status LEDs 26,28. The first LED 26 indicates that an infrared data stream has been received from the programmer 2. In the preferred embodiment, this status LED 26 is green and flashes under the control of the firmware in known manner, for example LED ON followed by LED OFF, can be added to indicate an incomplete reception of data from the programmer 2. The other status LED 28 is red and indicates a low battery. The battery status LED 28 is under the control of the firmware. The firmware uses the battery level detect feature of the SMC6246 to control the LED 28 via an output line 324. Similarly, the data receive LED is controlled by the firmware through another output line 326. In known manner, both LEDs 26,28 are coupled to the output lines 324,326 via respective current limiting resistors 328,330. With the previous hardware description kept in mind, the discussion will switch to the firmware routines controlling the microcomputer 200 in the programmer 2, and the routines controlling the microcomputer 300 in the lapel unit 20. The discussion first considers the structure of the firmware program stored in the ROM of the microcomputer 200 in the programmer 2, followed by the structure of the firmware in the microcomputer 300 of the lapel unit 20. Referring first to Figure 10, the top level or main loop of the firmware program resident in the programmer 2 is shown in flow-chart form. On power-up or after a reset (block 400), the firmware first goes through a start-up sequence. The start-up sequence comprises an initialize programmer procedure 402 and a programmer self-test procedure 404. Once the start-up sequence is completed, the firmware enters a service loop 406. The service loop 406 comprises a number of procedure calls to control the features associated with the programmer 2. The service loop 406 includes a reset watchdog procedure 408, an enable timer interrupt procedure 410, an enable keypad interrupt procedure 412, and an idle or halt state 414. In the idle or halt state 414, the firmware waits for an interrupt either from the keypad 14 or the on-chip timers (not shown). Once an interrupt is received, the firmware either goes into the keypad interrupt handler 416 or the timer interrupt handler 418 to service the respective interrupt. After servicing the interrupt, the firmware returns to the service loop 406 and the idle state 414. It is apparent that the service loop 406 is organized as an interrupt driven process, i.e. firmware control moves through the loop 406 in response to an interrupt from the keypad 14 or an interrupt from the on-chip timer (not shown). In another embodiment, the service loop can be implemented as a pooling loop in known manner. In a pooling loop, the keypad 14 is scanned cyclically. The timer interrupt handler 418 is shown in Figure 11(a). The timer interrupt handler 418 is called every time there is an interrupt from the on-chip timer of the microcomputer 200. As shown in Figure 11(a), the interrupt handler 418 includes calls to the reset watchdog procedure 408, and to a hearing aid connected procedure 420. The hearing aid connected procedure 420 determines if there is a right or left hearing aid 6,8 or both, i.e. a binaural fitting, connected to the Y-cable 5. The timer interrupt handler 418 also includes a power-down feature 422. The power-down feature 422 can be initiated in two ways. First, if there are no hearing aids 6,8 present, as determined by the procedure 420, then the firmware puts the programmer 2 into a power-down mode to conserve the battery supply. Secondly, the power-down mode can be entered if there is a low battery indication. The battery status is determined by first calling a check battery level procedure 424 and then an auto power-down procedure 426. The check battery procedure 424 operates with the battery level detection circuit (not shown) in the microcomputer 200 and sets a flag if the battery level is low. The power-down procedure 426 uses this flag to decide entry into the power-down mode. The reset watchdog procedure 408 resets the watchdog or sanity timer, which in the preferred embodiment is included in the microcomputer 200 on-chip resources. In software/firmware design, it is common practice to include a watchdog timer. The function of the watchdog timer is to keep the sanity of the firmware. Sanity of the firmware is ensured if the watchdog timer is reset periodically, i.e. before it times out. If the watchdog is not reset before its time-out, then the assumption is that the firmware has lost control and a power-on reset is generated by the watchdog to reboot the firmware. It will be appreciated that the watchdog timer is a last resort recovery technique, and not a substitute for sound firmware design and debugging. Referring next to Figure 11(b), the keypad interrupt handler 416 is shown as a logic flow diagram. Pressing one of the keys 50 to 64 on the keypad 14 generates an interrupt which causes the firmware to pass control to the handler 416. The first step involves disabling interrupts (block 417) so that the keypad handler 416 is not interrupted by a higher priority interrupt. Since the display 12 responds to keypad 14 presses, the next step involves enabling the display (block 419). As shown, the keypad interrupt handler 416 comprises nine decision blocks 428 to 444, one for each key 50 to 64. The function of the decision blocks 428 to 444 is to determine which key was pressed and call the procedure for servicing the pressed key. For example, if the SETTING key 56 has been identified as the pressing key using block 428, then control passes to an increment parameter service procedure (block 446). The keypad interrupt handler 416 can include a key debounce procedure (not shown). The function of the debouncer is to sample the crosspoint after a time cut to ascertain a valid keypress. If desired, the keypad handler 416 can also incorporate n-key rollover (not shown) as is known in the art. Each key 50 to 64 has its own servicing procedure. As shown in Figure 11(b), there is the increment parameter service procedure 446, a decrement parameter service procedure 448, a select right service procedure 450, a select left service procedure 452, a service A/B procedure 454, a service EAR procedure 456, a service READ procedure 458, a service SAVE procedure 460, and service CLEAR procedure 462. In the following paragraphs, the details of these procedures are discussed. The first keypad service routine considered is the increment service procedure 446 depicted in Figure 12(a). The procedure 446 performs two functions in response to the SETTING INCREASE key 56 being pressed. The first function involves transmitting the incremented parameter value to the hearing aid 6,8 which is active. The second function involves updating the associated bar chart icon 92 on the display 12. As shown in Figure 12(a), the first step indicated by block 446a is to load the transmit buffer. The next step is a conditional branch (indicated by decision block 446b) which determines the mode of data transmission, i.e. via the cable 4 or by the infrared transmitter 18 and cable 5. The conditional branch 446b tests an IR flag. If the IR flag is TRUE, then the parameter setting is transmitted to the hearing aid 6,8 via the infrared transmitter 18 and lapel unit 20 indicated by block 446c. If the IR flag is FALSE, then the parameter setting is transmitted via the cable 4, indicated by block 446d. The next step involves another conditional branch indicated by decision block 446e. This conditional block 446e tests if there was a valid data transmission. If the condition is TRUE, i.e. no data error, then the parameter setting stored in a local register (in block 446f) is incremented and the display 12 updated (in block 446g). If there was a data error, then the transmit operation is repeated. The setting decrement service procedure 448 functions in the same manner, except the increment parameter setting step 446f is replaced by a decrement parameter setting block (not shown). Considering the shift right procedure 450, the procedure 450 is called when the SELECT RIGHT key 52 is pressed. Recall that the function of the SELECT RIGHT key 52 is to select parameters 34 to 48 right of the current parameter. Referring to Figure 12(b), the procedure 450 includes six operations. The first operation (indicated by block 450a) involves transmitting the value of the previously selected parameter to the hearing aid currently being programmed. The second operation is a conditional branch (decision block 450b) and checks if there was a valid data transmission by monitoring the data packet echo from the GP521 controller. The third operation is another conditional branch (decision block 450c), which checks for a binaural fitting. If the condition is TRUE, the BIN register incremented. Otherwise, control passes to the next operation, which is also a conditional branch (decision block 450d). This conditional branch 450d determines whether the monaural hearing aid is right or left 6 or 8, and then increments the respective register. The last operation (block 450e) involves updating the position of the cursor 55 on the display 12. The position of the cursor 55 indicates which parameter 36 to 48 which is currently selected. The shift left procedure 452 functions in the same manner, except the right and left position registers are decremented. The next procedure to consider is the A/B COMPARISON service procedure 454. In response to the A/B key 64 being pressed, the A/B service procedure 454 causes the display 12 to toggle between the A and B buffers. The A/B service procedure 454 performs three principal functions. First, the procedure 454 transmits the parameter values stored in the currently active buffer. Second, the procedure 454 activates the currently inactivate buffer, i.e. A or B. Third, the procedure 454 updates the display with the parameter values stored in the newly activated A or B buffer. As shown in Figure 12(c), the A/B service procedure 454 includes two conditional branches 454a,454b, which break the program flow into three streams 454(1),454(2),454(3) corresponding to the right ear hearing aid, the left ear hearing aid and a binaural fitting. Considering first the right ear stream 454(1), the conditional branch 454a is followed by another conditional branch 454e which ascertains the active buffer, i.e. A or B. If the A buffer is active and the A/B key was pressed, then the B buffer will become the active buffer. Therefore, it is necessary to transmit to the right ear hearing aid 6 the parameter values stored in buffer B as indicated by block 454d. After transmitting the values stored in buffer B, the procedure 454 enters another conditional branch 454e which tests for a valid transmission. If the transmission was not valid, i.e. condition is false, then the contents of buffer A are transmitted to the right hearing aid 6 and control returns to the keypad service procedure 416 in blocks 454f,454g. Referring still to Figure 12(c), if the transmission was successful, i.e. condition is TRUE, then the procedure 454 selects buffer B (block 454h), and sets the A flag to FALSE and the B flag to TRUE. The procedure then updates the display 12 with the parameter values stored in buffer B in block 454i. If the B register is active, i.e. condition B, as determined by conditional branch 454e, then the same steps are followed, except that buffer A is transmitted and activated, while buffer B is deactivated. Similarly, for a left ear hearing aid 8, the same steps are implemented, except that buffers A,B for the left ear are operated on. With continued reference to Figure 12(c), the third stream 454(3) of the A/B service procedure for a binaural fitting is considered. The binaural fitting stream 454(3) is entered if the conditional branches 454a,454b are both false, i.e. right ear is not active and left ear is not active. Once in the third stream 454(3) there is a conditional branch 454j which determines the currently active register, i.e. A or B. Considering first buffer A active, the parameter settings stored in both the right buffer B and the left buffer B are transmitted to the GP521s in the right and left hearing aids 6,8 respectively (block 454k). The next step involves another conditional branch 454l which tests if the transmission of the right and left B buffer contents was successful. If the transmission was not successful, then the contents of the right and left A buffers are transmitted to the GP521s in the right and left hearing aids 6,8 respectively in block 454m, and control returns to the keypad interrupt handler 416 in block 454n. Note that for an unsuccessful transmission, the display 12 is not updated, and the contents of right and left A buffers remain on the display 12. If the transmission is successful, then the procedure 454 proceeds with activating the right and left B buffers and updating the display 12. The right and left B buffers are activated in block 454o. The next step (block 454p) involves activating the B buffer flag and deactivating the A flag. The following two steps involve updating the right ear display field 86 with contents of the right B buffer (block 454q) and updating the left ear display field with the contents of the left B buffer (block 454r). The control then returns to the keypad interrupt handler 416. If the B buffer was currently active as determined at the conditional branch 454j, then the same steps are followed, except the right and left A buffers are activated and the right and left B buffers are deactivated. Referring next to the service EAR procedure 456 shown in Figure 12(d), the procedure 456 toggles between the selecting the right and left hearing aids 6,8 and a binaural fitting. The procedure 456 involves two conditional branches 456a,456b. The first conditional branch tests if the right hearing aid 6 is selected. If the right hearing aid 6 is selected, i.e. condition is TRUE, then the left hearing aid 8 is selected. This involves setting a L-bit (block 456c), enabling a left display cursor (block 456d), blanking the right display 86 functions (block 456e), and enabling the left display field 88 functions (block 456f). Similarly, the second conditional branch (block 456b) tests if the left hearing aid 8 is selected. If the left hearing aid 8 is selected, i.e. L-bit is TRUE in block 456b, then the right display 86 is activated in a similar fashion in blocks 456g to 456j. If the condition in block 456b is FALSE, and condition in block 456a is also FALSE, then the binaural fitting flag Bi is set in block 456k. In a binaural fitting both right and left display fields 86,88 are activated (block 456m) along with the right and left cursors (block 456l). Control then returns to the keypad handler 416. The next procedure to consider is the READ key service procedure 458. In response to the READ key 62 being pressed, the READ service procedure 458 requests the current parameter values from the hearing aid 6 or 8 (stored in the RAM of the GP521s), and then secondly, updates the display 12 with the values. As shown in Figure 12(e), the first step in the procedure 458 is a conditional branch 458a which determines if there is a cable 4 attached to the programmer 2. Recall that a cable 4 is required since the infrared interface 18 only provides a transmit function to the lapel unit 20. If there is no cable 4 present, i.e. condition is FALSE, then control returns to the keypad interrupt handler 416. If the cable 4 is present, then the procedure 458 flashes the READ icon 102, sends the read command and waits for the response from the GP521 in the hearing aid 6 or 8. To flash the READ icon 102 and set a response time, the procedure 458 includes a step (block 458b) for setting a time-out counter. The next two steps (blocks 458c,458d) involve flashing the READ icon 102 and then decrementing the counter by one. Next there is a conditional branch (block 458e), if the counter value is greater than zero, i.e. not timed-out, then the read code is sent to the GP521 in the hearing aid 6 or 8 in block 458f. The next step is another conditional branch (block 458g) which verifies that there was a valid transmit/receive. If the condition is TRUE, i.e. valid transmit/receive, then the local buffers are updated with the parameter settings in block 458h, the PGLHCRXY parameter icons are turned on in block 458i, and the display 12 is updated with the received parameter settings in block 458j. If the condition is FALSE, i.e. transmit/receive not valid, then control returns to block 458c, the counter is decremented in block 458d and the transmit/receive operation (blocks 458f,458j) is repeated until the counter times out as indicated by decision block 458e. If the counter times out without a valid transmit/receive, then only the PGLHCRXY icons are turned on in block 458k, without updating the display 12, and control returns to the keypad interrupt handler 416. The next procedure discussed is the SAVE key service procedure 460. The function of the SAVE service procedure 460 is to save the current parameter settings stored in the hearing aid in response to the SAVE key 60 being pressed. Recall that for the GP521, the parameter settings are stored in RAM. To transfer them to non-volatile memory, i.e. EEPROM, it is necessary to transmit a SAVE code. As shown in Figure 12(f), the SAVE procedure 460 performs two principal functions. The first function is flashing the appropriate SAVE indicator 82 or 84 for a predetermined time on the display 12. The second function involves transmitting the SAVE code to the GP521 in the hearing aid 6 or 8. To flash the SAVE indicator 82,84, the procedure 460 first sets a time-out counter, indicated by block 460a. The next two steps (blocks 460b,460c) involve flashing the SAVE indicator 82,84 and then decrementing the time-out counter. The fourth step is a conditional branch (block 460d) which tests if the time-out counter is zero, i.e. "timed out". If the counter is zero, then the SAVE indicator is turned off as indicated by block 460e. If the counter is still active, i.e. not zero, then the save code is transmitted in block 460f. After block 460f, there is a conditional branch (block 460g) which verifies the transmission of the save code. If the transmission was successful, then the SAVE indicator 82,84 is turned off. If the transmission was not successful, control returns to block 460b of the procedure 460. It will be appreciated that the procedure 460 will attempt to transmit the save code until the counter times out in block 460d. If the transmission was successful, then the SAVE indicator 82 or 84 is turned off in block 460h, and control is returned to the keypad interrupt handler 416. In the preferred embodiment of the invention, the last key handled by the keypad interrupt handler 416 is the CLEAR key 66. In response to the CLEAR key 66 being pressed, the CLEAR key service procedure 462 is called. The CLEAR procedure 462 performs two principal functions. First, the procedure 462 clears the right and left hearing aid controllers. Second, the procedure 462 initializes the display 12 and clears the local A and B buffers, and sets certain default flag values as will be discussed. The CLEAR key service procedure 462 is shown in Figure 12(g). The first step (block 462a) involves transmitting the clear codes to the GP521 controllers in the right and left hearing aids 6,8. This step is followed by a conditional branch (block 462b) which tests if the transmission was successful. If the condition is false, then control is returned to the keypad interrupt handler 416. If the transmission of the clear codes was successful, then control proceeds to the next step which involves clearing the parameter values (block 462c) on the display 12, followed by flashing the scale (block 462d). The next step involves clearing the contents of the parameter registers (block 462e). This is followed by setting the A buffers to active in block 462f and the default active ear to the right ear in block 462g. The current function is set the power parameter in block 462h. The last operation involves updating the display in block 462i. This results in the default active functions being displayed, i.e. right ear selected 78, A buffer, power parameter (P). Control then returns to the keypad interrupt handler. As discussed, the lapel unit 20 also has a microcontroller 300 with its own firmware. The top level loop of the firmware is shown in Figure 13. The overall structure of the firmware in the lapel unit 20 is somewhat similar to that in the programmer 2. After a power-up or reset, the first step involves an initialization operation indicated by block 502. The initialization procedure 502 is within the capability of one skilled in the art of firmware design. The next step involves running a lapel unit self-test or diagnostics procedure 504. This also is known to one skilled in the art. The firmware then enters a service loop 506. The next two operations involve resetting the watchdog timer (block 508) and enabling the timer interrupt (block 510) which are similar to blocks 408,410 described for the firmware in the programmer 2. The next operation (block 512) involves enabling the interrupt for the infrared receive 306. Recall that for the lapel unit 20 data can only be received from the programmer 2 via the infrared receiver 24. In the preferred embodiment, an interrupt is generated when a data packet is received from the programmer 2. After the above operations are completed, the firmware enters a halt or idle mode indicated by block 514. The firmware remains in the halt mode until another interrupt is generated. An interrupt in the firmware of the lapel unit 20 can originate from two sources. The first interrupt source is the on-chip timer, and the second is the infrared receiver 24. Considering first the timer interrupt, when a timer interrupt is generated, control switches to the timer interrupt handler indicated by block 516. The timer interrupt handler 516 is shown in Figure 14(a). In known manner, the first step in block 516a involves disabling the interrupts so that the handler 516 itself cannot be interrupted by a higher priority interrupt. The second step involves a conditional branch in block 516b which involves testing for the presence of a hearing aid(s) 6,8. If there are no hearing aids 6 or 8 connected to the lapel unit 20, the handler 516 decrements a no-hearing aid counter 516c which is followed by a conditional branch 516d to test the value of the no-hearing aid counter, i.e. block 516d. It will be appreciated that since the timer interrupt handler 516 is called in response to the timer interrupt, the no-hearing aid counter value is a multiple of the time-out value for the on-chip timer. If the conditional branch (block 516d) is true, i.e. the no-hearing aid timer has timed out, then the infrared receiver 24 is disabled by turning off transistor 321 (block 516e). The infrared receiver circuit 306 is also put into a power-down mode by disabling the supply voltage (block 516f) via the voltage doubler 317, i.e. using output line 322 on the microcontroller 300. The last step, in this no-hearing aid time out mode, is to mask, i.e. disable, the infrared interface interrupt in block 516g. After enabling interrupts in block 516h, control then returns to the service loop 406 of the firmware. This is also the case if the no-hearing aid counter has timed out. If hearing aid(s) 6 or 8 are present (block 516b is TRUE), then, as shown in Figure 14(a), the next operation involves enabling the supply voltage to the infrared receiver 24 in block 516i. The following step involves enabling the infrared receiver 24 in block 516j by turning transistor 321 on via output line 322 and enabling the interrupt for the infrared interface in block 516k. This is followed by setting the initial or counter value for the no-hearing aid counter in block 516l. The last step before returning to the main level is to enable the interrupts in block 516h, recall the interrupts were disabled when the handler was entered in block 516a. The next and final procedure considered is the infrared receiver interrupt handler 518. As mentioned above, an interrupt is generated with reception of the start bit in the data packet from the programmer 2. The interrupt causes control to switch to the interrupt handler 518 which is shown in Figure 14(b). The first operation in the handler 518 involves fetching the incoming character in block 518a from the infrared receiver circuit 306. Recall that the data received by the infrared interface 306 is read into the microcontroller 300 on input line 320. It will be appreciated by one skilled in firmware design that fetching the incoming character is a separate procedure whose operation depends on the data packet structure. In known manner, the data packet can include marker bits, parity and step bits. In the preferred embodiment, the data packet includes an ear bit (not shown). The firmware uses the ear bit to route the received command to the appropriate hearing aid 6 or 8. Referring still to Figure 14(b), the next operation involves transmitting the received data to the right or left ear hearing aid 6 or 8 as indicated by the ear bit. The ear bit determines on which line pair 310 or 308 the data is transmitted, i.e. data right ear 308D or data left ear 310D. In known manner, the received data is formatted and transmitted according to the protocol required by the GP521 controller in the hearing aid 6,8 (block 518b). The following operation is a conditional branch, indicated by decision block 518c, which tests for a valid data transfer to the hearing aid 6,8 via the data packet echo feature of the GP521 controller. If there is an invalid data transfer, the green LED 26 is flashed in block 518d. Otherwise, control returns to a conditional branch (block 518e) which determines if the complete packet has been sent to the hearing aid. If the entire packet has been sent, then control returns to the main level, otherwise the transmit sequence in blocks 518c,518d is repeated. In the previous discussion, the implementation of the programmer 2 and lapel unit 20 and the corresponding firmware was described for use with the GP521 hearing instrument controller manufactured by Gennum Corporation. It will be appreciated that the present invention is easily adaptable to any of the other programmable hearing aid controllers currently available such as the Phox, 3M Memorymate, Widex Quattro, Siemens Triton, etc. To accommodate the other hearing aid controllers, the firmware can include additional modules. These modules can be activated either by handshaking with the hearing aid controller via the cable 4, or by a special key sequence, for example, pushing the A/B, EAR and CLEAR keys 64,50,66 at the same time. Furthermore, it will be evident to those skilled in the art that other embodiments of the invention fall within its scope as defined by the following claims.

Claims: An electronic programmer (2) for programming two hearing aids (6,8) said hearing aids (6,8) being capable of fitting in or on a patient's right ear or left ear, and each of said hearing aids (6,8) including a programmable controller for setting a plurality of audio signal parameters (34,36,38,40,42,44,46,48) which determine the performance characteristics of each of said hearing aids (6.8), said programmer (2) comprising: (a) data entry means (14) for programming a set of values for the audio signal parameters (34,36,38,40,42,44,46,48), and (b) display means (12) for displaying the values for the audio signal parameters (34,36,38,40,42,44,46,48), said display means (12) comprising a plurality of display fields, characterized in that said display means (12) includes: (i) a right ear display field (86) for simultaneously displaying, graphically, a set of values for said plurality of the audio signal parameters (34,36,38,40,42,44,46,48) associated with the hearing aid (6) fitted in the patient's right ear, and (ii) a left ear display field (88) for simultaneously displaying, graphically, a set of values for said plurality of the audio signal parameters (34,36,38,40,42,44,46,48) associated with the hearing aid (8) fitted in the patient's left ear, said left and right ear fields being displayed adjacent each other and at the same time, and in that the programmer further comprises : (c) controller means, coupled to said display means (12) and said data entry means (14), for controlling said display means (12), said controller means including communication means for communicating with the programmable controller in each of said hearing aids (6,8) and for causing said data entry means (14) to programme said set of values either for the hearing aid (6) fitted in the patient's right ear or the hearing aid (8) fitted in the patient's left ear, so that while said set of values for one hearing aid (6,8) is being programmed, said sets of values for both hearing aids are displayed adjacent to each other and at the same time. A programmer (2) according to claim 1, wherein the values of said audio signal parameters (34,36,38,40,42,44,46,48) are displayed in said right and left ear display fields (86,88) in the form of bar charts. A programmer (2) according to claim 1, wherein said left and right ear display fields (86,88) are located beside one another and include a plurality of sub-display fields for displaying the individual values of the audio signal parameters (34,36,38,40,42,44,46,48), said audio signal parameters comprising power output, gain, low tone cut, high tone cut, compression threshold, release time, and two auxiliary parameters. A programmer (2) according to claims 1,2 or 3, wherein said plurality of display fields includes a right ear programming icon (70) for indicating when the hearing aid (6) in the patient's right ear is being programmed, and a left ear programming icon for indicating when the hearing aid (8) in the patient's left ear is being programmed. A programmer (2) according to claim 1,wherein said plurality of display fields includes a right ear numeric readout (92R) for displaying the numeric value of a selected audio signal parameter associated with the hearing aid (6) in the patient's right ear, and a left ear numeric readout (92L) for displaying the numeric value of a selected audio signal parameter associated with the hearing aid (8) in the patient's left car. A programmer (2) according to claim 1, wherein said controller means includes buffer means for storing a first set of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) and a second set of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) for each of said hearing aids (6, 8), and wherein said controller means includes sending means which, (a) in a monaural fitting, selectively communicates one of said first and second sets of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) to the programmable controller in the associated hearing aid (6 or 8), or (b) in a binaural fitting, selectively communicates one of said first and second sets of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) to the programmable controllers in each of the respective hearing aids (6, 8), and said controller means further includes toggling means for toggling between said first and second sets of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) in a monaural or binaural fitting, and in a binaural fitting for causing the selected one of said first and second sets of values for the audio signal parameters (34, 36, 38, 40, 42, 44, 46, 48) to be displayed in the respective right or left ear display field (86, 88), and in a monaural fitting for causing the other of said first and second sets of values to be displayed in the other of the right or left ear display field (86, 88). A programmer (2) according to claim 6, wherein said display means (12) includes an A/B activity icon (98) for indicating which of said first and second sets is being displayed for each of said hearing aids (6, 8).

Inventors: ARNDT HORST, CECCARELLI MAURICE, DARKES PAUL, MURRAY DANIEL, STORK MICHAEL, ARNDT, HORST, CECCARELLI,MAURICE, DARKES,PAUL, MURRAY,DANIEL, STORK,MICHAEL
Applicants: UNITRON IND LTD, UNITRON INDUSTRIES LTD.
Application year: 1992
Main classification: H04R25
IPC codes: H04R25