Abstract:
A controller for a video surveillance camera enclosure including a method and apparatus for controlling a stepper motor by decoding a command for a specific camera action, setting the state of a state machine, and instructing a position control process and a speed control process based upon the state of the state machine. A drive signal is send from said position control process to a motor current process and a phase control process to generate the current and phase signals to control the stepper motor. The stepper motor drive current is preferably a non-linear current. The speed control signal includes ramp up and ramp down speed control for gradually increasing motor speed and gradually decreasing motor speed, respectively. Another aspect of the invention detects a plurality of pan and/or tilt positions to reset the pan and/or tilt motor step count to a known count associated with a known location without the need to pan and/or tilt past a preselected home position. Another aspect controls a dome enclosure heater to operate over two different thermostat ranges to provide for manual de-fogging of the dome bubble.

Description:
CROSS REFERENCES TO RELATED APPLICATIONS 
     Not Applicable 
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT 
     Not Applicable 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     This invention relates to video surveillance cameras, and more particularly to an improved enclosure and mounting chassis for a video surveillance camera and improved operation and control for an associated pan and tilt video surveillance camera assembly. 
     2. Description of the Related Art 
     Presently, installation, set-up, and servicing of video surveillance camera enclosures, commonly called dome cameras, are relatively difficult and time consuming. Installation of the surveillance camera requires assembly of the camera chassis into the enclosure at the installation site to accommodate cable connection and data addressing. In addition, servicing of installed cameras often requires partial, if not complete disassembly of the camera chassis, which results in increased repair time and costs. 
     An improved video surveillance camera enclosure is desired, which reduces the time and costs associated with installation and service. 
     BRIEF SUMMARY OF THE INVENTION 
     One aspect of the present invention is an apparatus and method for controlling a stepper motor in a video surveillance camera dome that includes decoding a command for a specific camera action. Setting the state of a state machine based upon the decoded command. Instructing a position control process and a speed control process based upon the state of the state machine. The speed control process sends a speed control signal to the position control process. A drive signal is send from said position control process to a motor current process and a phase control process to generate the current and phase signals to control the stepper motor. The state machine can include a manual mode in which instructions to the position control process and the speed control process are the camera speed and direction. The state machine can include a target mode in which instructions to the position control process and a speed control process include a desired camera location. The stepper motor drive current is preferably a non-linear current. The speed control signal includes ramp up and ramp down speed control for gradually increasing motor speed and gradually decreasing motor speed, respectively. 
     A second aspect of the invention is an apparatus and method for detecting a plurality of pan positions in a stepper motor driven panable video surveillance camera of the type having a home sensor and detector to detect a home pan position and setting a pan motor step count to a known value at the home position. A plurality of position sensors and a home sensor are placed in a spaced relation on a slip ring assembly of the panable video surveillance camera. Each of the position sensors and the home sensor are detected by a detector positioned in a preselected location during panning of the video surveillance camera, each of the position sensors and the home sensor have an associated desired pan motor step count when they are detected. The pan motor step count is reset to the desired motor step count at each of the position sensor locations and the home sensor location when they are detected. During panning of the video surveillance camera where the camera is not panned through a full pan range of motion to detect the home sensor, at least one of the position sensors is detected and used to reset the pan motor step count to the desired pan motor step count. The difference between the desired pan motor step count and the pan motor step count is determined at each of the position sensor locations and the home sensor location when they are detected. The difference in the desired step count to the motor step count at each of the position sensor locations and the home sensor location is stored when detected. Resetting the pan motor step count to the desired motor step can be performed in a complex programmable logic device instead of a microprocessor to reduce delay errors. 
     A third aspect of the invention is an apparatus and method for detecting a plurality of tilt positions in a stepper motor driven tiltable video surveillance camera of the type having a home sensor and detector to detect a home tilt position and setting a tilt motor step count to a known value at the home position. A plurality of position sensors and a home sensor are placed in a spaced relation on a tilt assembly of the tiltable video surveillance camera. Each of the position sensors and the home sensor are detected by a detector positioned in a preselected location during tilting of the video surveillance camera, each of the position sensors and the home sensor have an associated desired tilt motor step count when they are detected. The tilt motor step count is reset to the desired motor step count at each of the position sensor locations and the home sensor location when they are detected. During tilting of the video surveillance camera where the camera is not tilted through a full pan range of motion to detect the home sensor, at least one of the position sensors is detected and used to reset the tilt motor step count to the desired tilt motor step count. The difference between the desired tilt motor step count and the tilt motor step count is determined at each of the position sensor locations and the home sensor location when they are detected. The difference in the desired step count to the motor step count at each of the position sensor locations and the home sensor location is stored when detected. Resetting the tilt motor step count to the desired motor step is performed in a complex programmable logic device instead of a microprocessor to reduce delay errors. 
     A fourth aspect of the invention is an apparatus and method for controlling a heater in a video surveillance camera housing by first measuring a temperature within the video surveillance camera housing. The heater element within the housing is deactivated if a first thermostat is active. The heater element is activated if a second thermostat is not active. The heater element is activated if the second thermostat is active and a heater timer is on. The heater element is activated and the heater timer is turned on if the second thermostat is active and a heater manual request is received, and the heater element is deactivated if the heater manual request is not received. The first thermostat and the second thermostat are active when the temperature goes higher than about 5 degrees above a first and a second set temperature, respectively. 
     Objectives, advantages, and applications of the present invention will be made apparent by the following detailed description of embodiments of the invention. 
    
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         FIG. 1  is an exploded lower perspective view of one embodiment of the present invention. 
         FIG. 2  is an exploded upper perspective view of one embodiment of the present invention. 
         FIG. 3  is an exploded upper perspective view of one embodiment of the video surveillance camera chassis of the present invention. 
         FIG. 4  is partial cross-sectional view taken along line  44  in FIG.  3 . 
         FIG. 5  is an exploded lower perspective view of an alternate embodiment of the present invention with heater for outdoor applications. 
         FIG. 6  an exploded upper perspective view of the embodiment of FIG.  5 . 
         FIG. 7  is an exploded perspective view of the heater assembly used with the embodiment of FIG.  5 . 
         FIG. 8  is a block diagram of the controller for the present invention. 
         FIG. 9  is a partial view of the armature of a stepper motor used with the present invention. 
         FIG. 10  is a flow chart of the logic control process for pan motor control. 
         FIG. 11  is a block diagram of a state machine associated with that shown in FIG.  10 . 
         FIG. 12  is a partial view of the tilt assembly and tilt home sensor used with the present invention. 
         FIG. 13  is a partial view of the pan slip ring assembly and pan home sensor used with the present invention. 
         FIG. 14  is a flow chart for the heater control program of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring to  FIG. 1 , one embodiment of the present invention is illustrated at  2 . Pan and tilt video camera assembly  4  is installed on video surveillance camera chassis  6 . Chassis  6  is inserted into video surveillance camera housing  8  as illustrated and as fully described hereinbelow. Camera housing  8  is adapted to be inserted into a suitable opening in a ceiling (not shown). As illustrated in this example, housing  8  is shaped substantially like a cylinder and the corresponding opening in the ceiling must be substantially circular and sized large enough in diameter to receive housing  8  but smaller in diameter than flange  10 . Flange  10  will thus rest against the lower surface of the ceiling at the perimeter of the opening when housing  8  is inserted therein. Housing  8  includes a plurality of mounting clamps  12  around the circumference of housing  8 , each positioned on a threaded fastener  13 . Mounting clamps  12  have a first position substantially flush with the exterior of housing  8  to facilitate insertion of housing  8  into the opening in the ceiling. 
     Referring to  FIG. 2 , once housing  8  is inserted into the opening in the ceiling, threaded fasteners  13  are screwed into threaded nut  14  which moves mounting clamps  12  into a second position substantially perpendicular to housing  8  as illustrated. As threaded fasteners  13  are further screwed into nuts  14 , mounting clamps  12  move closer to flange  10  and will engage the upper surface of the ceiling at the perimeter of the opening. The perimeter of the ceiling member adjacent the opening will be captured in the space  15  between flange  10  and mounting clamps  12 , and can be secured therein with additional movement of mounting clamps  12  by further screw adjustment of fasteners  13 . Cover  16  can be used to protect the upper portion of housing  8 , including connectors  18 , from potential dirt and debris in the ceiling, and as may be required by code in certain installations. As fully described hereinbelow, connectors  18  allow easy connection to the wiring of a video surveillance camera system, which can consist of one or more video monitors and/or one or more video recording devices (not shown). An optical quality dome cover or bubble  20 , which can be injection molded, can be installed at the lower end of housing  8 . 
     Referring again to  FIG. 1 , a plurality of positioning members  22  on chassis  6  assist in the installation of chassis  6  into housing  8 . Positioning members  6  have a guide channel  23  that receives and engages corresponding alignment flanges  24  positioned on the interior of housing  8  to guide chassis  6  into housing  8 . For reasons that will become apparent, positioning members  22  and alignment flanges  24  are adapted so that chassis  6  can only be inserted into housing  8  in one preselected orientation. In this example, three positioning members  22  unevenly spaced about chassis  6  are used with corresponding alignment flanges  24  to place chassis  6  in the desired preselected position within housing  8 . However, it is envisioned that any number of positioning members  22  and alignment flanges  24  can be strategically mounted and used to guide chassis  6  into the desired position within housing  8 . 
     Referring to  FIG. 3 , chassis  6  includes printed circuit board (PCB)  26  for interfacing pan and tilt camera assembly  4  and other electrical systems such as pan motor  25  and fan  27  to a video camera surveillance system. PCB  26  is connected to chassis  6  in a fixed orientation and includes blind mating connector  28 , which mates with a second blind mating connector located on the inside of housing  8  (not shown). Blind mating connectors mate without the need for the installer to see the connectors. 
     Chassis  6  will typically be inserted into housing  8 , after housing  8  has been installed in a ceiling. Housing  8  will be electrically connected to a video camera surveillance system via connectors  18 . Chassis  6  is electrically connected to a second blind mating connector within housing  8 , which is electrically connected to connectors  18 . Positioning members  22  and alignment flanges  24  orient chassis  6  and PCB  26  so that blind mating connector  28  is properly aligned with the second blind mating connector within housing  8 . If chassis  6  is pushed upward into housing  8  to mate blind mating connector  28  with the second blind mating connector on the interior of housing  8 , the force is transferred directed to housing  8  and to the ceiling member to which housing  8  is attached. Too much force could be applied to the ceiling member, especially if the ceiling member is made of a fibrous tile typically used in drop ceilings. To prevent that occurring, each positioning member  22  includes a shoulder member  30 , which engages each corresponding flange  24  to capture and suspend chassis  6  in a pre-connected, hands-free position prior to final connection as described below. 
     Referring to  FIG. 4 , a cross-sectional view of a positioning member  22  illustrates shoulder member  30  having a shoulder  31  that engages flange  24  (shown in fantom). Shoulder members  30  can be biased against flange  24  and engage flanges  24  with an audible “click” so that an installer knows when chassis  6  is captured in place within housing  8 . Once captured and suspended in the pre-connected position, threaded fasteners  32  thread into corresponding threaded apertures  33  in flanges  24 , shown in FIG.  1 . Upon tightening fasteners  32  into threaded apertures  33 , chassis  6  is pulled further into housing  8  and blind mating connector  28  is mated with the second blind mating connector in the interior of housing  8  until fully seated. Therefore, the force of insertion of chassis  6  into housing  8  for final connection of the blind mating connectors, is not transferred to the ceiling, but is retained fully within housing  8  by fasteners  32  pulling into threaded apertures  33  and pulling chassis  6  into housing  8 . 
     Referring to  FIGS. 5 and 6 , housing  40 , which is identical to housing  8  except mounting clamps  12  are not needed, is installed in an enclosure  42  instead of being enclosed within a ceiling. Chassis  6  in inserted into housing  40  in the same manner as described above for housing  8 . Connectors  18  are shown extending out of housing  40  as part of blind mating cable assembly or pigtail  44  and are not connected to the housing as shown in FIG.  2 . Pigtail  44  extends from a blind mating connector within housing  40  (not shown) that connects to blind mating connector  28  on PCB  26 . Pigtail  44  can be used in both housing  8  and housing  40  embodiments. In housing  8 , pigtail  44  is coiled within housing  8  and all the connectors are mounted on housing  8 , and in housing  40 , pigtail  44  extends outside of housing  40  and only the blind mating connector is mounted within housing  40 . Using pigtail  44  with both housing  8  and housing  40  embodiments reduces the number of inventory items required, and reduces manufacturing costs. Pigtail  44  extends through enclosure  42  and connectors  18  mate with connectors on the wiring harness of a video surveillance camera system. Optical quality dome bubble  46  can be installed at the lower end of housing  40 . 
     Referring to  FIG. 7 , if enclosure  42  is used in an outdoor installation, fan and heater assembly  48  can be connected to chassis  6 , as shown in  FIG. 5. A  plurality of apertures  52  on chassis  6  and fan  27  in conjunction with vents  54  (shown in  FIG. 3 ) assist fans  50  with air circulation through chassis  6 . Fans  50  circulate air across the interior surface of dome bubble  46 , through apertures  52 , across printed circuit board  26 , across pan motor  25 , and across thermostatically controllable heater  55 . The air flow within housing  40  and across dome bubble  46  distributes heat evenly throughout housing  40 , cooling the pan motor  25  and PCB  26  in warm weather, and defogging and deicing dome bubble  46  in humid and cold weather. The air flows unidirectionally in a similar manner to that disclosed in U.S. Pat. No. 6,061,087, the disclosure of which is incorporated herein by reference. With the improvement herein being that the air flows across the interior of the dome bubble, and across printed circuit board  26  and pan motor  25 . Fan  27  assists fans  50  in the air flow across printed circuit board  26  and pan motor  25 . Caps  53  as shown in  FIG. 1  can be used to cap apertures  52  for indoor installations. 
     Referring back to  FIG. 3 , switches  56  are used to select the appropriate address for the video camera assembly  4  for proper interface with the video surveillance camera system. The video surveillance camera system may have many cameras and each must have a unique address for proper control and monitoring. During installation of the dome camera, switches  56  must be selected to correspond to the correct address for the particular dome camera placement within the video surveillance system. For enclosure  42 , switches  56  are positioned on PCB  26  so that selection of the proper address can be selected through aperture  58 . Therefore, enclosure  42 , housing  40 , chassis  6 , and dome bubble  46  can be fully assembled at the factory, shipped, and installed without the need to disassemble to reach the switches  56  at the installation site. For ceiling mounted installations, the switches are also easily switched and the proper address selected through a suitable opening  57  in the top portion of housing  8 , as shown in FIG.  2 . 
     PCB  26  can include one or more LEDs (not shown), or other light emitting device, used for camera set-up and servicing. The LEDs can be different colors and/or positions. The LEDs must be viewed while the camera assembly  4  is energized and are positioned on the lower side of PCB  26 . To enable an installer to view the LEDs from below the chassis  6  and camera assembly  4  when it is installed in housing  8  or housing  40 , an LED view port  60  extends from adjacent each LED on PCB  26  to an unobstructed position on the lower side of chassis  6 . The glow from the LED can thus be seen from below the installed camera assembly. The LED view port  60  can be funnel shaped as illustrated in  FIG. 3  to more easily view the LED from below. 
     Referring to  FIG. 8 , a block diagram of the controller for the present invention is illustrated. Signals travel between the video surveillance camera system and PCB  26  through blind mating cable assembly/pigtail  44 , which is connected to blind mating connector  28  as described hereinabove. Communications interface  100  automatically detects what data communications protocol is being transmitted to the camera dome and automatically configures the dome to operate according to the protocol received. Microprocessor  102  is powered by power supply  104 , and is initialized by power-up reset circuit  106 . One or more address switches  56  provide manual selection of an appropriate address for a particular installation. Microprocessor  102  decodes instructions from the video surveillance camera system and controls functions within the camera dome via bus connection to complex programmable logic device (CPLD)  108  and CPLD  110 , to volatile SRAM memory  112 , and to non-volatile flash memory  114 . Microprocessor  102  is also connected to diagnostic connector  116 , which enables diagnostic connection to the hardware and software resident on PCB  26 . CPLD  108  is connected to dual thermostat  118 , heater driver  120 , which is connected to heater element  55 , and further described hereinbelow. CPLD  108  is also connected to alarm input and relay interface  122 , a 9 VDC regulator  124 , and to line lock  126 , which synchronizes camera  128  and other cameras (not shown) that may be in use in the video surveillance camera system. CPLD  110  is connected to tilt motor pulse width modulation (PWM) controller  130 , pan motor PWM controller  132 , tilt home sensor  134  and pan home sensor  136 . Tilt motor PWM controller  130  is connected to tilt motor  138 ; pan motor PWM controller  132  is connected to pan motor  25 . Tilt motor  138  and pan motor  25  are stepper motors. Camera  128 , tilt home sensor  134 , and tilt motor  138  are mounted on pan and tilt assembly  4 . 
     Motor control logic within CPLD  110 , which controls the pan and tilt camera movements and their pointing position, controls the stepper motors  138  and  25  with a method that provides smoother movement then would be provided by fully energizing each phase of the motors in sequence. CPLD controls tilt motor  138  and pan motor  25  by providing control signals to tilt PWM controller  130  and pan PWM controller  132 , respectively. Pan and tilt PWM controllers  130  and  132  can be PWM universal motor drivers such as sold by STMicroelectronics, part number L6258. The motor control logic provides for each phase of the motors ( 138  and  25 ) to be slowly de-energized as the next sequential phase is gradually energized. This causes the motor armatures to be magnetically drawn to a point between the two electromagnetic phase poles of the motor. This point is determined by the intensities of the two electromagnetic poles. This technique is referred to as micro-stepping. 
     Referring to  FIG. 9 , a portion of pan stepper motor  25  is illustrated. Tilt motor  138  is identical, and will not be separately described. Energizing the electromagnetic poles numbered 1′, 2′, 3′, and 4′, in the sequence 1′, 2′, 3′, 4′, 1′, 2′, 3′, . . . the motor  25  will step in the forward direction. The sequence 4′, 3′, 2′, 1′, 4′, 3′, . . . will cause backwards rotation. The bars shown on armature  175  are iron poles 1″, 2″, 3″, and 4″ of armature  175  that are attracted to the electromagnetic poles 1′ through 4′ when the electromagnetic poles are energized. It should be understood that the sequence of electromagnetic poles and iron poles continue around the motor in a circle. 
     To illustrate clockwise or forward operation of the motor, electromagnetic pole 1′ is energized so that it draws iron pole 1″ as close as possible, until it is directly under it as shown. When pole 2′ is energized, the iron pole 2″ near it will be drawn in alignment with pole 2′, and thus the motor will move one step. In micro-stepping, two poles are energized at the same time. If poles 1′ and 2′ are energized simultaneously, iron poles 1″ and 2″ and the armature  175  will be positioned somewhere between step  1  and step  2  depending on how much each pole is energized. The nature of magnetics provides a higher pulling force when the attracted objects (poles) are close and exponentially less when they are further away. By using a non-linear algorithm to energize and de-energize the motor poles, the motor movement can be made to be substantially linear. The non-linear algorithm also has the effect of making the motor torque uniform between micro-steps. By spreading the torque uniformly between micro-steps the ramped changes in motor speed, as described hereinbelow, are optimized to be as fast as possible for a given motor drive current. 
     Because motors  138  and  25  are stepper motors, camera pan and tilt position is determined by counting micro-steps of the motors from home sensor positions. The motor control logic synchronizes the micro-step count directly with the pan and tilt home position sensors  136  and  134  without going through the stepper motor control program which is located in microprocessor  102 . By having the synchronization done directly by the motor control logic within CPLD  110 , the inaccuracies caused by microprocessor processing delays are eliminated. The motor control logic of synchronizing the micro-step count is referred to as an auto-home feature. 
     The motor control logic within CLPD  110  includes integrity checks that watch for, and correct any missed steps causing the camera to not be pointing where expected. Missed steps can occur if a belt or gear jumps teeth, or if a motor is advanced or held up, which causes the motor armature not to advance in synchronization with the magnetic step changes. These anomalies can occur from something out of the ordinary, such as if the camera pan and tilt mechanism is bumped, jogged, or obstructed. The integrity check assures that the motors, and hence camera  128 , are pointing correctly. The motor control logic within CPLD  110  provides exact return to a camera position by storing the micro-step position count of each motor  138  and  25  with respect to the home position. The position counts are read into microprocessor  102  and stored in non-volatile memory  114 . By synchronizing to this reference upon subsequent tun-on, camera  128  pan and tilt positions can be returned to the exact micro-step count position. This allows camera  128  to return precisely to a defined micro-step position. In addition, operational errors can be stored in non-volatile memory  114 . For example, tilt and pan positional errors can be stored. Errors can be stored in registers within the CLPDs, which are written to the non-volatile memory  114  when microprocessor  102  receives a reset command or detects a power fail condition. The stored information is beneficial in trouble-shooting problems and improving the reliability of the dome camera. 
     In operation, a camera may be pointed toward a particular sector that does not allow the camera to pass by the home position and home sensors. Multiple home sensors can be located at several positions on the pan and/or tilt mechanisms to permit detection when the pan and/or tilt mechanism does not pass through the home position. For example, during pan, the pan home sensor could be augmented with a plurality of detectable sensors, each positioned to be detectable during various sector scans, as fully described hereinbelow. 
     Referring to  FIG. 10 , the programmed logic processes within CPLD  110  (shown in  FIG. 8 ) for pan motor control are shown. The programmed logic processes for tilt motor control are analogous and will not be separately described. Command decode  200  decodes commands received from microprocessor  102 . State machine  202  receives decoded commands  201  from command decode  200 . The command  201  can be a manual mode command or a target mode command. In manual mode, an operator is manually controlling the camera such as with a joystick or track ball. In target mode, the camera is being instructed to proceed to a preselected position. 
     The pan state machine  202  will be fully described referring to FIG.  11 . The state machine will start at idle  204 . The next state of state machine  202  will be either manual mode ramp up (MM RU)  205 , target mode ramp up (TM RU)  206 , or home mode  212 . Ramp up means the motor will increase speed up to a steady state speed. If the motor is brought up to full speed too quickly, the motor can miss steps due to inertia. This effect occurs with all conventional stepper motors. Therefore, the motor speed is ramped up from stop or from a lower level to a higher steady state speed. From MM RU  205  and from TM RU  206  the next state for state machine  202  is manual mode steady state (MM SS)  207  and target mode steady state (TM SS)  208 , respectively. 
     For manual mode commands, from MM SS  207 , the next state is manual mode ramp down (MM RD)  209  or MM RU  205 . MM RD  209  ramps the motor speed down from a first steady state speed to a second steady state speed, which is lower than the first steady state speed. As illustrated in  FIG. 11 , from MM SS  207 , the speed can be ramped up at MM RU  205  or ramped down at MM RD  209 , or stopped  210 . After stop  210 , the state machine  202  returns to idle state  204 , to wait for a new command. 
     For target mode commands, from TM SS  208  the next state can be target mode break (TM BRK)  211 . TM BRK  211  corresponds to a position that indicates that the target position is about to be reached and the motor must begin a ramp down to stop at the target position, and then returns to idle  204 . Depending on how far the target position is from the current position, the steady state speed TM SS  208  may not be reached, and the TM RU  206  state will proceed directly to TM BRK  211 . Upon initial power-up the motor is directed to the home position mode  212 , and then goes to stop  210  and idle  204 . 
     Referring again to  FIG. 10 , speed control process  214  and position control process  216  constantly monitor the state machine  202  for changes in state. When speed control process  214  receives ramp up and ramp down commands it compares the current speed at  217 , which could be zero, with the desired speed, and transmits a speed control clock pulse  219  to position control process  216 . Position control process  216  issues control signals to control the motor current  220  and motor phase  222 , which control the motor position, speed, and direction. Position control process  216  receives a desired position, direction, and speed for target mode and a desired direction and speed for manual mode. Position control process  216  keeps track of the motor position by counting clock pulses  219 . Motor current control  220  and motor phase control  222 , which are part of CPLD  110 , send the motor control signals to pan motor PWM control  132 , as shown in FIG.  8 . As fully described hereinabove and with reference to  FIG. 9 , the motors are driven with a non-linear drive current, which results in an even distribution of torque and optimizes the speed and smoothness of the motor. 
     Home edge/drift detection  224  receives a signal from pan home sensor  136  each time the home position is detected and sends a signal to position control process  216 . If the pan home position is defined as step/micro-step  0 , every time home detector  224  signals that the pan home sensor  136  has detected the home position, position control  216  should be at step count 0. If position control process  216  is not at the correct home step count, the step count is reset to 0, and the step error is sent to microprocessor  102  to log the step error in non-volatile memory  114 . 
     Referring to  FIG. 12 , one embodiment for tilt home sensor  134  is illustrated mounted on printed circuit board  179 , along with position tabs  180 ,  181 ,  182 , and  183  on a portion of tilt assembly  185 . Position tab  180  and printed circuit board  179  are also illustrated in FIG.  5 . In this embodiment, tilt home sensor  134  is photo sensor that senses when a tab  180 - 183  passes through a beam of light that is incident on sensor  134 . Home tabs  180  and  183  can be identified because they are larger in size than tabs  181  and  182 , and break the beam of light for a longer period of time. Tabs  181  and  182  are sized differently from each other, as are tabs  180  and  183  so that sensor  134  can differentiate each tab. Home tab positions  180  and  183  will be assigned a specified micro-step count corresponding to a tilt of 0 degrees to 90 degrees. Smaller position tabs  181  and  182  are used to detect a known tilt position (micro-step) that is intermediate of home tabs  180  and  182  so that the position of tilt motor  138  can be verified when it is tilted through a small sector. The position of motor  138  can be verified even if kept in a small sector and not tilted through home for a period of time. Any number and size of position tabs can be placed upon tilt assembly  185 . 
     Referring to  FIG. 13 , one embodiment for pan home sensor  136  is illustrated along with slip ring sections  186 ,  187 , and  188  on a portion of pan slip ring assembly  189 . In this embodiment, pan home sensor  136  can have one or more armatures  190  that are biased onto slip ring assembly  189 . Pan home sensor  136  detects when armature  190  makes contact with slip ring sections  186 ,  187 , and  188 . Slip ring sections  186 ,  187 , and  188  can be conductive sections mounted upon a nonconductive region of slip ring assembly  189 . Alternately, slip ring sections  186 ,  187 , and  188  can be nonconductive sections mounted upon a conductive region of slip ring assembly  189 . Slip ring section  186  is larger than slip ring sections  187  and  188  to indicate the true home position, and slip ring sections  187  and  188  are different in size so that sensor  136  can differentiate each position. Slip ring sections  187  and  188  are used to verify the position of pan motor  25  when it does not pass through the true home position, such as during sector scanning through a sector of less than 360 degrees. 
     Interrupt enable and error process  226  sends interrupts to microprocessor  102  for various preselected error and status conditions. For example, when a pan or tilt home position error is detected, an interrupt will be generated telling the microprocessor  102  to store the step error in non-volatile memory  14 . Interrupts can also be generated for status of the motors, such as when the pan or tilt motor stops. 
     Referring to FIG.  14  and again to  FIG. 8 , the heater control program within CPLD  108  for reading dual thermostat  118  and controlling heater driver  120 , which turns on heater element  55  will now be described. Once the program is initialized at  230 , the status of thermostat T 1  is checked at  232 , if the temperature is above a selected maximum temperature, the heater is turned off at  234 . T 1  can be set to prevent the dome from becoming too hot. Thermostat T 1  and T 2  will go active when the temperature goes higher than 5 degrees above the set temperature, and will stay active until the temperature goes below the exact set point. If thermostat T 1  and  12  are not active, which occurs whenever the temperature is below a selected minimum temperature, the heater is turned on at  238 . If thermostat T 2  is active, and the heater timer is on at  240 , the heater will be turned on, or will remain on at  238 . If the heater timer is not on at  240 , and a heater manual request is not received at  242 , the heater will turn off at  234 . If the heater timer is not on at  240 , and a heater manual request is received at  242 , the heater timer will be turned on at  244 , and the heater will be turned on at  238 . 
     The manual heater mode is in addition to the automatic thermostat control, and can be used by an operator to defog or defrost an outdoor dome bubble. The heater timer prevents heat from being applied to a dome for a sustained period of time. Thermostat T 1  can be set to, for example, about 35.7 degrees C., with about 5 degrees of hysteresis so that it turns the heater element on at about 35.7, but will not turn off until 40.7 degrees C. T 2 , can be set to about 21.8 degrees C., with about 5 degrees of hysteresis so that it turns on at 21.8, but will not turn off until 26.8 degrees C. In effect, if the heater timer is on at  240 , then the heater element is controlled by thermostat T 1 , and if not, thermostat T 2  controls the heater element. The user can thus manually select a higher temperature range for a pre-set amount of time. This will cause the dome internal temperature to rise to the new level, therefore the air blowing over the bubble will be warmer by about 14 degrees for the numbers used hereinabove, for example. 
     De-fogging is accomplished by switching between the two thermostats T 1  and T 2  by manually cycling the heater on and off over a period of time. This will cause a large temperature change within the dome causing the moisture saturated air inside the dome to expand and exit through the mounting openings. When the cycle reverses, the air inside contracts bringing in cold dry external air which is then heated and is no longer saturated with moisture. The de-fogging can be accomplished automatically by cycling between the two thermostats T 1  and T 2 . 
     It is to be understood that variations and modifications of the present invention can be made without departing from the scope of the invention. It is also to be understood that the scope of the invention is not to be interpreted as limited to the specific embodiments disclosed herein, but only in accordance with the appended claims when read in light of the forgoing disclosure.