as illustrated in fig1 through 8 , the present invention is directed toward a mechanism which can automatically raise and lower an automobile convertible top . as can be appreciated by those of ordinary skill in the art , while each different type of automobile requires a different convertible top suited to the particular vehicle , the concepts disclosed herein are equally applicable to a wide variety of configurations . in the presently preferred embodiment , the portions of vehicle 10 of interest for the purposes of this discussion are the convertible top 12 which is stored in a compartment beneath a tonneau cover 14 , the rear quarter windows 16 and the front side windows 20 . also , although not specifically shown in the drawings , the vehicle has a trunk lid located rearward of the tonneau cover . generally , the tonneau cover 14 must be raised and the windows 16 , 20 must be lowered before the convertible top 12 is lowered or raised . this insures that the top 12 will be properly stored in the compartment beneath the tonneau cover 14 and also insures that the windows 16 , 20 are clear of the top 12 as it moves , thereby preventing damage . similarly , the trunk lid generally should not be opened when the tonneau cover 14 is raised . more particularly , the lowering , or retracting , of the convertible top occurs in the following manner . in this embodiment , the convertible top cannot be raised or lowered unless the vehicle is stopped . this prevents the driver from accidentally moving the top while under way , and can be accomplished several ways . one way is to determine whether the transmission shift lever is in &# 34 ; park ,&# 34 ; and another way involves measuring wheel speeds and / or vehicle speed to see if the speed is zero . since the transmission shift lever position , wheel speeds and / or vehicle speed are already monitored on most cars to accomplish other functions such as engine fuel management and anti - lock braking , tapping into one or more of these signals would be fairly simple for one of ordinary skill . with the car stopped , the first step , as shown in fig1 involves unlatching the top 12 from the header 22 . in this embodiment , screw motors unhook j - hooks latched to the header 22 . this is disclosed in assignee &# 39 ; s issued u . s . pat . no . 5 , 058 , 939 , the disclosure of which is hereby incorporated by reference . however , it can also be appreciated that other forms of latches could be used . additionally , the latches could be manual , with conventional sensors to indicate whether the person operating the car has yet unlatched the latches . next , to prevent accidental collisions between components , the trunk lock release is disabled to prevent the trunk lid from being opened into the path of the moving tonneau cover 14 and / or top stack 12 . once the latches are unlatched and the trunk release disabled , the rest of the movements necessary to lower the top 12 can commence . the next movement in the sequence , shown in fig2 is the raising of the rear bow 24 so that the tonneau cover 14 can be raised , and the lowering of the forward side windows 20 and rear quarter windows 16 . the forward side windows 20 and rear quarter windows 16 are lowered to allow the top to move freely without worry of damaging the windows 16 , 20 . in this embodiment , the windows have an &# 34 ; express down &# 34 ; feature which permit the windows to be lowered completely after only holding down the window control button for a few seconds . since express down requires special circuitry to allow such a feature , the control system of the presently preferred embodiment exploits this circuitry to accomplish the automatic lowering of the windows when the convertible top is set in motion . once the rear bow 24 reaches a position clear of the sweep path of the tonneau cover 14 , the tonneau cover begins raising , as shown in fig3 . next , once the tonneau cover 14 reaches a position clear of the sweep path of the rear bow 24 , the rear bow lowers , as shown in fig4 and the main rail of the convertible top 26 begins lowering into the compartment 28 beneath the tonneau cover 14 , as shown in fig5 - 7 . finally , once the top is retracted into the compartment 28 and is clear of the sweep path of the tonneau cover 14 , as shown in fig7 the tonneau cover 14 is lowered to cover the compartment 28 , and the windows raised as shown in fig8 . to raise the convertible top 12 , the sequence of movements are simply reversed . the linkages forming the support frame of the convertible top and the motors used to move the linkage can be of conventional design , such as disclosed in u . s . pat . nos . 3 , 180 , 675 and 3 , 312 , 058 . in order to provide the unique control of this invention which allows the various elements , such as the latches , rear bow 24 , tonneau cover 14 and main rail 26 to move in a fluid , simultaneous fashion , a unique arrangement of sensors is provided . as illustrated in fig9 each top stack position sensor in the preferred embodiment takes the form of a rotary variable resistance device or potentiometer 30 mounted at the pivot point of a pair of elements or links . when mounted at a pivot point between links , the sensor senses the relative position of one link with respect to the other . similarly , when mounted at a pivot point between a link and the vehicle &# 39 ; s chassis , the sensor senses the relative position of the link with respect to the chassis . it can thus be appreciated that these sensors should be provided at each critical pivot point in the mechanism . here , applicants have discovered that only three top stack position sensors are required to achieve full control of the top . the three critical points of relative movement requiring sensing are : 1 ) the position of the rear bow 24 with respect to the main rail 26 ; 2 ) the position of the main rail 26 with respect to the vehicle chassis , or body ; and 3 ) the position of the tonneau cover 14 with respect to the vehicle body . the position sensors are mounted at these three critical pivot point 31 , 32 and 33 . for example , as detailed in fig9 the sensor provided at the pivot point 31 of the rear bow 24 is shown diagrammatically in greater detail . here it can be seen how the potentiometer 30 measures the relative position between the rear bow 24 and the main rail 26 . the pivot point sensors are electrically connected to the controller 34 which monitors the positional information provided by the sensors ( i . e . voltage or amperage ) and , in response to these signals , commands the movement of the convertible top 12 . in this embodiment , cantilevered dc motors move the various elements , although it should be appreciated that other motive means could be utilized , such as , for example , hydraulic motors . however , dc motors have been selected for several reasons . first , the power draw of a dc motor is directly proportional to motor torque . this allows the loading of the motor to be monitored to protect against overburdening the motor . second , dc motors can be manually back - driven more easily than can hydraulic mechanisms . this helps ensure manual override of the system can be effected in the event the system fails . in order to move the tonneau cover 14 , rear bow 24 and main rail 26 , the movement of the dc motors is governed by the controller 34 . as illustrated , the rear bow motor 36 raises and lowers the rear bow 24 , and the rear bow potentiometer 30 measures the relative angular position of the rear bow 24 with respect to the main rail 26 . in response to the detected position of the rear bow , as well as the positions of the other elements , the controller 34 issues commands to the rear bow motor 36 to raise or lower the rear bow 24 as needed . the other motors are similarly controlled . likewise , the control of the windows involves the use of window drive motors and window position sensors which detect whether the windows are in the full up or full down position . the interaction of the controller 34 , dc motors , sensors and various interlocks can be better understood by referencing the flow charts of fig1 and 11 . the controller 34 is powered by the vehicle &# 39 ; s electrical system , and includes driver circuits for providing current to the motors , a / d converters for sensing the stall condition of the motors and for the instantaneous positional information provided by the potentiometers and position sensors , and command input lines for receiving and interpreting the &# 34 ; top up &# 34 ; or &# 34 ; top down &# 34 ; signals issued by the automobile driver through the up / down switches 38 , all of which are interfaced to a microprocessor . it can be appreciated by those of ordinary skill in the art that the electronics and circuitry comprising the controller 34 can take a variety of forms , however the microprocessor , converters and drivers selected for this embodiment provide a convenient means by which to execute the invention . in this embodiment , the controller 34 monitors the linkage element positional information provided by the sensors to determine the instantaneous position of the linkage elements . it also monitors sensors associated with latches , interlocks and position switches to determine positional and status information of components such as the header and rear bow latches , the trunk release solenoid , the windows and whether or not the vehicle is stopped . the controller 34 also monitors for a stall condition at the motors to determine if a motor is being unduly loaded , such as would occur if the linkage being driven by the motor were jammed . within the logic circuitry of the microprocessor of the controller 34 are instructions for interpreting the monitored information and for directing current to the motors to drive the motors in accordance with the action desired by the automobile driver . in this embodiment , the driver is provided with &# 34 ; up &# 34 ; and &# 34 ; down &# 34 ; buttons located on the dashboard . these directional control buttons 38 are electrically linked to the controller 34 and determine which sequence of movements of the convertible top 12 are desired . as shown in fig1 , the general control system logic progresses in the following manner . if the driver presses the &# 34 ; up &# 34 ; button and the top 12 is already fully raised , no action is taken , as indicated by function block 50 and action nmenomic 52 . similarly , if the &# 34 ; down &# 34 ; button is pressed while the top 12 is fully lowered , no action is taken 60 , 62 . however , the normal course of events would be that the &# 34 ; down &# 34 ; button is pressed when the top 12 is up , and the &# 34 ; up &# 34 ; button pressed when the top 12 is down . it should be noted that , in this embodiment , the driver must continue to depress the &# 34 ; down &# 34 ; button for the top 12 to continue moving down , and must continue pressing the &# 34 ; up &# 34 ; button for the top to continue moving up . this allows the driver to pause or even reverse movement of the top by simply releasing the button and pressing the opposite direction . one of ordinary skill can appreciate that the driver may wish pause movement of the top to perform other tasks , or may wish to reverse movement of the top if he changes his mind about opening or closing the top . when the top is up 50 and the &# 34 ; down &# 34 ; button is pressed , the controller 34 senses the directional command desired by the automobile driver and begins initiating the sequence of movements necessary to lower the top 12 . first , provided the vehicle is stopped , the j - hooks are unlatched , the windows are lowered and the rear bow 24 is raised 70 until the positional sensors indicate that the rear bow is in the up position and the tonneau cover is in the down position 72 . provided the &# 34 ; down &# 34 ; button is still being depressed , the next action is to raise the tonneau cover 74 . the positional information provided by the sensors should then be that the rear bow , main rail and tonneau cover are in the up position 76 . now that the tonneau cover is clear , the rear bow is lowered 78 , leaving the main rail and tonneau cover up 80 . next , the main rail is lowered 82 , leaving only the tonneau cover in the up position 84 . finally , the tonneau cover is lowered and the windows raised 86 , completing the lowering 60 of the convertible top 12 . of course , as was previously disclosed , none of these movements would be allowed to take place unless the car is stopped . likewise , the trunk release would be disabled to prevent accidental opening of the trunk during these movements . to raise the convertible top 12 , the process is simply reversed . thus , the controller senses the &# 34 ; up &# 34 ; command issued by the automobile driver and begins the sequence of actions necessary for raising the top 12 . first , the tonneau cover is raised and windows lowered 90 , leaving the main rail and rear bow in the down position but the tonneau cover in the up position 84 . once the tonneau cover is clear , the main rail is raised 92 so that both the tonneau cover and main rail are in the up position 80 . next , the rear bow is raised 94 so that all elements are in the up position 76 . once the rear bow is clear of the sweep path , the tonneau cover is lowered 96 , leaving the main rail and rear bow up 72 . finally , the rear bow lowers , the j - hooks latch and the windows raise 98 , completing the sequence of motions necessary to raise the top . as shown in fig1 , the actual logic process includes the steps of initializing the controller upon power - up 100 and resetting the logic control sequence 102 . next , the controller determines the status of the vehicle parameters , reads the position sensor and directional command switch information 104 , and determines the position of the linkage elements with respect to the directional command desired 106 . based upon this information , the proper movement in the sequence of movements is selected 110 and commanded 112 - 124 . it can be appreciated from this diagram that while each given motion sequence is executed 112 - 124 , the controller returns to the beginning of the control logic sequence and reassesses the positional and direction information 104 , 106 in order to determine 110 the next desired motion 112 - 124 . since people normally only open the convertible top of an automobile when the weather is pleasant , the top may remain up and the motorized convertible top mechanism remain inactive for long periods of time , such as during the winter . because of this , the presently preferred embodiment employs current wetting during the initialization step 100 . during current wetting , a short burst of electrical current is sent through the motor driver circuitry . this short burst of current is not enough to actually energize the system and cause movement , but is rather designed to ensure the various connectors and relay contact points do not become corroded during their period of dormancy . for example , the up / down button 38 , being a mechanical device , swipes away any buildup every time the driver depresses the button . however , since the connectors are rarely disengaged to inspect for and remove buildup , the current wetting pulse travelling through the connectors during each and every initialization sequence helps retard the growth of buildup . moreover , the controller can monitor the response to the current wetting pulse to help detect circuit interruptions , such as opens or shorts , during initialization . also , it should be appreciated that , prior to executing a selected action 110 , the controller 34 first ensures that the vehicle is stopped . presuming that the vehicle is equipped with wheel speed sensors , the vehicle is considered stopped when the wheel speeds are all zero . furthermore , once movement of the convertible top is undertaken and until the top reaches the fully opened ( fig1 ) or fully closed ( fig8 ) positions , the trunk lid release is disabled . this prevents the driver from accidentally releasing the trunk lid while the convertible top is in motion , and helps prevent damage to both the convertible top and the trunk lid . the presently preferred embodiment further includes an interlock which interfaces with the automobile &# 39 ; s alarm system . when the convertible top is either fully up or fully down , a signal indicating such is transmitted from the convertible top controller 34 to external devices , such as the auto alarm system . for example , in the presently preferred embodiment , when the convertible top controller 34 senses that the top stack is fully up , an &# 34 ; up &# 34 ; relay is latched . the latching of the relay can thereafter be monitored by external devices , such as the alarm system , so that appropriate action may be taken . in the case of an auto alarm , information as to whether the top stack is fully up or fully down may be used to affect the alarm mode . finally , the convertible top controller 34 provides information to other vehicle controllers via the vehicle &# 39 ; s controller bus . this allows alert messages to be displayed to the driver and enables the other vehicle controllers to modify operating characteristics as needed to accommodate the actions of the convertible top . in practice , the control logic progresses as described in conjunction with fig1 , with the additional features of detecting improper linkage positioning and / or excessive motor loading , and selects the motion sequence 112 - 124 necessary to remedy the situation . thus , for example , if the controller 34 is currently commanding the tonneau cover to raise 112 and a stall condition is detected at the motor driving the tonneau cover , the controller stops the motor 102 and reassesses the positional information 104 to determine if another action is required . similarly , in the event that the tonneau cover is being raised 112 but the rear bow slips into the path of the tonneau cover , the positional information 104 will reveal this potentially damaging situation and initiate the raising of the rear bow to insure the tonneau cover has proper clearance to move . finally , in the event that an unrecoverable error occurs , the up and down buttons can be depressed simultaneously 130 to reset the system . upon resetting , qualified service personnel can access the controller 34 and receive error information such as whether one of the sensors has become grounded or shorted or whether one of the motors is experiencing difficulty . thus , service can be provided more quickly and cheaply because the convertible top system is self - diagnosing . more particularly , the error detection and logging scheme employed in the presently preferred embodiment utilizes several unique concepts . first , instantaneous position information can be utilized to allow overlapping , or simultaneous , movements . second , the instantaneous position information can be used to determine whether the top is moving as desired or if an error has occurred . third , the instantaneous position information allows the controller to command those precise movements necessary to achieve the fluid opening and closing of the top without risking accidental overlap collisions between elements . finally , the instantaneous position information allows the controller to initiate remedial action in the event an overlap condition or stall condition is detected . first , the manner in which instantaneous positions are monitored will be described in greater detail . for any two given elements , there exists a range of positions where the sweep path of the elements intersect . outside of these ranges , the elements can move freely without worry of collision . however , within that range , care must be taken to avoid accidental collision between simultaneously moving elements . in this embodiment , the elements which have intersecting sweep paths are the rear bow and the tonneau , the main rail and the tonneau , and the main rail and header latch . additionally , the controller should be aware of the latched state of the header and rear bow latches . for the various top stack elements , the ranges of motion can be categorized into four states : the first state corresponding to a first extreme position , the last state corresponding to the opposite extreme position , and the second and third states corresponding to the beginning and end , respectively , of the range where the element &# 39 ; s sweep path intersects another element &# 39 ; s sweep path . for example , as measured by the potentiometers , the lowest possible position is given a state definition of &# 34 ; state 0 &# 34 ;. likewise , the upper most position is given a state definition of &# 34 ; state 3 &# 34 ;. when moving from low to high , the point at which overlap starts is given a state definition of &# 34 ; state 1 &# 34 ; and the position where overlap ceases is given a state definition of &# 34 ; state 2 &# 34 ;. using the state definitions of 0 through 3 , it can be appreciated by one of ordinary skill in the art that binary coding may be used to represent these states . thus , the low position is represented by binary code 00 , the lower boundary of the overlap range represented by 01 , the upper boundary of the overlap range represented by 10 , and the upper most position by 11 . for elements such as the windows , wheel speeds , header latch and rear bow latch , a binary code of simply 0 for down , stopped , or unlatched and 1 up , moving or for latched , respectively , will suffice . using these state definitions , a hexadecimal status word can be formed . the status word formed by the logic process of the presently preferred embodiment is an 8 - bit word where while it is convenient to use an 8 - bit word as the status word , it can be appreciated by one of ordinary skill in the art that the order of the status bits could be changed and the number of status bits in the status word could be increased or decreased to provide information regarding other status items . for example , in an alternative embodiment , a status bit is provided to indicate whether the vehicle is stopped ( 0 for moving , 1 for stopped ) instead of the header latch status bit . using a status word format , every possible combination of positions can be described as a two digit hexadecimal number . for example , with the convertible top up and the rear bow latched , the status word would read 40 , or 01000000 , which corresponds to as can be appreciated , in this example , the header latch status bit equalling 0 when the convertible top is fully up and latched would indicate that the header latch is not monitored . if the car were equipped with a header latch which was monitored , the status word would be 11000000 , or co in hexadecimal . using the status bit to form status words , the top down sequence , by state , can be represented as follows : ______________________________________11000000 c0 top is up , header is latched and rear bow is latched01000000 40 top is still up , unlatch header , leave rear bow latched00000000 00 now unlatch rear bow00000100 04 rear bow starts raising up and is now in overlap region00001000 08 rear bow continues raising00001101 0d rear bow finishes going up , while tonneau cover starts raising up00001110 0e tonneau cover continues raising and is now in overlap region00011111 1f tonneau finishes going up , while main rail starts to lower00101111 2f main rail continues lowering and is now in overlap region00111110 3e main rail finishes lowering , while tonneau cover starts to lower00111101 3d tonneau cover continues lowering and is now in overlap region00111100 3c top is down01111100 7c top is down and tonneau cover is latched______________________________________ similarly , the top up sequence , by state , can be represented as follows : ______________________________________01111100 7c top is down and tonneau cover latched00111100 3c unlatch tonneau cover00111101 3d start raising tonneau cover00111110 3e continue raising tonneau cover00101111 2f finish raisins tonneau cover , while main rail starts raising00011111 1f continue raising main rail00001110 0e finish raising main rail , while tonneau cover begins lowering00001101 0d continue lowering tonneau cover00001000 08 finish lowering tonneau , while rear bow starts lowering00000100 04 continue lowering rear bow00000000 00 top is up10000000 80 latch header11000000 c0 latch tonneau cover______________________________________ using this scheme , the instantaneous position can be readily interpreted and examined to ensure undesirable overlapping collisions do not occur . specifically , a table can be implemented in software where , for every possible combination of movements , the next proper movement can be charted . this can be better understood by referencing chart 1 , below . __________________________________________________________________________0x 1x 2x 3x 4x 5x 6x 7x 8x 9x ax bx cx dx ex fx__________________________________________________________________________x0 dn04 dn00 dn00 dn40 up80 upc0 upc0 upxxx1 ed03x2 ed03x3 ed0fx4 dn08 ed18 up00x5 ed08x6 ed07 eu0ax7 eu0b ed0bx8 dn0d ed1d up04x9 ed0c ed08xa ed0e eu0exb ed0f eu0fxc ed0f dn7c dnxx edrr eu08 up3d up3c eurrxd dn0e ed1e dn3c up08 up3exe dn1f ed1f dn3d up0d up2fxf ed1f dn2f dn3e eu0c up0e up1f__________________________________________________________________________ from the foregoing , it can be appreciated that the &# 34 ; dnnn &# 34 ; entries correspond to the next state desired when lowering the top , while the &# 34 ; upnn &# 34 ; entries correspond to the next state desired when raising the top . for example , by examining cell &# 34 ; 1f ,&# 34 ; it can be seen that the next desired state is 2f when lowering the top and is 0e when raising the top . the dnxx and upxx entries correspond to positions which terminate the lowering and raising sequences , respectively , thus , 7c correspond to the top being fully down , while c0 corresponds to the top being fully up and latched . while a separate error operation table may be provided , it can be appreciated that a single table can include both normal and error operations handling states . here , a single table is employed because it conserves controller memory , which is often be a precious resource when dealing with microcomputers . these error corrective position and movements are denoted with &# 34 ; eunn &# 34 ; and &# 34 ; ednn &# 34 ;, where &# 34 ; eu &# 34 ; stands for a position error detected while moving the top up , and &# 34 ; ed &# 34 ; for a position error detected while moving down . as shown in the operation state table , for example , a state of 00001001 , or 09 in hexadecimal , when the top is going down corresponds to the rear bow not having raised beyond the sweep path of the tonneau cover , while the tonneau has entered the sweep path of the rear bow . this means that a potential collision exists , or may have already occurred , between the rear bow and the tonneau cover , which is undesirable . in this instance , to correct the improper positioning , the rear bow should be raised and the tonneau cover should be lowered . thus , the desired state found in the error operation table in cell entry 09 is ed0c , which corresponds to moving the rear bow until it is fully up and moving the tonneau cover fully down . as can be seen , for those error states from where recovery may be feasible , the next , or recovery , state is charted . thus , the state table provide information for both normal operations and error handling operations . also , there are position error states for which recovery should not be attempted . these are denoted as &# 34 ; eurr &# 34 ; and &# 34 ; edrr .&# 34 ; for these unrecoverable states , the position information indicates that the components are so misaligned as to indicate the system has already become too misaligned to attempt recovery , or that the position detectors have become instable or have failed . in either instance , because the system should not attempt to correct the error , any state of &# 34 ; rr &# 34 ; causes a fault code to be logged . the movement and error states illustrated here were provided for the purposes of explanation , and should not be construed as constituting the entire state definition table or of constituting the only manner in which monitored positional information and desired actions can be cataloged . moreover , the building of a state table is well within the ordinary skill in the art . based upon the state table definitions , the motors for the tonneau cover , rear bow , and main rail are driven either forward or backward to achieve the desired motions . for example , in cell 0e the next desired state when lowering the top is &# 34 ; dn1f .&# 34 ; consequently , the motor movements necessary to achieve &# 34 ; dn1f &# 34 ; include energizing the tonneau cover motor to continue raising the tonneau cover , and energizing the main rail motor to begin lowering the main rail . it can be appreciated that each next state command has a unique combination of motor movements necessary to achieve that state . in addition to monitoring the instantaneous position of the various elements to detect and correct misalignments , the presently preferred embodiment also monitors the motors to detect stall conditions . here , a stall exists whenever the motor power draw , which is proportional to motor torque , exceeds a predetermined threshold for more than a predetermined amount of time . whether or not a motor is stalled is used by the controller in several ways . first , when the motor is moving its associated control element to an extreme position , a detected motor stall indicates that the element has reached the desired extreme position . for example , when raising the convertible top , the main rail motor rotates the main rail from the retracted to the fully extended position . as the controller commands the motor to move the main rail to the fully extended position , the instantaneous position information provided by the main rail potentiometer provides an indication of the position of the main rail . however , by including the main rail motor stall condition , the controller can , with a greater degree of certainty , conclude that the main rail has achieved the full up position . this is because when the main rail potentiometer indicates the main rail has reached the full up position , the main rail should indeed be fully up and incapable of being extended up further by the main rail motor . therefore , the stall reading on the motor serves to confirm the positional information . in a similar fashion , a stall condition detected at a motor when the potentiometer indicates that the monitored element is at an intermediate position is an indication that a misalignment condition may exist . for example , when lowering the convertible top , the rear bow must move up and out of the way before the tonneau cover can be raised to expose the boot well . therefore , the detection of a stall condition on the tonneau cover motor when the tonneau cover is at an intermediate position serves to confirm the positional information from the rear bow indicating that it is also at an intermediate position and has collided with the tonneau cover . moreover , the detected stall conditions on the motors is used to generate error logging information when , despite attempts to initiate remedial action to correct a misalignment , the controller detects that the motor remains stalled nonetheless . such a situation indicates that remedial action will not be successful , and that the convertible top has either become misaligned or one of the linkage points has become jammed so that the convertible top can no longer be reliably retracted and extended automatically . finally , the motor stall condition can be used as a calibration variable . in this mode , a particular convertible top element is cycled between the fully extended and fully retracted positions . by determining the potentiometer position information corresponding to the positions where the motor stalls , the controller can calibrate the potentiometer position value information corresponding to the element &# 39 ; s extreme positions . employing this calibration feature reduces the need for the potentiometer to be precisely placed during assembly , instead allowing the controller to adapt to the particular characteristics of the convertible top system . in the event an abnormal position is sensed from which recovery should not be attempted or from which recovery was attempted but was unsuccessful , the controller generates error logging information . the error logging information is stored by the controller so that service personnel can interrogate the controller regarding the error , which assists the service technician in pinpointing the problem . in this embodiment , the error logging information is prioritized according to the rank of the error . more serious errors are given a higher rank than less serious errors . however , errors , regardless of rank , which occur during the operation of the convertible top over time are logged in memory so that service personal may interrogate the information to provide accurate diagnosis of potential or existing difficulties . specifically , when an error is detected , the error is assigned a rank . next , the controller interrogates the error logging information to determine if that error has been previously logged . if the fault has not been previously logged , a counter associated with that fault is incremented but the fault is not yet technically logged . this feature avoids the logging of an error condition when the error was the result of an aberration rather than an actual error condition . therefore , only once an error is detected and its error counter indicates that it has already occurred at least once before the error is logged . the controller stores error logging information in non - volatile memory , allowing the error information to be retained between ignition cycles . therefore , the error log may include information about errors which have occurred days , weeks , or even months earlier . however , as in the case of all memory devices , the memory in which the error logging information is stored is limited . therefore , as one of ordinary skill in the art can appreciate , once the error logging buffer becomes filled , the controller must decide between deleting old error information or failing to record the current information . in this embodiment , in the event the error log buffer becomes filled , lower rank errors are deleted in favor of storing higher ranked errors . to further conserve the error logging memory , the presently preferred embodiment does not permit the logging of a low rank error condition unless it has occurred at least two more times after it is first detected . this is in contrast to the logging of higher rank errors , which are logged on the first subsequent occurrence after the error has been detected . the logging of higher and lower rank error codes are further prioritized by the assigning of error occurrence counts . as was just discussed , the error log buffer has only a limited amount of space in which to record error information . therefore , an error log counter is provided which counts the number of error codes logged in the memory . for lower rank errors , the error log counter is incremented by one . however , for higher ranked errors , the error log counter is incremented by ten for each occurrence logged . in this manner , higher rank errors effectively &# 34 ; fill - up &# 34 ; the error log more quickly than less serious errors . by way of example , assuming the error log can retain information on up to 255 error codes , incrementing the error log counter by 10 every time a high rank error occurs means that the error log counter will indicate the error log buffer is full once 25 high rank errors have been logged . in contrast , it would take 255 lower rank errors for the error log counter to indicate the error log has been filled - up . as such , once the error log buffer begins filling up , and as lower rank errors are deleted from the list in favor of higher rank errors , the error log buffer will eventually log only the most serious of errors . this discrimination process increases the likelihood that the service technician will diagnose and remedy the more serious errors , rather than being distracted by information regarding the less serious errors . in practice , it has generally been found that later occurrences of higher rank errors provide more accurate fault diagnosis information than early occurrences of less serious errors . the foregoing description of the presently preferred embodiment has been provided for the purposes of illustration . therefore , one of ordinary skill in the art can appreciate that modifications could be made without departing from the spirit or scope of the invention disclosed herein .