Patent Document

CROSS-REFERENCE TO RELATED APPLICATIONS 
       [0001]    This application claims priority from U.S. Provisional Patent Application No. 61/786,534 filed on Mar. 15, 2013, which is incorporated herein by reference in its entirety. 
     
    
     STATEMENT REGARDING FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT 
       [0002]    Not Applicable. 
       REFERENCE TO A SEQUENCE LISTING 
       [0003]    Not Applicable. 
       BACKGROUND 
       [0004]    1. Field 
         [0005]    The application relates to locking containers, specifically to an improved time-locking container for self-control purposes, and to a method for its use. 
         [0006]    2. Prior Art 
         [0007]    U.S. Pat. No. 186,369 is the original patent for a mechanical time and combination lock, intended for bank vaults. This design is still commonly used today. U.S. Pat. No. 3,950,678 is an electronic time vault lock using digital logic. U.S. Pat. Nos. 4,875,351 and 5,387,903 are microcontroller-based time locks. All of these designs are optimized for bank vaults and/or store safes, and none have the features required for self-control applications. 
         [0008]    U.S. Pat. No. 5,203,472 is an electronic timed cigarette dispenser intended to taper the user off tobacco addiction, and this patent cites older mechanical prior art in the field of restrictive smoking cessation devices. These are designed only for cigarettes, are too small to store alcohol or food, and are easily forced open. 
         [0009]    U.S. Pat. No. 6,825,753 B2 is a novelty-type locking pyramid that can be set to open at a programmed date and time, provide a festive display of flashing lights and sound effects, and reveal contents such as a gift. It has no early open or scheduling options beyond a single unlock time; the open time cannot be extended while locked; and it is not secure. 
         [0010]    None of the prior art meets the need for a small, easy-to-use, secure container with specific features to enable self-control, as opposed to secure storage of money or valuables. Existing time-locked safes are large, expensive, and made for commercial use. The clock display and input device are usually found on the inside of the door, meaning that the user cannot see the future unlocking time, or extend the unlocking time, while the safe is locked. These safes are usually complex to install, program, and operate, so that a locksmith is typically required. Such safes do not include features specifically designed for the self-control user. 
       SUMMARY 
       [0011]    Many people have difficulty controlling behaviors, such as eating, drinking alcohol, smoking tobacco, or spending money. Most people with such difficulties express the desire to limit their future behavior, but are unable to do so. 
         [0012]    One method of assisting such an individual in limiting an addictive or compulsive behavior is to deny his or her access to the substance or object used to indulge in the behavior. 
         [0013]    The present device is an electronic precommitment device which allows a person to self-limit future access to one or more objects or substances until a predetermined date and time, or until a predetermined delay has elapsed since the user entered an access request. The device includes a variety of features intended specifically to promote self-control, which differentiate it from a traditional time-locking storage container or safe. Methods of use are also described. 
         [0014]    In one embodiment of the device, the container can store a schedule of unlocking times, and can relock itself until the next scheduled unlocking time if a predetermined access period, for example one hour, is exceeded and opening has not been requested. This ensures that, if the user did not access the container&#39;s contents during the unlocked period, they are not left available indefinitely. 
         [0015]    In another aspect of the device, the user may optionally enable an early open function, called a Cooldown period. When Cooldown is requested, the container will permit opening only after an unlocking delay time period elapses, and will deny opening after the relocking delay time period elapses. The Cooldown feature allows the user to satisfy an occasional, severe, and long-lasting craving, while allowing time for a short-lived craving to fade. 
         [0016]    In another aspect of the device, called Extend While Locked, the user can manually set the unlocking time to a later date and time while the container is locked. The user cannot set the unlocking time to an earlier date and time. This allows the user, when he or she feels guilt due to recent overindulgence, to further delay his or her access to the items within the container, without facing the temptation of an unlocked door. 
         [0017]    In another aspect of the device, if the user attempts to lock the container for longer than a user-specified duration, the device can display a Confirm Before Lock prompt giving the lockout duration in days, and wait for affirmative user input before locking. This feature prevents an accidental prolonged lockout. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0018]    A more complete understanding of the present device can be obtained by considering the detailed description in conjunction with the accompanying drawings, in which: 
           [0019]      FIG. 1  shows an isometric external view, according to an exemplary embodiment of the device. 
           [0020]      FIG. 2  shows the mechanical and electrical components located on the inside panel of the container door, according to an exemplary embodiment of the device. 
           [0021]      FIG. 3  shows an electrical schematic, according to an exemplary embodiment of the device. 
           [0022]      FIG. 4  shows the mechanical and electrical components of an alternative motor-driven unit, according to an exemplary embodiment of the device. 
           [0023]      FIG. 5  shows the electrical schematic of the motor drive circuit for the alternative motor-driven unit, according to an exemplary embodiment of the device. 
           [0024]      FIG. 6  shows the various status pages shown on the device&#39;s display, according to an exemplary embodiment of the device. 
           [0025]      FIG. 7  shows the various configuration pages used to set up the unit, according to an exemplary embodiment of the device. 
           [0026]      FIG. 8  shows the flowchart of the system, according to an exemplary embodiment of the device. 
       
    
    
     DETAILED DESCRIPTION 
       [0027]    An exemplary embodiment  101  is shown in  FIG. 1 . The container is a metal safe  102  of the type commonly used to store valuables, with a body and a door. The door panel  107  of the safe incorporates a display  103 , a keypad  104 , a bypass key lock  105 , and an opening knob  106 . The bypass key lock is shown with its removable cover plate removed. 
         [0028]    To open the container, the user presses one of the bottom row buttons (*, 0, or #) on the keypad  104 , causing the display  103  to illuminate and display the status of the device. If the device is not time-locked, the display prompts the user to enter a numeric combination access code and press the # key. If the combination entered matches the combination stored in the device&#39;s memory, the container permits access by electrically actuating its door releasing solenoid. The user then turns the knob  106  clockwise and pulls to swing the door open. 
         [0029]    To close the safe, the user pushes the door closed and turns the knob  106  counter-clockwise to engage the boltwork and internal latch. 
         [0030]    Bypass lock  105  is a standard pin tumbler or tubular lock. If the safe&#39;s battery is depleted or the user loses the combination, the bypass key may be inserted into the lock  105  and turned, then knob  106  turned to open the safe. Since this safe is intended for self-control purposes, the user should store the key at a remote location or with a trusted third party. The user may also purchase the safe without a key. In this case, a lock number will be provided, so that a matching key can be cut later if one is required. 
         [0031]    While the device is unlocked, the user can press a special key combination to set the current time, the unlocking time, and other settings. The user can time lock the safe by pressing the # key. 
         [0032]      FIG. 2  shows the mechanical and electrical components of the exemplary embodiment  201 , as seen from the inside of the safe door  202 , with its covers removed. 
         [0033]    Hinges  204  and hinge pins  203  attach the door to the safe. Bolts  205  are affixed to a movable plate  230 , and pass through holes in a fixed plate  231  which is affixed to the safe door  202 , so that when the door is closed and the bolts are extended, the door cannot be opened until the bolts are retracted. 
         [0034]    Movable plate  230  is affixed at a right angle to sliding plate  216 . Pin  217  is affixed to the safe door and passes through notch  219  in plate  216 . Washer  218  holds plate  216  parallel to the safe door  202  while leaving it free to slide back and forth, thus moving the bolts. 
         [0035]    Shaft  221  extends through a hole in the safe door and attaches to knob  106  on the front of the safe. Wheel  220  is affixed to shaft  221 . Notch  222  is cut in plate  216 , and pin  223  is affixed to wheel  220 . Therefore, turning wheel  220  counter-clockwise (facing  FIG. 2 ) causes plate  216  to move leftward, retracting the bolts  205 , while pin  223  moves upward in notch  222 . Turning wheel  220  clockwise causes plate  216  to move rightward while pin  223  moves downward in notch  222 , engaging the bolts  205 . 
         [0036]    Tab  224  extends downward from plate  216 . Electromagnetic solenoid  225  is affixed to the safe door  202 . Solenoid  225  has a plunger  227 , a return spring  228 , and a plate  229 . Plate  229  is affixed to the plunger  227 . Cable  226  connects solenoid  225  to circuit board  211 . Circuit board  211 &#39;s schematic is shown in  FIG. 3 . With the bolts extended, when a user turns the knob  106  to attempt to retract the bolts, tab  224  is blocked by plunger  227 , preventing plate  216  from moving, and so preventing the bolts from retracting. 
         [0037]    When the unlocking criteria are met, circuit board  211  energizes solenoid  225 , causing plunger  227  to move downward, compressing spring  228 . Tab  224  is no longer blocked, and the user can turn the knob  106  to retract the bolts. When the current to solenoid  225  is turned off, tab  224  holds down plunger  227  until the knob  106  is turned to engage the bolts. Spring  228  then lifts plunger  227 , thus blocking tab  224  again and locking the safe. 
         [0038]    Bypass lock  105  passes through the safe door and is affixed in place by nut  214 . Tab  215  is affixed to the cylinder of the lock. When the user inserts the correct key and rotates the lock cylinder, tab  215  rotates clockwise and presses against plate  229 , depressing the plunger  227  and permitting the safe to be opened. 
         [0039]    Battery holder  208  contains four AA-type alkaline cells  209  in a series circuit. Cable  210  connects the battery holder  208  to the circuit board  211 . Reflective sensor  206  (which may be replaced by a microswitch in an alternate embodiment) is connected to circuit board  211  by cable  207 , and senses the open or closed state of the door  202 . Ribbon cables  213  pass through a slot  212  cut in the door  202  and connect to the display  103  and keypad  104  on the front of the door  107 . 
         [0040]      FIG. 3  shows the electrical schematic  301  of the exemplary embodiment. The device is controlled by microcontroller  303 , and is powered by four AA-type batteries  314 . CMOS voltage regulator  315  provides a constant 3.3 volt supply to the microcontroller. 
         [0041]    Alphanumeric display module  302  and matrix keypad  307 , mounted on the outside front of the safe door are in communication with the microcontroller to provide the user interface. Ribbon cables  213  connect display  302  and keypad  307  to the circuit board  211  inside the safe. 
         [0042]    Transistors  304  and  305 , and filter  306  control display  302 &#39;s power, backlight brightness, and display contrast respectively. Microcontroller  303  scans the buttons of keypad  307  one row at a time. The bottom row of the keypad is connected to an external interrupt line so that a keypress can wake microcontroller  303  from a low-power state. Quartz crystal  311 , a standard watch crystal, along with an amplifier built into microcontroller  303 , provide a 32,768 Hz oscillator for the timekeeping function. Registers and instructions in the microcontroller count the cycles of the oscillator. 
         [0043]    Power switching transistor  316  operates the door releasing solenoid  313 . Energizing the solenoid mechanically permits the user to retract the safe&#39;s boltwork as explained previously. Diode  312  protects transistor  316  from over-voltage damage at turn-off, which could otherwise occur due to the inductance of solenoid  313 . 
         [0044]    Reflective optical sensor  309  detects the open/closed state of the safe&#39;s door. A microswitch may be used in place of sensor  309 . Piezoelectric beeper  308  alerts the user if the safe door is left open when it should be closed. Beeper  308  optionally clicks to confirm each keypress. 
         [0045]    Switched voltage divider  310  provides a ⅓ scale sample of the battery voltage to the analog-to-digital converter built into microcontroller  303 , so that the microcontroller can detect a low battery condition and alert the user. The battery voltage is measured each time the door releasing solenoid  313  is actuated, and each time the unit is turned on. 
         [0046]      FIG. 4  shows the mechanical and electrical components of an alternative embodiment  401 , as seen from the inside of the safe door  402 , with its covers removed.  FIG. 4  is similar to  FIG. 2  except that a motor-driven locking mechanism is shown. The embodiment  401  operates as embodiment  201  except where explained below. 
         [0047]    Bolts  414  are affixed to movable plate  413 , which is affixed at a right angle to sliding plate  410 . Pin  408  is affixed to the door  402  and passes through notch  411  in plate  410 . Washer  409  holds plate  410  parallel to the door  402  while leaving it free to slide back and forth, thus moving the bolts. 
         [0048]    Gear  412 &#39;s bearing is affixed to the door  402 . Pin  407  is affixed to gear  412  and passes through notch  406  in plate  410 . Therefore, when gear  412  is driven clockwise, the bolts are extended. When gear  412  is driven counter-clockwise, the bolts are refracted. This is similar to the operation of the  FIG. 2  embodiment except that no shaft passes through the door  402  to the outside. 
         [0049]    Gear  405 &#39;s bearing is affixed to the door  402 . Permanent-magnet DC motor  403  is affixed to the safe door  402  and is connected to the printed circuit board  416  by cable  415 . Motor  403  has a worm gear  404  affixed to its shaft. Worm gear  404  engages gear  405 , and gear  405  engages gear  412 . Therefore, when the motor  403  is energized, it will drive the gears  405  and  412 , either extending or refracting the locking bolts  414 , depending on the polarity of the electric current. 
         [0050]      FIG. 5  shows the electrical schematic of an H-Bridge reversing motor driver  501  suitable for the alternative motor-driven lock in  FIG. 4 . The circuit in  FIG. 5  should be added to the circuit in  FIG. 3  in place of parts  312 ,  313 , and  316 . Inputs  510  and  511  are normally held at logic 0 (0 volts) by the microcontroller  303 , therefore, all transistors are non-conducting and no appreciable current is drawn from the battery. 
         [0051]    When the microcontroller  303  applies a logic 1 (3.3 volts) to input  510 , transistors  502 ,  504 , and  507  conduct, energizing the motor  509  (motor also shown as  403  in  FIG. 4 ) in the locking direction. When the microcontroller  303  applies logic 1 to input  511 , transistors  506 ,  503 , and  505  conduct, energizing the motor in the unlocking direction. 
         [0052]    Resistor  512  limits motor current and also provides a voltage proportional to motor current  513  to the microcontroller  303 . When the motor-driven lock reaches its mechanical stop, the motor will stall and the voltage at point  513  will increase, causing the microcontroller  303  to turn off the motor. Diodes  508  protect the transistors against inductive transients from the motor. 
         [0053]    Resistor values must be adjusted based on the current requirements of the specific motor type. It is important that inputs  510  and  511  are not simultaneously driven with logic 1, as this will cause cross-conduction of the transistors and draw excessive current. 
         [0054]      FIG. 6  shows the various status displays  601  of the exemplary embodiment. The user interface is displayed on a 20-character-per-line, 4-line LED-backlit alphanumeric liquid crystal display. The user interface is implemented as a state machine in the microcontroller program, and runs in a separate software thread independent of the time-locking routines in  FIG. 8 . 
         [0055]    Pressing one of the bottom row buttons (*, 0, or #) on the keypad lights the display and shows a series of status displays, changing every 5 seconds by default. The status display sequence changes depending on the state of the device, as explained below. 
         [0056]    If the container is unlocked, the Open Time is later than the Current Time, and Auto Relock is not pending, pages  614 ,  607 ,  602 , and  603  are displayed sequentially. 
         [0057]    If the container is unlocked, the Open Time is later than the Current Time, and Auto Relock is pending, pages  608 ,  614 ,  607 ,  602 , and  603  are displayed sequentially. 
         [0058]    If the container is unlocked and the Open Time has passed, pages  614 ,  606 ,  602 ,  603 , and  626  are displayed sequentially. 
         [0059]    If the container door is left open, the top line of the display indicates “VAULT DOOR AJAR” as shown in page  617 . The beeper will also sound if this feature has been enabled in the setting  705 . 
         [0060]    If the container is locked, and Cooldown mode is disabled or inactive, pages  612 ,  602 , and  604  are displayed sequentially. If the Cooldown mode is inactive, page  605  is also displayed. 
         [0061]    If the container is locked, Cooldown mode is inactive, and the 5* key combination is pressed, page  618  is displayed, then the cycle changes to pages  621 ,  602 ,  604 ,  624 , and  612 . This sequence continues until the Cooldown is canceled or the Cooldown time arrives. 
         [0062]    If Cooldown mode is active and the Cooldown time has arrived, pages  614 ,  622 ,  602 ,  604 , and  624  are displayed. The passcode can be entered in this state to open the container. 
         [0063]    If the container is opened in Cooldown mode, page  620  is displayed, then two minutes later the sequence  612 ,  602 ,  604 ,  623  is displayed. The Cooldown feature is disabled until the time shown in  623 , and the door will not open. 
         [0064]    If Cooldown mode is active, and the Cooldown start/cancel (5*) key combination is pressed, page  619  is displayed and the device exits Cooldown mode. The display sequence returns to  612 ,  602 ,  604 , and  605 . 
         [0065]    If the container is unlocked or Cooldown unlocked (page  614  is shown) and the user enters the correct passcode and presses #, page  616  is displayed for five seconds, while the unlocking solenoid  313  is energized. If an incorrect passcode is entered, page  615  is displayed and the door does not unlock. 
         [0066]    If the Power Off (2*) key combination is pressed, the display turns off and the microcontroller enters low-power mode. This power-down also occurs after one minute of inactivity by default. The state of the user interface is maintained during power-down. The user interface thread is suspended, while the timekeeping interrupt and time-lock thread  801  continue to run once per second. 
         [0067]    If the Quick Lock (3*) combination is pressed while the container is unlocked, the device displays the Locking Prompt  609 / 610  or the visible/audible Locking Countdown  611 , and starts the locking process. The Open Time will be set to the Current Time plus one day. Quick Lock has no effect while the container is locked. 
         [0068]    If the Skip Next Open Time (4*) key combination is pressed, the device displays page  625 , with a new open time based on the Repeat setting, or defaulting to one day forward. If the user presses #, the Open Time is updated. If the user presses *, the Open Time is not changed. Either way, the device then returns to its normal display sequence. 
         [0069]      FIG. 7  shows the various configuration pages  701  of the exemplary embodiment. If the user presses the Settings (1*) key combination from the status display, and the Current Time has already been set, page  702  will be displayed. If the Current Time has not been set, page  707  will be displayed to prompt the user to set the Current Time. Page  707  is also displayed when the batteries are installed or replaced. 
         [0070]    If the user presses * (LOCK VAULT) from the status display, and the Open Time is earlier than the Current Time, page  702  will be displayed to prompt the user to set the Open Time. 
         [0071]    When one of the configuration pages is displayed, the user can press 4 to move counter-clockwise, or 6 to move clockwise, through the full loop of configuration pages. For example, from page  703 , the 6 key moves to page  704  and the 4 key moves to page  702 . The user can press * to exit to the Status Display. The user can press # to change the settings on the currently displayed configuration page. 
         [0072]    Page  702  is used to set the Open Time. When the user presses #, the Month is first highlighted. If the date was in the past, it is changed to the current date. The user must select the month, then press #, enter the day, press #, enter the year, press #, enter the hour, press #, enter the minute, press #, choose AM/PM using  4  and  6  to select, then press # to save. When the date is changed, the day of week updates automatically. The screen&#39;s bottom line displays a rotating series of prompts that show the user all his or her available options. Pressing * at any time cancels the setting process. If the container is locked, the user can change the Open Time to a later time (delaying opening) but cannot change to an earlier opening time. 
         [0073]    The user may set a schedule of unlocking times with the Repeat Times feature. Pages  703 ,  718 ,  719 , and  720  are used to set the Repeat Times. The user can select one of these four modes, and all but Off (page  703 ) have further settings. If the Repeat Times mode is set to Off, the Open Time does not automatically update. If the Repeat Times mode is set to any of the other three options,  718 ,  719 , or  720 , the Open Time is automatically updated at each unlocking. The options cannot be changed while the device is time locked. 
         [0074]    Page  718  causes the Open Time to be advanced to the same time every day or every N days, where the user can enter the number of days. In the figure, it is set to open every other day (displayed as “EVERY 2 DAYS”.) 
         [0075]    Page  719  causes the Open Time to be advanced to the same time each day, while skipping deselected days of the week. For example, if Monday, Wednesday, and Friday are selected, the device will unlock at the specified Open Time on each of those days, and will not unlock on other days of the week. 
         [0076]    Page  720  allows the user to enter up to eight times of day. There are two pages of four times each, and the times are automatically sorted when the user makes changes. Duplicate times are automatically discarded. The Open Time will advance, at each unlocking, to the next specified time. If the Current Time is later than the last specified time, the Open Time will advance to the first scheduled time on the next day. 
         [0077]    If Page  704  is enabled, and the container door is not opened after the Open Time arrives, the device will automatically relock until the next Open Time as determined by the Repeat settings. The user can set the relock delay in hours or minutes. When the relocking time arrives, the device will perform a visible countdown, with an optional tick-tock sound, giving the user an opportunity to cancel the relocking 
         [0078]    Page  705  enables an alarm to remind the user to close the container door. If this feature is enabled, the device will wait the set number of minutes and then beep until the door is closed. The beep will increase in intensity after one minute. 
         [0079]    Page  706  configures the Cooldown mode. The Cooldown mode can be enabled or disabled. If enabled, there are three settings: unlocking delay time period, relocking delay time period, and inhibit delay time period. The unlocking delay setting determines the time between a Cooldown request (5* key sequence) and the container permitting access. The relocking delay setting determines how long the device remains in Cooldown unlocked mode before automatically relocking The inhibit delay setting determines how often a Cooldown open is permitted. 
         [0080]    If the user opens the door during the Cooldown unlock period, the device relocks immediately when the door is closed, does not permit another Cooldown unlock until the inhibit delay has passed, and displays page  623  in the meantime. If the user does not open the door, and the device relocks automatically, the Cooldown can be requested again immediately. 
         [0081]    Page  707  is used to set the Current Time. This page can be selected manually, and is also displayed automatically when batteries are installed. 
         [0082]    Page  708  is used to set the passcode for opening the container door. The door must be open to change the passcode. The user is prompted for a new passcode, and then prompted to re-enter it to confirm. The passcode is also used to unlock the keypad when the Keypad Security feature (page  711 ) is enabled. 
         [0083]    Page  709  shows the battery voltage and status (GOOD, FAIR, LOW.) When the batteries are low, this page is displayed automatically, and the container will not time lock. The microcontroller retains and displays the lowest voltage measured during opening, as well as the present voltage. 
         [0084]    Page  710  adjusts the display brightness and contrast. Pressing the 1 and 3 keys adjusts the backlight brightness; pressing the 7 and 9 keys adjusts the contrast. 
         [0085]    Page  711  controls two options. If Relock At Close is enabled, the container door is closed after being opened, and the Open Time is later than the Current Time, the device will automatically begin the visible/audible Locking Countdown  611 . The container will lock when the count reaches zero, unless the user presses a key to abort. 
         [0086]    The container&#39;s user interface can be secured. If this option is enabled, the passcode must be entered at each power-up before any operations can be carried out. This prevents unauthorized persons from tampering with or time-locking the container. If Keypad Security is enabled, all keypad functions are disabled at every power-up until the user enters the passcode and presses #. Page  613  is displayed while the keypad is disabled. 
         [0087]    Page  712  sets the Confirm Before Lock prompt option. If this is set to Always, page  609  or  610  is always displayed when locking, and the user must press # to proceed. If set to a number, the confirmation is displayed only if the container is being locked for that number of days or longer. This feature prevents an accidental prolonged lockout. 
         [0088]    Page  713  determines whether the device automatically begins the locking process after the user finishes setting the Open Time on page  702 . If  713  is set to On, page  609 ,  610 , or  611  appears after setting the Open Time. If  713  is set to Off, page  702  remains after setting the Open Time. 
         [0089]    Page  714  controls two sound-related options. If the Key Click Sound option is set to On, the beeper emits a short click at each keypress. If the Key Click Sound option is set to Off, no click is produced. 
         [0090]    If the Lock/Unlock Sound option is set to On, the beeper produces a “tick-tock” sound (alternating high and low frequency clicks) during the page  611  countdown. It also produces a locking tone (three tones rising in frequency) when the container time locks, and an unlocking tone (three tones falling in frequency) when the container unlocks. If the Lock/Unlock sound option is set to Off, these sounds are not produced. 
         [0091]    Page  715  controls two user interface options. The Power Save time determines how long the screen remains illuminated with no user input. When the corresponding number of seconds have passed, the screen turns off to save power, and the microcontroller goes into low power mode. Pressing one of the bottom row keys (*, 0, or #) will turn the display back on, leaving the user interface in the same state as before the display timed out. 
         [0092]    The Help Messages setting determines how quickly the screen cycles through messages. This controls the speed of the main menu status pages in  FIG. 6 , as well as the help messages displayed on the bottom line of the settings pages in  FIG. 7 . 
         [0093]    Page  716  sets the duration in seconds of the Locking Countdown on page  611 . 
         [0094]    Page  717  shows the software copyright notice, software version, and unit serial number. This page alternates between the software copyright notice and software version (shown) and serial number (not shown). There are no settings to be changed on this page. 
         [0095]    With the exception of the Open Time and Current Time values, all the  FIG. 7  settings are retained in the EEPROM memory of the microcontroller  303  while the batteries are removed. 
         [0096]      FIG. 8  shows the flowchart  801  of the exemplary device&#39;s time-locking and alarm logic. This procedure should run multiple times per minute, and the exemplary embodiment runs it once per second. The procedure starts at entry point  802  and first branches at state  803  based on whether the container is time-locked. 
         [0097]    If the container is time-locked, branch  810  checks whether the Open Time has arrived. If the Open Time has arrived, action  829  clears the time lock flag. Branch  830  checks the Auto Relock state, and if Auto Relock is enabled, sets the Auto Relock time at action  831 , and sets the Auto Relock state to active at action  832 . 
         [0098]    Next, branch  833  checks the Repeat Time mode and setting, and if enabled, updates the Open Time at action  834  according to the Repeat Time mode and setting. Finally, branch  835  checks the Cooldown mode, and if it was previously Unlocking or Relocking, action  836  sets it back to Inactive. The routine ends at endpoint  837 . 
         [0099]    If the device is time-locked at branch  803  and the Open Time has not arrived (branch  810 ), the program proceeds to branch  811  for the specific case where the container door was opened during Cooldown Relocking mode. If the container was opened, the mode is set to Inhibiting (action  816 ), the Cooldown event time is updated at action  817 , the program proceeds to the Door Alarm check  821 , and the user interface thread presents page  620 . 
         [0100]    If branch  811  is not taken, then branch  812  checks to see if the Cooldown event time has been reached. If so, branch  813  checks the Cooldown state. In the Unlocking state, the Cooldown state changes to Relocking at action  814 , and action  815  sets the Cooldown event time. In the Relocking state  818  or Inhibiting state  819 , the state is changed to Inactive at action  820 . The user interface thread, in response to the 5* Cooldown open request  605 , sets the Cooldown event time to the Current Time plus the Cooldown unlocking delay, and sets the Cooldown state to Unlocking, thus starting the Cooldown process. 
         [0101]    If the device is not time-locked at branch  803 , the software checks the Relock on Close state at branch  804  and the door recently closed flag at branch  805 . If both are true, the container is time-locked at action  808  and the Auto Relock mode is set to Inactive at action  809 . The user interface thread will present page  611 . 
         [0102]    If the Relock on Close is not executed, the software checks the Auto Relock mode at branch  806  and Auto Relock time at branch  807 . If the Auto Relock mode is active and the Auto Relock time has arrived, execution proceeds to actions  808  and  809  as above. 
         [0103]    Branch  821  checks the Door Alarm state. The user interface thread starts the beeper countdown when the door is opened. The initial value of the beeper countdown is the value in page  705 , converted to seconds, plus a 300 second maximum beeping duration. Therefore, a one-minute Door Alarm setting would start this value at 360. The counter is decremented once per second. 
         [0104]    If the Door Alarm state is off or inactive, execution ends at endpoint  837 . If the Door Alarm state is Countdown or Beeping, branch  822  compares the Countdown time with the fixed beeping duration of 300 seconds. If the Countdown is less than the duration, the beeper will sound until the Countdown reaches 0. This limits beeping to 5 minutes. 
         [0105]    Branch  823  checks the countdown, and if it is zero, the beeper is silenced at action  824 . Branch  825  checks the door state, and if the door is closed, the beeper is silenced at action  826 . Branch  827  checks the beeper state, and if not beeping, the beeper is turned on at action  828 . This causes the beeper to sound if the door is open, the countdown is below the duration, and the countdown is not zero. 
       CONCLUSION 
       [0106]    The foregoing Detailed Description has disclosed, to those experienced in the relevant fields of electrical engineering, embedded software development, and mechanical engineering, how to make and use a time-locked container specifically optimized for self-control purposes, and has further disclosed the best methods currently known to the inventors for implementing such a container, including the electrical and user-interface aspects of the design. However, it will be immediately apparent to those skilled in the technology, that a precommitment container could be implemented in many other ways. For example, the display could show animated clock hands instead of a digital clock; a different microcontroller architecture could be used; different types of containers could be used; and one or more dials could be used in place of a keypad as the input device. 
         [0107]    For all of the foregoing reasons, the Detailed Description is to be regarded as being in all respects exemplary and not restrictive, and the breadth of the device and method disclosed herein is to be determined not from the Detailed Description, but rather from the claims, as interpreted with the full breadth permitted by the patent laws.

Technology Category: 3