Modular locker systems and methods
The modular and scalable locker system with a bus-based communication network addresses inflexibility and complex wiring in traditional locker systems, offering improved flexibility, reduced installation complexity, and enhanced scalability.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- CIRCULAR LIBRARY NETWORK EHF
- Filing Date
- 2025-12-05
- Publication Date
- 2026-06-11
Smart Images

Figure EP2025085791_11062026_PF_FP_ABST
Abstract
Description
Agent Ref: 16792.0001-003041MODULAR LOCKER SYSTEMS AND METHODSCROSS-REFERENCES TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority of United States Provisional Application No. 63 / 728,580, filed on December 5, 2024, and claims priority to GB Application No. 2501440.8 filed January 31, 2025, and EP 25155279.0, filed January 31, 2025. The contents of the foregoing applications are incorporated herein by reference in their entirety.TECHNICAL FIELD
[0002] The present disclosure relates to locker systems, and more particularly to modular and scalable locker systems, methods of assembly, and methods for controlling locker systems.BACKGROUND
[0003] Locker systems, including smart locker systems, have become an integral part of various environments, including workplaces, educational institutions, and public spaces. These systems provide secure storage solutions for personal belongings, equipment, and other items and self-service package delivery services. Traditional locker systems typically consist of a fixed number of individual lockers arranged in a predetermined configuration. Each locker is usually equipped with a locking mechanism that can be operated manually or electronically.
[0004] Existing systems may be characterized by their rigid configurations before and after setup, with predetermined sizes and quantities of individual lockers. This inflexibility poses challenges in environments where space requirements do not match predetermined configurations, may fluctuate over time, or where diverse storage needs exist. For example, in a workplace setting, the inability to easily modify locker sizes or quantities may lead to inefficient space utilization and may not adequately accommodate varying employee storage needs.
[0005] Conventional locker systems typically employ centralized wiring infrastructure. In such locker systems, each individual locker unit is connected directly to a central control system via dedicated wiring. This centralized approach often results in a complex network of cables running throughout the entire locker installation. Such wiring may complicate the initial setup of the locker system and may pose challenges for maintenance, scalability,Agent Ref: 16792.0001-003042 and potential reconfiguration of the locker system. Moreover, the volume of wiring required for locker systems with a centralized wiring infrastructure can lead to increased installation costs and potential points of failure within the system that might be hard to identify. Additionally, a single locker or component malfunctioning may necessitate replacing or rewiring a significant portion of the system, leading to increased downtime and maintenance costs.SUMMARY
[0006] The present disclosure provides for modular and scalable locker systems, methods of assembly, and methods for controlling and operating locker systems. At least some of the described embodiments aim to alleviate or overcome one or more challenges described above with reference to conventional locker systems and related methods.
[0007] Some embodiments provide a method for controlling an assembly of a plurality of lockers communicatively connected in series using a corresponding plurality of controllers and a first bus, the assembly comprising a first locker and a last locker, each locker of the plurality of lockers being associated with a corresponding controller of the plurality of controllers and comprising a lock communicatively connected to the corresponding controller. The method comprises: sending, via the first bus, from a host controller to a first controller associated with the first locker, a message configured to enable the first controller to determine an identifier of the first controller. The method further comprises: iteratively, for each controller starting from the first controller and until a last controller associated with the last locker is reached: determining an identifier of the controller, by the controller, based on the message received from a previous controller; storing the identifier in a memory of the controller; and updating the received message to configure the message to enable determination of an identifier of the next controller by the next controller and sending the updated message to the next controller. The method also comprises: upon the last controller determining the identifier of the last controller and storing the identifier of the last controller in a memory of the last controller, sending by the last controller, using the first bus, a response message to the host controller, the response message configured to indicate to the host controller that each controller associated with the plurality of lockers has been allocated the corresponding identifier.Agent Ref: 16792.0001-003043
[0008] Some embodiments provide a method for controlling an assembly of a plurality of lockers communicatively connected in series using a first bus and communicatively connected to a second bus, the assembly comprising a first locker and a last locker, each locker of the plurality of lockers being associated with a corresponding controller and comprising a lock communicatively connected to the corresponding controller. The method comprises: allocating an identifier to each controller associated with a locker of the plurality of lockers by: sending, via the first bus, from a host controller to a first controller associated with the first locker, a message configured to enable the first controller to determine an identifier of the first controller, and iteratively for each controller, starting with the first controller and until a last controller associated with the last locker is reached, sending via the first bus, from the controller to a next controller, a message configured to enable the next controller to determine an identifier of the next controller. The method also comprises: broadcasting, via the second bus, from the host controller to the plurality of controllers, a second message comprising an identifier allocated to a selected controller to trigger a response from the selected controller.
[0009] Some embodiments provide for a system for controlling an assembly of a plurality of lockers. The system comprises: a first bus; a second bus; the plurality of lockers communicatively connected in series using the first bus and communicatively connected to a second bus, the plurality of lockers comprising a first locker and a last locker, wherein each locker is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller; and a host controller communicatively coupled to the first bus and to the second bus, wherein the system is configured to perform any the above-referenced methods.
[0010] In some embodiments, a system for controlling an assembly of lockers is provided. The system comprises: a plurality of sets of lockers, each locker associated with a corresponding controller, the plurality of sets of lockers being communicatively connected in series, wherein each set of lockers comprises at least one locker, wherein each locker comprises a lock communicatively connected to the corresponding controller; a bus comprising a plurality of segments, each segment configured to connect neighboring controllers; wherein: each controller comprises a processor and a memory; each controller is configured to receive communications from the bus and send communications to theAgent Ref: 16792.0001-003044 bus; and a host controller comprising a processor and a memory and configured to send an instruction via the bus to cause at least one of the plurality of controllers to unlock the corresponding lock, thereby unlocking the respective locker.
[0011] In some embodiments, a method for controlling an assembly of a plurality of lockers is provided. The method comprises: sending a message via a bus, by a host controller to a controller of a first locker of the plurality of lockers, the message identifying a selected locker, wherein the plurality of lockers includes the first locker and a last locker, the plurality of lockers communicatively connected in series via the bus from the first locker to the last locker, and wherein each locker is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller; iteratively, until the message is received by a controller of the selected locker or a controller of the last locker: updating the message by the controller that received the message and sending the updated message to the controller of the next locker; if the message is received by the controller of the last locker or the last locker is the selected locker, generating a response message by the controller of the last locker, and otherwise: generating, by the controller of the selected locker, the response message, and iteratively, until the response message is received by the last locker: forwarding the response message to the controller of the next locker; and sending, from the controller associated with the last locker, the response message to the host controller.
[0012] In some embodiments, a modular locker system is provided. The system comprises: one or more locker units for defining a plurality of lockers comprising a first locker and a last locker, each locker having a door, a lock configured to lock and unlock the door, and a controller configured to be connected to the lock for controlling the lock, thereby the plurality of lockers having a plurality of corresponding controllers; a host controller; and a bus system for connecting the plurality of controllers in series from a first controller of the first locker to a last controller of the last locker and connecting the host controller to the first controller, the bus system configured to define: at least a first communication path from the host controller to the first controller through the plurality of controllers in series to the last controller and a second communication path from the last controller to the host controller, bypassing the plurality of controllers; wherein the hostAgent Ref: 16792.0001-003045 controller is configured to send instructions to the plurality of controllers through the first communication path and receive response through the second communication path.
[0013] In some embodiments, a method for assembling a modular locker system is provided. The method comprises: providing at least one locker unit; positioning at least one panel within the at least one locker unit to define a plurality of lockers within the at least one locker unit, the plurality of lockers comprising at least a first locker and a last locker; securing a plurality of doors to the locker unit to enclose respectively the plurality of lockers, the plurality of lockers comprising a first door and a last door to enclose the first locker and a last door to enclose the last locker; securing a plurality of locks to the at least one locker unit, each locker having a lock of the plurality of locks positioned to cooperate with the door of the locker, each lock having an associated controller configured to control the lock, the plurality of locks comprising a lock configured to lock and unlock the first door and a lock configured to lock and unlock the last door; connecting the controllers associated with the plurality lockers in series via a bus system from a first controller of the first locker to a last controller of the last locker; and connecting the first controller to a host controller via the bus system, the bus system configured to define at least a first communication path from the host controller to the first controller through the plurality of controllers in series to the last controller and a second communication path from the last controller to the host controller, bypassing the plurality of controllers.BRIEF DESCRIPTION OF FIGURES
[0014] Embodiments will be described, by way of example, with reference to the following drawings, in which:
[0015] FIG. 1A illustrates an orthogonal front view of a locker assembly system, according to aspects of the present disclosure.
[0016] FIG. IB illustrates a perspective view of a locker assembly system, according to aspects of the present disclosure.
[0017] FIG. 1C illustrates a perspective view of another locker assembly system, according to aspects of the present disclosure.
[0018] FIGS. 1D-1E illustrate perspective and orthogonal views of components of a locker control system, according to aspects of the present disclosure.Agent Ref: 16792.0001-003046
[0019] FIG. IF illustrates a block diagram of a controller for use in a locker control system, according to aspects of the present disclosure.
[0020] FIG. 1G illustrates an exploded view of a controller, according to aspects of the present disclosure.
[0021] FIG. 2 illustrates a perspective view of a bus within locker assembly system, according to aspects of the present disclosure.
[0022] FIG. 3 illustrates an orthogonal top view of a first type printed circuit board, according to aspects of the present disclosure.
[0023] FIGs. 4A-4B illustrate communication paths within a first type PCB coupled to a non-last locker controller, according to aspects of the present disclosure.
[0024] FIGs. 4C-4D illustrate power distribution paths within a first type PCB coupled to a non-last locker controller, according to aspects of the present disclosure.
[0025] FIGs. 4E-4F illustrate communication paths within a first type PCB coupled to a last locker controller, according to aspects of the present disclosure.
[0026] FIGs. 4G-4H illustrate power distribution paths within a first type PCB coupled to a last locker controller, according to aspects of the present disclosure.
[0027] FIG. 41 illustrates an alternative first type PCB coupled to a non-last locker controller, according to aspects of the present disclosure.
[0028] FIG. 5 illustrates an orthogonal top view of a second type printed circuit board, according to aspects of the present disclosure.
[0029] FIGs. 6A-6B illustrate communication paths within a second type PCB coupled to a non-last locker set, according to aspects of the present disclosure.
[0030] FIGs. 6C-6D illustrate power distribution paths within a second type PCB coupled to a non-last locker set, according to aspects of the present disclosure.
[0031] FIGs. 6E-6F illustrate communication paths within a second type PCB coupled to a last locker set, according to aspects of the present disclosure.
[0032] FIGs. 6G-6H illustrate power distribution paths within a second type PCB coupled to a last locker set, according to aspects of the present disclosure.
[0033] FIG. 61 illustrates communication paths within an alternative second type PCB coupled to a last locker set, according to aspects of the present disclosure.Agent Ref: 16792.0001-003047
[0034] FIG. 7 illustrates a flowchart for a method of controlling an assembly of lockers, according to aspects of the present disclosure.
[0035] FIG. 8 A illustrates a communication sequence in a locker control system, according to aspects of the present disclosure.
[0036] FIG. 8B illustrates another communication sequence in a locker control system, according to aspects of the present disclosure.
[0037] FIG. 9 A illustrates a front orthogonal view of a modular locker system, according to aspects of the present disclosure.
[0038] FIG. 9B illustrates an isometric view of a modular locker system, according to an embodiment.
[0039] FIG. 9C illustrates an isometric view of a locker unit, according to aspects of the present disclosure.
[0040] FIG. 9D illustrates an exploded view of a modular locker unit, according to an embodiment.
[0041] FIGS. 10A-10B illustrate isometric views of cable connections in a locker control system, according to aspects of the present disclosure.
[0042] FIG. 11 illustrates a flowchart for assembling a modular locker system, according to an embodiment.
[0043] FIG. 12 illustrates an isometric view of a locker unit vertical panel, according to aspects of the present disclosure.
[0044] FIG. 13 illustrates a flowchart for a method of modifying a locker configuration, according to an embodiment.
[0045] FIG. 14 illustrates a flowchart for a method of self-identifying controllers within a locker assembly, according to an embodiment.
[0046] FIG 15 A illustrates communication paths within a first type PCB coupled to a nonlast locker set, according to aspects of the present disclosure.
[0047] FIG 15B illustrates communication paths within a first type PCB coupled to a last locker set, according to aspects of the present disclosure.
[0048] FIG 16A illustrates communication paths within a second type PCB coupled to a non-last locker set, according to aspects of the present disclosure.Agent Ref: 16792.0001-003048
[0049] FIG 16B illustrates communication paths within a second type PCB coupled to a last locker set, according to aspects of the present disclosure.
[0050] FIG. 17 illustrates a flowchart for a method of controlling an assembly of lockers, according to aspects of the present disclosure.
[0051] FIG. 18 illustrates a flowchart for a method of controlling an assembly of lockers, according to aspects of the present disclosure.
[0052] Common reference numerals are used throughout the figures to indicate similar features.DETAILED DESCRIPTION
[0053] The disclosed embodiments provide for modular and scalable locker systems, methods of assembly, methods for controlling locker systems, and methods of operating locker systems. At least some of the described embodiments provide one or more advantages over conventional systems, such as improved flexibility in locker configurations, simplified wiring and installation, enhanced scalability, and / or more efficient communication between locker components.
[0054] FIG. 1A and FIG. IB illustrate an exemplary locker assembly or system 100. Locker assembly 100 comprises a plurality of locker sets 120. Each locker set 120 (also referred to as a set of lockers) comprises at least one locker 101.
[0055] FIGs. 1A and IB depict each locker set including multiple lockers. However, in some example configurations, one or more locker sets, or all locker sets, may include a single locker only.
[0056] FIGs. 1 A and IB show multiple lockers 101 arranged in vertical columns, with each column forming a set of lockers 120. Further, in FIGs. 1A and IB, all lockers are shown to have the same size. However, this arrangement is exemplary only and locker system 100 may have locker sets arranged and / or sized differently.
[0057] For example, in some embodiments, each locker set is formed of a row of lockers. In some other embodiments, one or more locker sets, may be formed of a row of lockers and / or one or more locker sets may be formed of a column of lockers.
[0058] In some embodiments, all locker sets 120 may have the same number of lockers. In some embodiments, at least two locker sets 120 may have a different number of lockers.Agent Ref: 16792.0001-003049
[0059] In some embodiments, at least one locker set may have all lockers of the same size. In some embodiments, at least one locker set may include lockers that differ in sizes. In some embodiments, different locker sets may have differently sized lockers.
[0060] In some embodiments, a certain combination of lockers can be selected to form a set of lockers, for example, for operating reasons. For example, where a particular user requires a certain number of lockers, such lockers can form a set of lockers associated with that particular user.
[0061] For clarity purposes, FIGs. 1A and IB show lockers 101 without doors. However, each locker 101 may be fitted with a door (e.g., door 102 shown in FIG. 1C) that, when opened (i.e., in an opened position), provides access to that locker’s interior and, when closed (i.e., in a closed position), encloses that locker’s interior, preventing access to that locker’s interior. The locker may also be fitted with a lock or a lock unit, such as a lock 115 or a lock unit 130 (shown in and discussed in detail with reference to FIGs. ID and IE) for locking the door in the closed position.
[0062] FIG. 1C shows an exemplary locker set 120 having lockers 101 arranged vertically (in a column). Locker set 120 may be formed by assembling two side panels 122, a top panel 124, a bottom panel 126, and a back panel 128 (no visible in FIG. 1C). In locker set 120 of FIG. 1C, shelving units (panels) or shelves 104 separate locker set 120 into a plurality of lockers 101.
[0063] All panels can be made of durable materials, such as wood, fiberboard, particle board, composite lamber, or steel. Different materials may be used for different panels, for example, for structural reasons (e.g., a particular locker or locker set must be able to support a certain weight, a certain type of environment must be maintained within a particular locker or locker set, e.g., temperature, humidity, etc.) or decorative reasons (to compliment the environment housing a locker set).
[0064] Side panels 122 may be configured to ease positioning of shelving units 104 during assembly of locker set 120. For example, side panels 122 may include pre-formed grooves 125. Once positioned to separate locker set 120 into a plurality of lockers 101, shelving units 104 may be secured to side panels 122. In some embodiments, side panels 122 may include openings for receiving dowels to facilitate a dowel joint between shelving units 104 and side panels 122. In other embodiments, side panels 122 may include holes toAgent Ref: 16792.0001-0030410 facilitate securing of shelving units 104 to side panels 122 using fasteners, such as screws. In yet other embodiments, shelving units 104 may be secured to side panels 122 using cam screws and cam lock nuts, which enable easy securing and removal of shelving units 104. In yet other embodiments, the top side of shelving units 104 and the inside of side panels 122 may include blind holes to provide means to attach brackets for securing shelving panels 104 to side panels 122. A skilled artisan would appreciate that other means for positioning and / or securing shelving units 104 within locker set 120 may be employed.
[0065] As shown in FIG. 1C, lockers 101 may have different sizes, including different interior sizes. In some embodiments, no back panel 128 is used to assemble locker set 120; rather locker set 120 may be secured against a wall or another surface using appropriate fasteners.
[0066] In FIG. 1C, each locker 101 is fitted with a door 102. Door 102 is sized to match the size of the respective locker’s opening so as to enclose locker’s interior 107 when door 102 is closed (i.e., in a closed position). In some embodiments, door 102 is mounted to corresponding locker 101 using hardware 105. For example hardware 105 may be a hinge pivotally connecting door 102 to side panel 122 to allow door 102 to pivot between the open and closed positions.
[0067] In FIG. 1C, each locker 101 is fitted with a lock 115 configured to couple with a hoop 103 to secure or lock door 102 in the closed position, i.e., to lock locker 101, thereby preventing access to that locker’s interior 107. Locker 101 also has a controller 110 associated with locker 101 and communicatively connected to lock 115 of that locker 101. Controller 110 is configured to control lock 115 to lock and unlock locker 101.
[0068] FIG. IE shows controller 110 communicatively coupled with or connected to lock 115. As shown in FIG. ID, in some embodiments, controller 110 and lock 115 may be integrated into a lock unit 130. Lock unit 130 may include a housing or cover 135 to facilitate protection of controller 110 and lock 115 from being damaged, such as during assembly of locker system 100 or use of locker 101 housing lock unit 130.
[0069] Returning to FIG. 1C, in some embodiments, lock 115 may comprise a locking element. A corresponding latch hoop may be attached to a locker door, such as hoop 103 attached to door 102 as shown in FIG. 1C. When latch hoop 103 is positioned inside an aperture of the locking element of lock 115 and lock 115 is locked, locker door 102 isAgent Ref: 16792.0001-0030411 secured in the closed position. In some embodiments, lock 115 may comprise an electromagnet or any other appropriate locking system for securing door 102 in the closed position. For example, lock 115 may comprise a deadbolt while side panels 122 may include a corresponding blind hole, allowing the door to be open only if the deadbolt is retracted and out of the corresponding blind hole. In some embodiments, lock 115 may be configured to maintain a locked state (is biased towards being locked), unless instructed otherwise. In some embodiments, lock 115 is biased to maintain the locked state when lock 115 and controller 110 are powered off.
[0070] Returning to FIGs. 1A and IB, a bus 160 runs through or about locker assembly 100. Bus 160 may comprise a plurality of segments (also referenced as sections) for connecting neighboring controllers 110. Bus 160 is configured to allow controllers 110 to receive and send communications.
[0071] As shown in FIG. IF, controller 110 may comprise a processor 111 and a memory 112 enabling controller 110 to process and store information related to locker operations. Processor 111 may be any suitable type of computation unit, for example, a microprocessor, digital signal processor (DSP), field programmable gate array (FPGA), application specific Integrated circuit (ASIC), or any other form of circuitry suitable to perform functions described in this disclosure. As shown in FIG. 1G, controller 110 may, for example, be a Printed Circuit Board (PCB) 110-1 enclosed in a housing or cover 110- 2. Returning to FIG. IF, memory 112 may be any suitable type of computer readable memory and may be of volatile and / or non-volatile type.
[0072] Returning to FIG. 1A, host controller 150 may be positioned in association with locker assembly 100 to facilitate operation of locker assembly 100. Host controller 150 comprises a processor and a memory, and is configured to send instructions via bus 160 to cause at least one controller 110 to unlock corresponding lock 115, thereby unlocking respective locker 101. In some example embodiments, host controller 150 may be located inside one of lockers 101, such as shown in FIG. 1A. In such embodiments, locker 101 housing host controller 150 may not have door 102. In some other example embodiments, host controller 150 may be located externally to locker assembly 100, e.g., adjacent or remote, or located elsewhere within the locker assembly.Agent Ref: 16792.0001-0030412
[0073] In some embodiments, host controller 150, whether external or internal to locker assembly 100, may be communicatively connected to a user interface device, for example, a touch screen, configured to enable a user to engage with host controller 150, for example to generate requests for operating one or more lockers 101. When host controller 150 is positioned within one of lockers 101, the user interface device may be fitted to that locker 101 instead of door 102.
[0074] In some embodiments, instead or additionally, host controller 150 may be connected to a network, allowing users to communicate with host controller 150 through the network, for example, using a corresponding application on their mobile phone.
[0075] The disclosed embodiments are not limited to a particular arrangement or type of the network. In some embodiments, the network can include the Internet, a wired Wide Area Network (WAN), a wired Local Area Network (LAN), a wireless WAN (e.g., WiMAX), a wireless LAN (e.g., IEEE 802.11, etc.), a mesh network, a mobile / cellular network, an enterprise or private data network, a storage area network, a virtual private network using a public network, a nearfield communications technique (e.g., Bluetooth, infrared, etc.), or other suitable type of network.
[0076] In some embodiments, when locker assembly or system 100 includes multiple locker sets 120, such locker sets 120 may be connected in series. In some examples, when a particular set of lockers 120 comprises a plurality of lockers 101, a plurality of controllers 110 corresponding to the plurality of lockers 101 of the set may be connected in series such as to form a daisy chain configuration. Connecting controllers 110 in series, or in a daisy chain configuration within a locker set and between different locker sets, facilitates reduction of the cable or wire length of cables or wire required to connect controllers 110 to host controller 150. A more detailed disclosure on how different lockers and locker sets may be connected to facilitate operation of locker system 100 is provided throughout this disclosure, for example, with reference to FIG. 2.
[0077] Locker assembly 100 may be powered electrically by connecting locker assembly 100 to a power source. This power source can be of any suitable type sufficient to support operation of locks 115 and controllers 110 in locker assembly 100, such as a wall outlet or a generator. In some embodiments, locker assembly 100 may be connected to a wall outlet, which in turn is connected to a transformer because the voltage needed to supplyAgent Ref: 16792.0001-0030413 energy to controllers 110 and locks 115 (e.g., 0-20V) may be lower than the voltage supplied at the wall outlet (e.g., 110-220V). Once output by the transformer, power may be distributed to controllers 110 and locks 115 by bus 160. A more detailed discussion on the power distribution from the power source through locker assembly 100 to support its operation is provided throughout this disclosure, for example with reference to FIGs. 5, and 6A-6I.
[0078] Locker assembly and systems described throughout this disclosure, such as locker assembly 100, are modular and scalable systems for enabling and controlling access to multiple lockers 101. A communication network formed by bus 160 and controllers 110 allows for control and monitoring of the entire locker assembly 100 through host controller 150 communicatively coupled to the communication network.
[0079] Referring to FIG. 2, a bus system 200 for connecting controllers within an assembly of lockers, such as locker assembly 100, is illustrated. Bus system 200 comprises a plurality of bus segments, each segment configured to connect neighboring controllers, such as controllers 110. A bus segment may comprise a PCB and cables coupled to the PCB. In some embodiments, a PCB and / or cable may be part of more than one bus segment. In other words, segments may be overlapping with one another. For example, as can be seen in FIG. 2 PCB 270-3 and cable 290-3 may be considered a part of bus segments 250-2 and 250-3.
[0080] In the context of the present disclosure, neighboring controllers of neighboring locker sets do not have to be physically adjacent within a locker assembly or a locker set. Rather, when discussing controllers or sets of lockers communicatively coupled in series, neighboring controllers or neighboring sets of lockers are respectively controllers or sets of lockers directly coupled by bus segments. Referring to FIG. 1A, for example, the top left locker and the bottom right locker may be neighboring lockers when connected directly by a bus segment.
[0081] Bus system 200 may include two types of segments: intra-set segments 250 and inter-set segments 260. Intra-set segments are configured to connect two controllers within the same set of lockers, thereby connecting the corresponding two lockers within the locker set. Inter-set segments are configured to connect two controllers corresponding to lockers of two different sets of lockers, thereby connecting the two locker sets.Agent Ref: 16792.0001-0030414
[0082] Different types of PCBs, or differently configured PCBs, may be used in intra-set and inter-set segments. A first type of PCB 270, also referenced as a routing PCB 270, may be used for connecting lockers within the same set of lockers. A second type of PCB 280, also referenced as a power PCB, may be used for connecting different sets of lockers. Both routing PCBs 270 and power PCBs 280 respectively enable communication through bus system 200. In addition to enabling communication through bus system 200, power PCBs 280 facilitate power distribution from a power source to each set of lockers for powering controllers 110 and locks 115 within that locker set.
[0083] In some embodiments, routing PCBs 270 and power PCBs 280 have different designs, each suitable to provide the functionalities of routing PCB 270 and power PCB 280 respectively. In some embodiments, routing PCBs 270 and power PCBs 280 are PCBs of the same design, e.g., from the same batch of PCBs, that subsequently have been configured to facilitate data communication only and data communication and power distribution respectively. For example, configuring a PCB as routing PCB 270 may simply include connecting communication cables only to designated communication ports of the PCB when assembling locker system 100, while configuring the PCB as power PCB 280 may also include connecting power cables to designated power ports of the PCB when assembling locker system 100. In some embodiments, configuring the PCB as routing PCB 270 or power PCB 280 may include color coding ports of the PCB designated for communication and / or power distribution pre-assembly of locker system 100. In some embodiments, communication ports of the PCB can be further color coded to indicate direction of communication paths. In some embodiments, configuring the PCB as a routing or power PCB may include plugging ports that are not intended for use with plugs indicating that the ports are not to be used.
[0084] In some embodiments, an intra-set segment (e.g., intra-set segment 250) may comprise two routing PCBs 270 (e.g., PCB 270-1 and PCB 270-2) communicatively coupled by cable 290 (e.g., cable 290-1), and having further two cables 290 (e.g., cables 290-2) respectively coupled to PCBs 270 (e.g., PCB 270-1 and PCB 270-2). Further cables 290-2 may communicatively couple PCBs 270 to the respective neighboring controllers.
[0085] In some embodiments, an inter-set segment (e.g., inter-segment 260) may comprise two power PCBs 280 (e.g., PCBs 280-1 and 280-2) and two routing PCBs 270Agent Ref: 16792.0001-0030415(e.g., PCBs 270-4 and 270-5). In inter-set segment 260, two power PCBs 280-1 and 280- 2 are communicatively coupled to each other and to two routing PCBs 270-4 and 270-5 respectively by communication cables 290. Two routing PCBs 270 are communicative coupled to the respective neighboring controllers by further communication cables 290. Two power PCBs 280-1 and 280-2 are also coupled by power cable 295 to facilitate power distribution to respective locker sets. A more detailed discussion on the power distribution is provided later in this disclosure, with reference to FIGs. 5 and 6A-6I.
[0086] In some embodiments, when locker assembly 100 comprises a single set of lockers, only intra-set segments may be used to communicatively couple neighboring controllers. In such embodiments, cables 290 may communicatively couple host controller 150 to a first controller, and controllers to routing PCBs 270.
[0087] Referring to FIGs. 3, 4A-4I, these figures illustrate examples of routing PCB 270 for connecting lockers within a locker set. For ease of explanation, these figures illustrate PCBs comprising only those ports that are necessary for the described functionality of routing PCBs. However, as described elsewhere in this disclosure, a routing PCB may include additional ports. As shown in FIG. 3, PCB 270 comprises a first port 310, a second port 320, and a third port 330. In some examples, PCB 270 may include a solder jumper 350 (shown in FIG. 4E), which is described in more details elsewhere in this disclosure.
[0088] In the exemplary PCB configuration shown in FIG. 3, first port 310 is located or situated at one end of PCB 270 (e.g., a designated bottom of PCB 270), second port 320 is located or situated at the opposite end of PCB 270 (e.g., a designated top of PCB 270), and third port 330 is located or situated between first and second ports 310 and 320 (e.g., on the left or right side of PCB 270). In some embodiments, first and second ports 310 and 320 receive cables along the same (first) direction (e.g., lengthwise of PCB 270), while third port 330 receives cables in a different (second) direction from that of first and second ports 310 and 320 (e.g., crosswise of PCB 270). In some embodiments the second direction is perpendicular to the first direction. However, any configuration of PCB ports 310, 320 and 330 may be considered.
[0089] In some example embodiments, each port 310, 320, and 330, may comprise six pins for communication and / or power distribution. In some example embodiments, each port 310, 320, and 330 may comprise two communication pins and four power distributionAgent Ref: 16792.0001-0030416 pins. In some example embodiments, only two pins may be dedicated to providing power to the lock and the controller. This may be the case if, for example, the lock and the controller can be powered using the same electrical parameters (e.g., voltage, intensity, etc.). In such embodiments, each port of routing PCB 270 may comprise four pins, two for power distribution and two for communication routing, or comprise six pins, two for power distribution and four for communication routing. In some embodiments, the two (or more) extra communication pins may provide for a back-up communication path, for example, in case the main communication path were to fail. Additionally, or alternatively, the two (or more) extra pins may provide a second communication path configured to sustain or enable a second communication protocol. In some embodiments, the ports of PCB 270 may comprise a number of pins, but only part of these pins are used. In such embodiments, cables and ports may be color coded to ensure that cables are connected to the corresponding pins.
[0090] In an example configuration of routing PCB 270 that could be used to communicatively couple controller 110 within locker set 120, other than the last controller, such as PCB 270-1 in FIG. 2, pins 311, 321, 331, 312, 322, and 332 may be wired within PCB 270 and dedicated to providing power to controllers within locker set 120. Pins 313, 323, 333, 314, 324, and 334 may be wired and dedicated to providing power to lock 115 associated with controller 110 coupled to PCB 270. Pins 315, 316, 325, 326, 335, and 336 may be dedicated to routing communication between controllers in locker set 120. A skilled artisan would appreciate that the pins arrangement described with respect to FIG. 3 are only exemplary, and any number and arrangement of pins may be considered as long as they provide for described functionality of routing PCB 270.
[0091] With reference to FIGs. 4A-4I, although not all pins are identified in these figures, it should be understood that where FIGs. 4A-4I illustrate the same pins as shown in FIG. 3, the same description applies to such pins as described with reference to FIG. 3. FIGs. 4A and 4B show exemplary communication paths taken by the messages or response messages within PCB 270-1 when passing between two neighboring controllers of the same set of lockers, where 4A illustrates example details of components suitable to achieve the described functionality. Pin 315 may be connected to pin 336, pin 335 may be connected to pin 325, and pin 326 may be connected to pin 316. A communication 410,Agent Ref: 16792.0001-0030417 for example, a message or a response message from a previous controller, enters PCB 270- 1 through pin 315. PCB 270-1 routes communication 410 to pin 336 for forwarding as communication 412 to a controller coupled to the PCB. A communication output 414 by the controller coupled to the PCB enters PCB 270-1 through pin 335. PCB 270-1 then routes communication 414 to pin 325 for forwarding as communication 416 towards the next controller. A communication 418 from the next controller enters PCB 270-1 through pin 326. PCB 270-1 then routes communication 418 to pin 316 for forwarding as communication 420 towards a host controller or a next controller located in a different locker set.
[0092] In such a configuration, PCB 270-1 may be configured to forward communications received through first port 310 through third port 330, forward communications received through third port 330 through second port 320, and forward communications received through second port 320 through first port 310.
[0093] It will be appreciated by a person skilled in the art that the described routing functionality is not restricted to the specific connectors (i.e., ports) depicted in FIGs. 3 and 4A. Any suitable type of port (i.e., connectors) may be employed instead of the specific examples described in this disclosure, as long as such port and / or connectors provide for implementation of the described functionality. This approach is reflected in FIG. 4B.
[0094] In some embodiments, controllers 110 may use a UART (universal asynchronous receiver / transmitter) communication protocol for transmitting bytes of data in a sequential manner in both directions. In some other embodiments, controllers 110 may use an I2C (Inter-Integrated Circuit) communication protocol for transmitting bytes of data in a sequential manner in both directions. In yet some other embodiments, controllers 110 may use a CAN (Controller Area Network) bus protocol.
[0095] FIGs. 4C and 4D show exemplary power distribution paths within PCB 270-1, where FIG. 4C illustrates example details of components suitable to achieve the described functionality. Pins 311, 321 and 331 may be electrically coupled within PCB 270-1 to form power distribution path 458, and pins 312, 322 and 332 may be electrically coupled within PCB 270-1 to form power distribution path 456. Power distribution paths 458 and 456 may be configured to provide power to controller 110 coupled to PCB 270-1. Pins 314, 324 and 334 may be electrically coupled within PCB 270-1 to form powerAgent Ref: 16792.0001-0030418 distribution path 452, and pins 313, 323 and 333 may be electrically coupled within PCB 270-1 to form power distribution path 454. Power distribution paths 452 and 454 may be configured to provide power to lock 115 associated with controller 110 coupled with PCB 270-1.
[0096] As previously described herein, the disclosed system is not limited to configurations employing four power distribution lines interconnected by four power distribution pins. In certain embodiments, the system may utilize two power distribution lines, each coupled through two power distribution pins within each port. Furthermore, PCB 270-1 may incorporate any suitable type of port. An exemplary implementation of such a PCB, comprising only power distribution paths 452 and 454 and ports 310-330 of any appropriate type, is illustrated in FIG. 4D.
[0097] In some embodiments, a message or communication sent by a controller in one locker set (e.g., controller 110-2 in FIG. 2) towards a controller in the next locker set (e.g., controller 110 in FIG. 2) has a direct (return) path through PCBs coupled to the previous controllers in the locker set (e.g., PCB 270-1 in FIG. 2) and, bypassing the previous controllers (e.g., controller 110-1 in FIG. 2) in that locker set coupled to those PCBs (e.g., PCB 270-1 in FIG. 2).
[0098] In some examples, for a routing PCB communicatively coupled to the last controller of a set of lockers (e.g., PCB 270-2), a solder jumper 350 may be added to that PCB (e.g., PCB 270-2), short-circuiting second port 320. In this configuration, pins 315, 316, 335, and 336 may be dedicated to routing communication between the controllers. FIGs. 4E and 4F show exemplary communication paths taken by the messages or response messages within PCB 270-2 when passing between the controller associated with the last locker of a set and its neighboring controller, where 4E illustrates example details of components suitable to achieve the described functionality. Pin 315 may be connected to pin 336, and pin 335 may be connected to pin 316. A communication 422, for example, a message or a response message from a previous controller enters PCB 270-2 through pin 315. PCB 270-2 routes communication 422 to pin 336 for forwarding as communication 424 to a controller coupled to the PCB. A communication output 426 by the controller coupled to the PCB enters PCB 270-2 through pin 335. PCB 270-2 then routesAgent Ref: 16792.0001-0030419 communication 424 to pin 316 for forwarding as communication 428 towards the host controller or the next controller located in a different locker set.
[0099] In such a configuration, PCB 270-2 may be configured to forward communications received through first port 310 through third port 330, and forward communications received through third port 330 through first port 310. It will be appreciated by a person skilled in the art that such routing functionality is not restricted to the specific connectors (i.e., ports) depicted in FIGs. 3 and 4E. Any suitable type of port (i.e., connectors) may be employed instead of the specific examples described in this disclosure, as long as such port and / or connectors provide for implementation of the described functionality. This approach is reflected in FIG. 4F.
[0100] FIGs. 4G and 4H show exemplary power distribution paths within PCB 270-2, where 4G illustrates example details of components suitable to achieve the described functionality. Pins 311 and 331 may be electrically coupled within PCB 270-2 to form power distribution path 468, and pins 312 and 332 may be electrically coupled within PCB 270-2 to form power distribution path 466. Power distribution paths 468 and 466 may be configured to provide power to controller 110 coupled to PCB 270-2. Pins 314 and 334 may be electrically coupled within PCB 270-2 to form power distribution path 462, and pins 313 and 333 may be electrically coupled within PCB 270-1 to form power distribution path 464. Power distribution paths 462 and 464 may be configured to provide power to lock 115 associated with controller 110 coupled with PCB 270-2.
[0101] As previously described herein, the disclosed system is not limited to configurations employing four power distribution lines interconnected by four power distribution pins. In certain embodiments, the system may utilize two power distribution lines, each coupled through two power distribution pins within each port. Furthermore, PCB 270-2 may incorporate any suitable type of port. An exemplary implementation of such a PCB, comprising only two power distribution paths 462 and 464 and ports 310— 330 of any appropriate type, is illustrated in FIG. 4H.
[0102] In other examples, as illustrated in FIG. 41, PCB 270 communicatively coupled to the last controller of a set of lockers may comprise only two communication ports: first port 310 and third port 330. In this configuration, although not shown in FIG. 41, theAgent Ref: 16792.0001-0030420 communication and power distribution paths are the same as described with respect to FIG. 4C. Although not illustrated in this figure, any type of port may be used.
[0103] Referring to FIGs. 5, 6A-6I, these figures illustrate power PCB 280 for connecting different sets of lockers. PCB 280 comprises a first port 510, a second port 520, and a third port 530. In some examples, PCB 280 may include a solder jumper 550 (shown in FIG. 6E), which is described in more details elsewhere in this disclosure.
[0104] In the exemplary PCB configuration shown in FIG. 5, first port 510, second port 520 and third port 530 are located or situated at one edge of PCB 280. In some embodiments, first, second and third ports 310-330 receive cables in the same direction (e.g., crosse wise of PCB 280). However, any configuration of PCB ports 510, 520 and 530 may be considered.
[0105] In some embodiments, each port 510, 520, and 530, may comprise six pins for communication and / or power distribution. In some example embodiments, each port 510, 520, and 530 may comprise two communication pins and four power distribution pins. In some example embodiments, only two pins may be dedicated to providing power to the lock and the controller, In such embodiments, each port of power PCB 280 may comprise four pins, two for power distribution and two for communication routing, or comprise six pins, two for power distribution and four for communication routing with the two extra communication pins providing for a back-up communication path, for example, in case the main communication path were to fail. In some embodiments, the ports of PCB 280 may comprise six pins, but only four pins are used. In such embodiments, cables and ports may be color coded to ensure that cables are connected to the corresponding pins.
[0106] In an example configuration of power PCB 280 that could be used to communicatively couple locker sets 120, other than the last set of lockers, such as PCB 280-1 in FIG. 6A, pins 511, 521, 531, 512, 522, and 532 may be wired within PCB 280 and dedicated to providing power to the controllers. Pins 513, 523, 533, 514, 524, and 534 may be wired within PCB 280 and dedicated to providing power to a lock associated with the controller coupled to PCB 280. Pins 515, 516, 525, 526, 535, and 536 may be dedicated to routing communication between the controllers in different locker sets 120. A skilled artisan would appreciate that the pins arrangement described with respect to FIG. 5 areAgent Ref: 16792.0001-0030421 only exemplary, and any number and arrangement of pins may be considered as long as they provide for described functionality of routing PCB 270.
[0107] With reference to FIG. 6A-6I, although not all pins are identified in these figures, it should be understood that where FIG. 6A-6I illustrate the same pins as shown in FIG. 5, the same description applies to such pins as described with reference to FIG. 5. FIGs. 6A and 6B show exemplary communication paths taken by the messages or response messages within PCB 280-1 when passing between two neighboring controllers in different lockers sets, where 6A illustrates example details of components suitable to achieve the described functionality. Pin 515 may be connected to pin 536, pin 535 may be connected to pin 525, and pin 526 may be connected to pin 516. A communication 610, for example, a message or a response message from a routing PCB 270 coupled to the PCB, enters PCB 280-1 through pin 515. PCB 280-1 routes communication 610 to pin 536 for forwarding as communication 612 to a routing PCB 270 coupled to the PCB. A communication output 614 by the routing PCB 270 coupled to the PCB enters PCB 280- 1 through pin 535. PCB 280-1 then routes communication 614 to pin 525 for forwarding as communication 616 towards the next power PCB 280. A communication 618 from the next power PCB 280 enters PCB 280-1 through pin 526. PCB 280-1 then routes communication 618 to pin 516 for forwarding as communication 620 towards the host controller or routing PCB 270 coupled to the PCB.
[0108] In such a configuration, PCB 280-1 may be configured to forward communications received through first port 510 through third port 530, forward communications received through third port 530 through second port 520, and forward communications received through second port 520 through first port 510. It will be appreciated by a person skilled in the art that such routing functionality is not restricted to the specific connectors (i.e., ports) depicted in FIGs. 5 and 6A. Any suitable type of port (i.e., connectors) may be employed instead of the specific examples described in this disclosure, as long as such port and / or connectors provide for implementation of the described functionality. This approach is reflected in FIG. 6B.
[0109] FIGs. 6C and 6D show exemplary power distribution paths within PCB 280-1, where 4C illustrates example details of components suitable to achieve the described functionality. Pins 511, 521 and 531 may be electrically coupled within PCB 270-1 toAgent Ref: 16792.0001-0030422 form power distribution path 658, and pins 512, 522 and 532 may be electrically coupled within PCB 270-1 to form power distribution path 656. Power distribution paths 458 and 456 may be configured to provide power to controllers 110. Pins 514, 524 and 534 may be electrically coupled within PCB 280-1 to form power distribution path 652, and pins 513, 523 and 533 may be electrically coupled within PCB 270-1 to form power distribution path 654. Power distribution paths 652 and 654 may be configured to provide power to locks 115 associated with controllers 110, and may be connected to power distribution ports 560 and 570, which are discussed in more details later in this disclosure.
[0110] As previously described herein, the disclosed system is not limited to configurations employing four power distribution lines interconnected by four power distribution pins. In certain embodiments, the system may utilize two power distribution lines, each coupled through two power distribution pins within each port. Furthermore, PCB 280-1 may incorporate any suitable type of port. An exemplary implementation of such a PCB, comprising only two power distribution paths 652 and 654 and ports 510— 530 of any appropriate type, is illustrated in FIG. 6D.
[0111] In some examples, for a power PCB communicatively coupled to the last set of lockers (e.g., PCB 280-2), a solder jumper 550 may be added to that PCB, short-circuiting second port 520. In this configuration, pins 515, 516, 535, and 536 may be dedicated to route communication between the controllers. FIGs. 6E and 6F shows exemplary communication paths taken by the messages or response messages within PCB 280-2 when passing between two neighboring controllers in different locker sets, one of the controllers being in the last set of lockers, where FIG. 6E illustrates example details of components suitable to achieve the described functionality. Pin 515 may be connected to pin 536, and pin 535 may be connected to pin 516. A communication 622, for example, a message or response message from a power PCB 280 coupled to the PCB (e.g., the previous power PCB) enters PCB 280-2 through pin 515. PCB 280-2 routes communication 622 to pin 536 for forwarding as communication 624 to routing PCB coupled to the PCB. A communication output 626 by the controller coupled to the PCB enters PCB 280-2 through pin 535. PCB 280-2 then routes communication 626 for forwarding as communication 628 to pin 516 towards the host controller or power PCB 280 coupled to the PCB.Agent Ref: 16792.0001-0030423
[0112] In such a configuration, PCB 280-2 may be configured to forward communications received through first port 510 through third port 530, and forward communications received through third port 530 through first port 510. It will be appreciated by a person skilled in the art that such routing functionality is not restricted to the specific connectors (i.e., ports) depicted in FIGs. 4 and 6E. Any suitable type of port (i.e., connectors) may be employed instead of the specific examples described in this disclosure, as long as such port and / or connectors provide for implementation of the described functionality. This approach is reflected in FIG. 6F.
[0113] FIGs. 6G and 6H show exemplary power distribution paths within PCB 280-2, where 6G illustrates example details of components suitable to achieve the described functionality. Pins 511 and 531 may be electrically coupled within PCB 280-2 to form power distribution path 658, and pins 512 and 532 may be electrically coupled within PCB 280-2 to form power distribution path 656. Power distribution paths 658 and 656 may be configured to provide power to controllers 110. Pins 514 and 534 may be electrically coupled within PCB 280-2 to form power distribution path 652, and pins 513 and 533 may be electrically coupled within PCB 280-1 to form power distribution path 654. Power distribution paths 652 and 654 may be configured to provide power to locks 115 associated with controllers 110.
[0114] As previously described herein, the disclosed system is not limited to configurations employing four power distribution lines interconnected by four power distribution pins. In certain embodiments, the system may utilize two power distribution lines, each coupled through two power distribution pins within each port. Furthermore, PCB 280-1 may incorporate any suitable type of port. An exemplary implementation of such a PCB, comprising only two power distribution paths 652 and 654 and ports 510— 530 of any appropriate type, is illustrated in FIG. 6D.
[0115] In other examples, as illustrated in FIG. 61, PCB 280-2 communicatively coupled to the last set of lockers may comprise only two communication ports: first port 510 and third port 530. In this configuration, although not shown in FIG. 61, the communication and power distribution paths are the same as described with respect to FIG. 6C. Although not illustrated in this figure, any type of port or power supply connectors may be used.Agent Ref: 16792.0001-0030424
[0116] Second type of PCB 280 may also be configured to support power supply to the plurality of sets of lockers via power supply connectors 560 and 570. In some embodiments, the number of lockers communicatively connected in series may create a voltage drop along the bus. Power supply connectors 560 and 570 may provide a more stable power supply for the controllers and lockers. In some embodiments, power supply connectors may be configured to couple PCBs 280 with power cables 295. In such embodiments, power provided by the power source may be adapted to match the power requirements of controllers 110 and locks 130, and distributed to PCBs 280 through power cables 295. PCBs 280 may then be configured to provide appropriate power to controllers 110 and locks 130 through cables 290 and connectors 310, 320, 330, 510, 520, and 530. Although two power supply connectors are depicted in several figures of the present application, any suitable number of power supply connectors may be used. For example, one unique power supply connector 570 may be employed, as illustrated in FIGs. 6B, 6D, 6F and 6H. This configuration with a single power supply connector may be particularly advantageous when both the locks and the controllers are powered by the same power supply, as previously described in this disclosure.
[0117] FIG. 7 illustrates a method 700 for controlling or operating a locker system comprising a plurality of lockers using a host controller. The plurality of lockers includes a first locker and a last locker, with the lockers communicatively connected in series via a bus from the first locker to the last locker. Each locker of the plurality of lockers is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller. Method 700 facilitates communication between the host controller and the plurality of controllers in the locker system, enabling actions such as unlocking and locking one or more lockers, and gathering data from lockers, such as capturing and recording data from sensors associated with or located within lockers in the locker system.
[0118] Method 700 begins at step 710, where the host controller sends a communication, such as a message, via the bus to a controller of the first locker of the plurality of lockers. The message identifies a selected locker.
[0119] For example, the communication or message may comprise instructions to open the selected locker. In some embodiments, the locker has been selected by a user via userAgent Ref: 16792.0001-0030425 interface device of the host controller or an application communicatively coupled to the host controller, such an application running on a mobile device. In some embodiments, during an initialization stage, the host controller may select a locker that is not present in the plurality of lockers, for example, has an identification number higher than any of the controllers of the plurality of lockers.
[0120] In some other embodiments, the selected locker may comprise at least one of a sensor (e.g., a weight sensor, a temperature sensor, a pressure sensor, etc.) or an image capturing device, and the message may comprise a request to gather data by the at least one sensor or image capturing device. When a request to gather data by the at least one sensor or image capturing device is received by a controller, a processor comprised in the controller (e.g., processor 111) may send instructions to the sensor to gather data and store the gathered data on a memory, also comprised in the controller (e.g., memory 112). The data stored in the memory may then be sent towards the host controller. A more detailed discussion on the transmission of data towards the host controller is provided later in this disclosure.
[0121] In some embodiments, the selected locker may comprise a lighting device (e.g., LED light), and the message may comprise instructions to turn on / off the light in the locker or change the color of the light. The color of the light may indicate that the locker is full, empty, or need maintenance. The selected locker may also comprise heating / refrigerating elements and a temperature measuring device. The message may include instructions to switch on or off the light in the locker. The message may also include instructions to keep the temperature inside the locker around a preset value. For example, if the selected locker comprises a refrigerating element, a temperature sensor and a weight sensor, the message may include the following instructions: if the value recorded by the weight sensor is above a predefined threshold, turn on the refrigerating element to keep the temperature inside the locker below a predefined value. If not, turn off the refrigerating element. In other examples, the selected locker may comprise RFID (Radio Frequency Identification) or NFC (Near-Field Communication) chips. If the objects to be stored in the locker also have an RFID or NFC chip, the RFID or NFC chip may be read by the controller of the locker to identify the object being placed in the selected locker.Agent Ref: 16792.0001-0030426
[0122] In step 712, method 700 enters an iterative process. A controller that receives the message updates the message and sends the updated message to a controller of the next locker in the series. This process continues until the message is received by a controller of the selected locker or a controller of the last locker, as determined in step 714. It is to be understood that if the first controller is the selected controller, method 700 skips step 712 to proceed directly to step 714.
[0123] The message and the updated message may each comprise a first identifier identifying the controller receiving the message or the updated message respectively, and a second identifier identifying the controller of the selected locker. An identifier of a controller may be a positive integer number. In some embodiments, a controller identifier is a positive integer number between 0 and the number of controllers minus 1. In some examples, the identifier of the first controller may be 0. The plurality of controllers may have sequentially numbered identifiers. For example, an identifier of a controller i, id.t, may be equal to idi = id^i+o , where oc is an integer and idf-i Is the identifier of the previous controller, oc may for example be equal to 1, 2, 5 or any suitable integer number. In another example, a controller identifier may be calculated based on any bijective function for which the input is the identifier of the previous controller.
[0124] If the message comprises, for example, instructions to open the selected locker, the selected locker being associated with controller 15 for example, the message sent by the host controller to the controller of the first locker may take the following form: <0: 15>, meaning, this message is sent to controller 0 and controller 15 should open the door of the corresponding locker.
[0125] In some embodiments, updating the message by the controller that received the message may comprise updating the first identifier with an identifier of the controller associated with the next locker. In the example given earlier, upon receiving message <0: 15> and because neither the last controller nor the selected controller has been reached, the controller of the first locker may update the message to <1 : 15> and send the updated message to the second controller. Similarly, because the second locker is not the selected locker, upon receiving the message <1 : 15>, the controller of the second locker may update the message to <2: 15> and send the updated message to the third controller. This processAgent Ref: 16792.0001-0030427 may continue until the controller of the sixteenth locker (locker 15) receives the message <15:15>
[0126] If the message is received by the controller of the last locker, as determined in step 716, the method 700 proceeds to step 718. In step 718, the controller of the last locker generates a response message. Following step 718, in step 726, the controller associated with the last locker sends the response message to the host controller.
[0127] If the condition in step 716 is not met, meaning that the message is received by the controller of the selected locker, where the selected locker is not the last locker, the method 700 proceeds to step 720. In some embodiments, when a controller receives a message in which the second identifier matches that controller’s identifier, the controller determines that it controls the selected locker.
[0128] In step 720, the controller of the selected locker generates a response message. For example, the message may comprise instructions to perform an action by the controller having the identifier matching the second identifier. In some embodiments, the action may be opening the selected locker. Additionally, or alternatively, the action may be gathering data in the selected locker, and changing the lighting or temperature inside the selected locker. Pursuant to such an instruction included in the received message, the controller of the selected locker may perform the requested action, and generate the response message reflecting whether the requested action has been performed and / or provide requested information (e.g., sensor measurements).
[0129] According to some exemplary embodiments, the instruction may comprise an instruction to open the selected locker, in which case the controller having the identifier matching the second identifier unlocks the corresponding lock and sends the response message comprising a confirmation that the selected locker has been opened. In such embodiments, if the selected locker is associated with controller 15 for example, the response message may take the following form: <15: 15o>, confirming that locker 15 has been opened.
[0130] Alternatively, or additionally, the instruction may comprise a request to gather data by at least one sensor or image capturing device, in which case the controller having the identifier matching the second identifier causes the at least one sensor or image capturing device of the respective locker to gather data and sends the response message comprisingAgent Ref: 16792.0001-0030428 the gathered data. In such embodiments, if the selected locker is associated with controller 15 for example, the response message may take the following form: <15: 15-30, specifying that the temperature inside locker 15 is 3°C.
[0131] Following step 720, method 700 enters another iterative process in step 722. The response message is forwarded to the controller of the next locker in the series. This process continues until the response message reaches (is received by) the last locker, as determined in step 724.
[0132] Finally, in step 726, the controller associated with the last locker sends the response message to the host controller.
[0133] If the first identifier and the second identifier in the message received by the controller of the last locker fail to match, the controller of the last locker may be configured to send the response message comprising the identifier of the controller of the last locker and the identifier of the controller of the selected locker. In this manner, all controllers in the series may self-identify. The process of self-identification for the controllers will be discussed in further detail later in this disclosure, at least with reference to FIGs. 13-18, providing a more comprehensive explanation of how each controller establishes its unique identity within the system.
[0134] For example, when method 700 is performed in response to the assembly of lockers being powered up, the identifier of the selected controller included by the host controller in the message may be a predefined number that is higher than the number of the plurality of lockers in the assembly of lockers. Alternatively, the identifier of the selected controller may be a predefined number that is different than an identifier of any of the plurality of lockers in the assembly of lockers.
[0135] In some examples, the assembly of lockers may be powered back up after a power outage. In such cases, the lockers may be configured to stay closed and locked while the power is out.
[0136] In some other examples, the assembly of lockers may be powered down and powered back up because a component malfunction has been detected. For example, malfunction of a component may be detected if a request message is sent by the host controller, but no response message is received within a preset time period. In such cases, the malfunctioning component may simply be replaced, taking advantage of theAgent Ref: 16792.0001-0030429 modularity of the locker assembly system. This process of self-monitoring of the components will be discussed in further details later in this disclosure, for example with reference to FIGs. 14-15.
[0137] In yet some other examples, the locker assembly may be powered down and powered back up if the number or configuration of lockers are being changed. A method for adding or removing a locker within the assembly of lockers is described in more details elsewhere in this disclosure.
[0138] FIG. 8 A and FIG. 8B illustrate the communication paths and message routing within the locker control system, corresponding to method 700 described in FIG. 7.
[0139] FIG. 8A depicts a scenario where the selected locker is one of the existing lockers in the system, but not the last locker. A host controller initiates communication by sending a message, represented by a solid line, to the first controller in the series. The message is then updated and passed sequentially through intermediate controllers until reaching the selected controller. Upon receiving the message, the selected controller generates a response message, shown as a dashed line. This response message is then forwarded through subsequent controllers until reaching the last controller, which sends the response back to the host controller.
[0140] Consider an exemplary implementation where the locker assembly comprises 15 lockers. In this exemplary implementation, if the eleventh locker needs to be unlocked , the method for operating the lockers may proceed as follows. The host controller sends the request message <0: 10> to the first controller. Upon receiving the request message, the first controller identifies that the first identifier does not match the second identifier, modifies the request message to <1 : 10>, and sends the modified (updated) message to the second controller. The same action is performed by subsequent controllers until the eleventh controller receives the request message <I0:I0>. The eleventh locker then identifies that the first identifier matches the second identifier, sends instructions to open the lock associated with the eleventh locker, and, once the lock is open, generates the response message <11 : 10o>. The eleventh controller then sends the response message to the twelfth controller. The twelfth controller identifies that the received message is a response message and sends it unmodified to the thirteenth controller. This process continues until the fifteenth controller, which is the last controller, receives the responseAgent Ref: 16792.0001-0030430 message <14:10o>. The last controller then sends the response message to the host controller, bypassing all the controllers in the locker assembly.
[0141] Instead of, or in addition to, the instruction to open the eleventh locker, the request message may include a query about the temperature inside the eleventh locker, For example, the request message sent by the host controller may read <0:10T?> and the response message generated by the eleventh controller, after obtaining data gathered by a temperature sensor inside the eleventh locker, may read <11 : 10-30, indicating that the temperature inside the eleventh locker is 3°C.
[0142] In some examples, the request message may comprise both an instruction to open the selected locker and a query about data measured by sensors inside the selected locker. For example, where the query relates to temperature, the request message sent by the host controller may, for example, read <0: 10: 10T?>, and the response message generated by the eleventh controller may read <11 : lOo: 10-30.
[0143] FIG. 8B illustrates two alternative scenarios: when the selected locker is the last locker in the series, or when the selected locker does not exist within the system. In both cases, the initial message from the host controller, depicted by a solid line, is passed through all controllers in the series. When the message reaches the last controller, the last controller generates a response message, represented by a dashed line. This response message is then sent directly back to the host controller. In the first case, when the selected locker is the last locker of the series, the response message may comprise a confirmation that the locker has been opened, or data gathered by at least one of a sensor or image capturing device comprised in the selected sensor, as explained previously with reference to FIG. 7. In the second case, when the selected locker does not exist within the system, the response message may comprise the identifier of the controller associated with the last locker, indicating to the host controller the number of lockers comprised in the assembly of lockers.
[0144] Consider the previous example where the locker assembly comprises 15 lockers. If, for example, the locker assembly has been powered off and powered back on, the host controller may initiate an initialization routine. In such cases, the process may proceed as follows. The host controller sends a request message to the first controller, requesting that locker number 9001 be open <0:9001>. The first controller identifies that the firstAgent Ref: 16792.0001-0030431 identifier does not match the second identifier, modifies the request message to <1 :9001> and sends the modified (updated) request message to the second controller. This process continues until the fifteenth controller, which is the last controller, receives the request message <14:9001>. The last controller then sends the response message <14:9001> to the host controller, bypassing all the controllers in the locker assembly. Upon receiving the request message from the last controller, the host controller identifies that the locker assembly comprises fifteen lockers, and may store this information in a local memory, and / or remotely if the host controller is connected to a network.
[0145] In both figures, the solid lines represent the path of the initial message from the host controller and the updated messages, while the dashed lines indicate the route of the response message back to the host controller. This visual representation demonstrates the sequential nature of communication within the locker control system, highlighting how messages are passed from one controller to the next until reaching their intended destination or the end of the controller series.
[0146] FIGs. 9A-9B illustrate front and side views of a modular locker system 900. As depicted, modular locker system 900 includes one or more locker units 910 defining plurality of lockers.
[0147] Each locker has a door 102, a lock 115 (not shown in FIG. 9A-9B) configured to lock and unlock door 102, and a controller 110 (not shown in FIG. 9A-9B) configured to be connected to lock 115 for controlling lock 115. The plurality of lockers have a plurality of corresponding controllers. As shown in FIG. 9C, door 102 may be sized to match the opening of locker 101 so as to enclose the interior of the locker when door 102 is closed. In some examples, door 102 may be secured to the corresponding locker 101 using hardware, for example the door hinges shown in FIG. 9C. Lock 115 may be configured to couple with a hoop on door 102 to secure door 102 in a locked position. Controller 110 may be communicatively connected to lock 115 of locker 101, as shown in FIG. IE. In some examples, controller 110 and lock 115 may be integrated into a lock unit 130, as depicted in FIG. ID.
[0148] In FIG. 9B, user interface 905, previously described with reference to FIG. 1 A, is located in a top panel of locker unit 910, allowing users to interact with modular locker system for locker assignment and access. User interface 905 may, for example, compriseAgent Ref: 16792.0001-0030432 a screen allowing users to select which locker to open or enter a confirmation number for a pre-booked item comprised in a locker.
[0149] Modular locker system 900 comprises host controller 150 (not shown in FIG. 9A- 9B) and bus system 160 (not shown in FIG. 9A-9B) for connecting the plurality of controllers in series from a first controller of a first locker to a last controller of a last locker and connecting host controller 150 to the first controller. Bus system 160 is configured to define at least a first communication path from host controller 150 to the first controller through the plurality of controllers in series to the last controller and a second communication path from the last controller to host controller 150, bypassing the plurality of controllers. Host controller 150 is configured to send instructions to the plurality of controllers through the first communication path and receive response messages through the second communication path. For example, instructions sent by host controller 150 would reach each controller 110 of modular locker system 900, while a response message sent from the last controller to host controller 150 would not reach any controller 110. In some embodiments, modular locker system 900 comprises a plurality of locker units 910, wherein different locker units 910 are configured to be connected in series via sections of bus system 160.
[0150] In some embodiments, bus system 160 of modular locker system 900 may comprise cables and at least one printed circuit board (PCB). This configuration may allow for efficient and organized connectivity between various components of the locker system. Exemplary implementations of bus system 160 are given with regard to FIGs. 10A-10B.
[0151] The at least one PCB may be of two types. A first type of PCB 270 (routing PCB) may be configured to couple controllers associated with lockers within the same locker unit. This type of PCB may facilitate communication and power distribution among neighboring controllers. A second type of PCB 280 (power PCB) may be configured to couple different locker units. This type may enable connectivity between separate locker units, allowing for scalability and modular expansion of the system.
[0152] The cables used in bus system 160 may be of different types, each serving a specific purpose. Power and communication cables 1010 may be configured to distribute both power supply and communication between the controllers. This dual-function cable may reduce the overall number of cables required in the system. High voltage cables 1020Agent Ref: 16792.0001-0030433 may be dedicated to distributing power supply for the controllers. This type may ensure a stable power source for the controllers 110. Low voltage cables 1030 may be specifically designed to distribute power supply for locks 115. By using separate cables for lock power, the system may, for example, maintain security even if other parts of the system experience power issues. A more detailed discussion on the coupling between PCBs and cables is given somewhere else in this disclosure, with regard to FIGs 3 to 6A6I.
[0153] The use of different types of PCBs and cables may provide flexibility in system design and installation. For instance, routing PCBs may be used within individual locker units, while power PCBs may be employed to connect separate units. In this manner, only a limited number of power PCBs may be required when compared to the overall number of PCBs used by the system. Similarly, the different cable types may be used as needed based on the specific power and communication requirements of different parts of the system. In this manner, the overall cost of the locker assembly can be reduced because a more complex components are used sparingly, rather than throughout the locker assembly.
[0154] Referring back to FIGs. 9A-9C, locker unit 910 may comprise at least four panels, including two vertical panels 940 and two horizontal panels 930. In some embodiments, locker unit 910 may comprise a third vertical panel 940. In some other embodiments, locker unit may be placed against a wall. In both cases, objects placed inside each locker may only be accessed by opening the corresponding door. In some embodiments, panels may be assembled using joinery like, for example, crenelated joinery as illustrated in FIGs. 9B-9D. Panels may also be secured together using fasteners, such as screws or dowel joints.
[0155] All panels can be made of durable materials, such as wood, fiberboard, particle board, composite lamber, or steel. Different materials may be used for different panels, for example, for structural reasons (e.g., a particular locker or locker set must be able to support a certain weight, a certain type of environment must be maintained within a particular locker or locker set, e.g., temperature, humidity, etc.) or decorative reasons (to compliment the environment housing a locker set).
[0156] In some embodiments, at least one locker unit 910 comprises a plurality of lockers. Locker units 910 may be arranged vertically, as shown by four units on left side of FIGs. 9A-9B, or horizontally, as depicted by two units on right side of FIGs. 9A-9B. In someAgent Ref: 16792.0001-0030434 embodiments, modular locker system 900 may only comprise vertical locker units. In some other embodiments, modular locker system 900 may only comprise horizontal locker units. In yet some other embodiments, modular locker system 900 may comprise both horizontal and vertical locker units.
[0157] In some embodiments, as illustrated in FIG. 9D, two neighboring lockers within a locker unit 910 may be separated by a panel 950. In some embodiments, panel 950 may be positioned horizontally between the vertical panels 940, dividing the internal space of locker unit 910 into distinct compartments (locker’s interior). For example, horizontal panel may be placed in vertical locker units. In some other embodiments, panel 950 may be positioned vertically. For example, vertical panels may be placed in horizontal locker units. In some examples, a locker unit may comprise both vertical and horizontal panels separating the lockers comprised in locker unit 910. This configuration may allow for efficient use of space within locker unit 910 while providing clear separation between individual lockers.
[0158] Vertical panels 940 may be configured to ease positioning of panels 950 during assembly of locker unit 910. For example, vertical panels 940 may include pre-formed grooves 960. Vertical panels 940 may include multiple groves 960 at different heights, facilitating such adjustments in panel 950 placement and consequently in locker size. Once positioned to separate locker unit 910 into a plurality of lockers, panels 950 may be secured to vertical panels 940. In some embodiments, vertical panels 940 may include openings for receiving dowels to facilitate a dowel joint between panels 950 and vertical panels 940. In other embodiments, vertical panels 940 may include holes to facilitate securing of panels 950 to vertical panels 940 using fasteners, such as screws. In yet other embodiments, panels 950 may be secured to vertical panels 940 using cam screws and cam lock nuts, which enable easy securing and removal of panels 950. In yet other embodiments, the top side of panels 950 and the inside of vertical panels 940 may include blind holes to provide means to attach brackets for securing shelving panels 104 to vertical panels 940. A skilled artisan would appreciate that other means for positioning and / or securing panels 950 within locker set 120 may be employed.
[0159] In some embodiments, the number of panels 950 separating lockers within locker unit 910 may be equal to the number of lockers in the locker unit minus 1. For example,Agent Ref: 16792.0001-0030435 with reference to FIG. 9D, if a locker unit 910 contains six lockers, there may be five panels 950 separating these lockers. This arrangement may ensure that each locker is properly delineated within the unit.
[0160] In some implementations, panels 950 may be removable or adjustable, potentially allowing for customization of locker sizes within a single locker unit 910. This flexibility may enable the modular locker system to adapt to varying storage needs. The customization of locker sizes and configurations will be detailed later in this disclosure.
[0161] FIG. 11 illustrates a method 1100 of assembling a modular locker system, for example modular locker system 900 depicted in FIG. 9A-9B. Method 1100 comprises several steps that may be executed in a flexible order based on user convenience.
[0162] In step 1112, at least one panel 950 is positioned within locker unit 910 to define a plurality of lockers within locker unit 910. The plurality of lockers comprises at least a first locker and a last locker. Panel 950 may be horizontal. Alternatively, panel 950 may be vertical. Panel 950 may be inserted into groves 960 on vertical panels 940, as illustrated in FIG. 9D and explained earlier in this disclosure. Methods for installing and securing panel 950 within locker unit 910 have been provided earlier in this disclosure with reference to FIG. 9D.
[0163] Step 1114 involves securing a plurality of doors 102 to locker unit 910 to enclose respectively the plurality of lockers. The plurality of lockers comprises a first door to enclose the first locker and a last door to enclose the last locker. As shown in FIG. 9C, door 102 may be sized to match the opening of the locker so as to enclose the locker when closed. In some examples, door 102 may comprise a transparent portion (e.g., glass, plastic, e.g., acrylic, SiCellA, or other material have a certain transparency level) to allow users to see the locker’s interior. Methods for securing doors 102 to a locker unit 910 have been provided earlier in this disclosure with reference to FIG. 1C.
[0164] In step 1116, a plurality of locks 115 may be secured, or otherwise fitted, to locker unit 910. Each locker may have a lock 115 of the plurality of locks positioned to cooperate with door 102 of the locker. Each lock 115 has an associated controller 110 configured to control lock 115. The plurality of locks may comprise a lock configured to lock and unlock the first door, and a lock configured to lock and unlock the last door. Locks may be secured to locker unit 910 using any type of fasteners (e.g., screws). In some embodiments, lockAgent Ref: 16792.0001-0030436115 may comprise two parts (e.g., electromagnetic lock, latch hoop lock) with one part being secured to the door and a second part being secured inside the locker. In some other embodiments, lock 115 may comprise only one part (e.g., deadbolt lock) secured either on the door or in the locker, while the locker or the door comprises a corresponding blind hole. In some embodiments, lock 115 may be configured to maintain a locked state (is biased towards being locked), unless instructed otherwise. In some embodiments, lock 115 is biased to maintain the locked state when lock 115 and controller 110 are powered off.
[0165] Step 1118 involves connecting controllers 110 associated with the plurality of lockers in series via a bus system from a first controller of the first locker to a last controller of the last locker, for example bus system 160.
[0166] If at least one locker unit comprises more than one locker, connecting controllers 110 may comprise connecting controllers within locker units. In some embodiments, connecting controllers 110 within a locker unit may include using cables (e.g., communication and power cable 1010) and PCBs (e.g., routing PCB 270). As detailed with regard to FIG. 2, coupling (connecting) two controllers 110 within the same locker unit may comprise coupling a first controller in the locker unit to a first routing PCB (e.g., PCB 270), coupling the first routing PCB (e.g., PCB 270) to a second routing PCB (e.g., PCB 270) and coupling the second routing PCB (e.g., PCB 270) to a second controller 110 using cables (e.g., communication and power cable 1010). In some embodiments, as illustrated in FIGs. 10A-10B, coupling PCBs using cables, or coupling a PCB and a controller using cables may include plugging a plug associated with cable 1010 into a port (e.g., port 310-330) attached to the controller or the PCB. In some other embodiments, coupling PCBs using cables, or coupling a PCB and a controller using cables may include plugging plugs associated with each individual sub-cable of cable 1010 into the pins (e.g., pins 311-316, 321-326, 331-336) associated with a port (e.g., port 310-330) attached to the controller or the PCB.
[0167] If the modular locker system comprises more than one locker unit 910, connecting controllers 110 may comprise connecting controllers located in different locker units, hereby connecting different locker units. In some embodiments, connecting controllers 110 within a locker unit may include using cables (e.g., communication and power cableAgent Ref: 16792.0001-00304371010, high voltage cable 1020, low voltage cable 1030) and PCBs (e.g., routing PCB 270, power PCB 280). As detailed with regard to FIG. 2, coupling (connecting) two controllers 110 located in different units may comprise coupling a first controller to a first routing PCB (e.g., PCB 270), coupling the first routing PCB (e.g., PCB 270) to a first power PCB (e.g., PCB 280), coupling the first power PCB (e.g., PCB 280) to a second power PCB (e.g., PCB 280), coupling the second power PCB (e.g., PCB 280) to a second routing PCB (e.g., PCB 270) and coupling the second routing PCB (e.g., PCB 270) to a second controller 110 using cables (e.g., communication and power cable 1010, high voltage cable 1020, low voltage cable 1030). In some embodiments, as illustrated in FIGs. 10A-10B, coupling PCBs using cables, or coupling a PCB and a controller using cables may include plugging a plug associated with cable 1010 into a port (e.g., port 310-330, 510-530, 560- 570) attached to the controller or the PCB. In some other embodiments, coupling PCBs using cables, or coupling a PCB and a controller using cables may include plugging plugs associated with each individual sub-cable of cable 1010 into the pins (e.g. pins 311-316, 321-326, 331-336) associated with a port (e.g., port 310-330, 510-530) attached to the controller or the PCB. Coupling PCBs using cables may also include plugging high voltage cables 1020 and low voltage cables 1030 into power distribution ports (e.g., ports 560-570).
[0168] In step 1120, the first controller is connected to a host controller 150 via the bus system. In some embodiments, connecting (coupling) the first controller to the host controller may include using cables (e.g., communication and power cable 1010, high voltage cable 1020, low voltage cable 1030) and PCBs (e.g., routing PCB 270, power PCB 280). As detailed with regard to FIG. 2, coupling (connecting) the first controller to the host controller may comprise coupling the first controller to a routing PCB (e.g., PCB 270), coupling the routing PCB (e.g., PCB 270) to a power PCB (e.g., PCB 280), and coupling the power PCB (e.g., PCB 280) to the host controller using cables (e.g., communication and power cable 1010, high voltage cable 1020, low voltage cable 1030). In some embodiments, as illustrated in FIGs. 10A-10B, coupling PCBs using cables, or coupling a PCB and a controller using cables may include plugging a plug associated with cable 1010 into a port (e.g., port 310-330, 510-530, 560-570) attached to the controller or the PCB. In some other embodiments, coupling PCBs using cables, or coupling a PCBAgent Ref: 16792.0001-0030438 and a controller using cables may include plugging plugs associated with each individual sub-cable of cable 1010 into the pins (e.g. pins 311-316, 321-326, 331-336) associated with a port (e.g., port 310-330, 510-530) attached to the controller or the PCB. Coupling the power PCB to the host controller using cables may also include plugging high voltage cables 1020 and low voltage cables 1030 into power distribution ports (e.g., ports 360- 370) associated with the power PCB or the host controller.
[0169] The bus system is configured to define at least a first communication path, from host controller 150 to the last controller of the plurality of controllers of the system, through the plurality of controllers in series starting with the first controller, and a second communication path, from the last controller to host controller 150, bypassing the plurality of controllers. In the context of this disclosure, defining a communication path from the last controller to host controller 150, bypassing the plurality of controllers may result in a message sent from the last controller going through all PCBs of bus system 160 without going through any of controllers 110. The corresponding PCB cabling and communication paths have been discussed in more detailed earlier in this disclosure, for example, with reference to FIGs. 3 to 6A-6I.
[0170] Method 1100 may further comprise connecting a first locker unit and a second locker unit of the at least one locker unit via the bus system. This allows for expansion of the modular locker system as needed. In some embodiments, the additional locker unit may be placed at one end of modular locker system 900. In some other embodiments, the additional locker unit may be placed between two locker units. In some embodiments, different locker units may be secured together using fasteners to improve the stability and robustness of modular locker system 900. In some other embodiments, different lockers units may not be secured together to improve the modularity of modular locker system 900 and facilitate the reconfiguration of locker units 910.
[0171] It should be noted that the steps of method 1100 are not limited to the specific order depicted in FIG. 11 and rather may be executed in order that is more convenient for the user, providing flexibility in the assembly process. For example, as shown in FIG. 12, controllers 110 and locks 115 may be secured to a vertical panel of locker unit 910 before panels 950 are positioned within locker unit 910 and doors 102 are secured to the locker unit.Agent Ref: 16792.0001-0030439
[0172] FIG. 13 illustrates a method 1300 for modifying a locker configuration within a locker unit, such as a locker unit 910. This method may be used to introduce a new locker into an existing locker unit, effectively dividing one locker into two separate compartments (locker interiors).
[0173] Method 1300 begins with step 1310, which involves removing a door 102 from an existing locker within locker unit 910. This step may be performed by detaching door 102 from its hinges or mounting points on vertical panels 940 of locker unit 910.
[0174] In step 1312, controller 110 associated with the respective locker is disconnected. This may involve detaching controller 110 from its mounting position on vertical panel 940 and disconnecting it from bus system 160. A more detailed discussion on the connection of controllers has been provided earlier in this disclosure. A skilled person would deduce the steps necessary to disconnect a controller 110 from that disclosure.
[0175] Step 1314 involves removing lock 115 that was associated with removed door 102. This lock 115 may have been mounted on vertical panel 940 or integrated into door 102 itself, or both.
[0176] In step 1316, a panel 950 is positioned within the now-open locker space. This panel 950 may be inserted into the locker space, e.g., horizontally or vertically into groves 960 on vertical panels 940, effectively dividing the locker into two separate compartments. Panel 950 may be similar to those used in the initial assembly of locker unit 910, as described in relation to FIG. 9D. A more detailed description of the installation of a panel 950 has been provided earlier in this disclosure, for example with respect to FIG. 9D.
[0177] Step 1318 involves securing two locks 115 in the newly divided locker space, with one lock positioned on each side of newly inserted panel 950. These locks 115 may be mounted on vertical panels 940 or integrated into new doors 102 that will be installed to enclose the newly created lockers, or both.
[0178] Finally, in step 1320, controllers 110 associated with two new locks 115 are connected in series to each other and to the other controllers in locker unit 910. This connection is made using segments of bus system 160, which may include the various types of PCBs and cables described earlier in relation to FIGs. 10A-10B.
[0179] Method 1300 demonstrates the modularity and flexibility of described locker systems, allowing for reconfiguration and expansion of storage options within existingAgent Ref: 16792.0001-0030440 locker unit 910. By following method 1300, a single larger locker can be efficiently converted into two smaller lockers, adapting to changing storage needs without requiring the installation of an entirely new locker unit.
[0180] In some implementations, a method for removing a locker from an existing locker unit 910 may be provided. This method may be used to combine two smaller lockers into a single larger compartment, effectively increasing the storage capacity for larger items within the modular locker system.
[0181] The method may begin with removing doors 102 from two adjacent lockers within the locker unit 910. This step may involve detaching doors 102 from their respective hinges or mounting points on vertical panels 940 of locker unit 910.
[0182] Next, controllers 110 associated with both lockers may be disconnected. This may include detaching controllers 110 from their mounting positions on vertical panels 940 and disconnecting them from bus system 160.
[0183] The method may then proceed with removing locks 115 that were associated with removed doors 102. These locks 115 may have been mounted on vertical panels 940 or integrated into doors 102 themselves. Various lock configurations have been described earlier in this disclosure.
[0184] Following the removal of locks 115, panel 950 separating the two lockers may be removed. Panel 950 may, for example, be extracted from groves 960 on vertical panels 940. If panel 950 was secured to locker unit 910 using fasteners described earlier in this disclosure, such fasteners may need to be unfastened. For example, panel 950 may need to be un-secured before it is extracted from grooves 960. Removing panel 950 effectively combines the two separate compartments (locker interiors) into a single larger space.
[0185] Method 1300 may then involve securing a single lock 115 in the newly combined locker space (locker interior). This lock 115 may be mounted on one of vertical panels 940 or integrated into a new, larger door 102 that will be installed to enclose the newly created larger locker. In some embodiments, one of the previously mounted locks may be used. In other embodiments, a new lock may be used. Any type and configuration of lock described earlier in this disclosure may be used here.Agent Ref: 16792.0001-0030441
[0186] A new, larger door 102 may then be secured to locker unit 910 to enclose the combined locker interior space. This door 102 may be sized to match the opening of the newly created larger locker.
[0187] Finally, controller 110 associated with new lock 115 may be connected in series to the other controllers in locker unit 910. This connection may be made using segments of bus system 160, which may include the various types of PCBs and cables described earlier.
[0188] Method 1300 for removing a locker further demonstrates the adaptability of the modular locker system. By following these steps, two smaller lockers can be efficiently converted into one larger locker, accommodating changes in storage requirements without necessitating a complete overhaul of the locker unit 910.
[0189] FIG. 14 illustrates a method 1400 for controlling or operating a locker system comprising a plurality of lockers using a host controller. The plurality of lockers is communicatively connected in series using a first bus and comprises a first locker and a last locker. Each locker of the plurality of lockers is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller. Method 1400 allows the controllers to self-identify (e.g., self-allocate an identifier), facilitating any subsequent communication protocol between the host controller and the controllers. For example, the locker system being controlled or operated by method 1400 may be locker system described with reference to FIGs. 1A-1C or 9A- 9D.
[0190] Method 1400 begins at step 1410, where a message configured to enable the first controller to determine an identifier of the first controller is sent, via the first bus, from the host controller to a first controller associated with the first locker. For example, the message may include an identifier of the first controller for reading by the first controller. As another example, the message may include a starting point, e.g., a number to be used by the first controller to determine its identifier using a pre-defined algorithm.
[0191] As described earlier in this disclosure, with reference to FIG. 7 for example, an identifier of a controller may be a positive integer (e.g., 1, 2, 3), optionally a positive integer number between 0 and the number of controllers minus 1. The controllers may, for example, have sequentially numbered identifiers. An identifier may also be a hexadecimal value (e.g., 0x01, 0x02, 0x03), or any kind of alphanumeric sequence (e.g., Al, B2, C3)Agent Ref: 16792.0001-0030442 unique to each controller allowing each controller to identify itself, and the host controller to identify each of the controllers. Alternatively, the identifier could be a MAC address (e.g., OO: 1A:2B:3C:4D:5E), aUUID (e.g., 123e4567-e89b-12d3-a456-426614174000), or even a combination of locker number and column / row position (e.g., L1C2R3 for Locker 1, Column 2, Row 3). In the case where positive integers are used to identify the controllers, the identifier of the first controller may be 0.
[0192] In step 1412, method 1400 enters an iterative process. This process, starting from the first controller and until the last controller associated with the last locker is reached, includes, for each controller, determining an identifier of the controller, by the controller, based on the message received from a previous controller. For example, the first controller (i.e., a previous controller in this iteration) sends a message to the second controller, where the second controller uses information included in the message to determine its identifier.
[0193] In some embodiments, the determination of the identifier may be based on a bijective function applied to at least part of the received message. For example, a bijective function may be used to map the received message or a portion thereof to a unique identifier for each controller. The format of the identifier may be dependent on the communication protocol utilized by the first bus. For example, when employing the I2C protocol, the addressing scheme (e.g., determination of the identifier) may not follow a strictly linear progression due to certain addresses being reserved by the protocol standard. In such cases, a conversion algorithm, implemented on both the host controller and individual lock controllers, may transform each controller's sequential position into an available protocol-specific address. This non-linear addressing scheme may involve a predetermined algorithm for converting the sequential position to a protocol-compliant address, considering any reserved addresses specified by the protocol standard. The host controller and each lock controller may be configured with matching logic to perform this conversion, thereby maintaining consistent and predictable communication despite the non-linear nature of the addressing. The use of identical conversion logic on both the host controller and controllers ensures that the host controller can consistently and predictably access the correct address for any given controller in the sequence. Additionally, or alternatively, the controller may use a lookup table to map received messages to identifiers. The specific method used may depend on factors such as the expected numberAgent Ref: 16792.0001-0030443 of lockers in the system, the desired complexity of the identification process, and the processing capabilities of the controllers. Regardless of the method chosen, it may be designed to ensure that each controller in the series receives a unique identifier.
[0194] In some embodiments, the message sent by the host controller may comprise the identifier of the controller of the first locker. For example, the message sent by the host controller to the first controller may be <0>. In such cases, the determination process is simple.
[0195] In some other embodiments, the message sent by the host controller to the first controller may comprise an alphanumeric sequence indicating to the first controller that it is the first controller of the series. For example, the message sent by the host controller may be <you are the first controller^ or <lc> (e.g., meaning first controller), or <from - host:to - 1>. In alternative embodiments, instead of sending the position of the controller receiving the message, the message may comprise the position of the controller or host controller sending the message. This position could be represented as the sender's place in the controller sequence or the sender's position in the controller chain. In this scenario, the receiving controller would then deduce its own position in the chain based on the sender's position information. For instance, if Controller A (position 1) sends a message to Controller B, the message might include "Sender: Controller A" and "Sender Position: 1". Controller B would then deduce that its own position is 2 in the chain. This approach allows for a more dynamic and flexible system where controllers can determine their position based on the information received from the previous controller in the sequence. Based on this message the first controller may determine its identifier (e.g., <0>, or a corresponding I2C address).
[0196] In step 1414, the identifier is saved by the controller, e.g., by storing it in a memory of the controller.
[0197] In step 1416, the message is updated to configure the message to enable determination of an identifier of the next controller by the next controller and the updated message is sent to the next controller. Referring back to the previous example, if the message received by the first controller was <lc>, the first controller may modify the message to <2c> to indicate to the controller of the second locker that it is the second controller in the series. Alternatively, if the message received by the first controllerAgent Ref: 16792.0001-0030444 comprises the identifier of the first controller (e.g., <0>, or an I2C address), the updated message may comprise an identifier of the second controller.
[0198] If the last controller determines its identifier, as determined in step 1418, the method proceed to step 1422. In step 1422, the last controller sends a response message to the host controller, using the first bus. The response message sent by the last controller is configured to indicate to the host controller that each controller associated with the plurality of lockers has been allocated the corresponding identifier.
[0199] In one exemplary implementation, wherein the locker assembly comprises 8 lockers, the controller associated with the eighth locker may receive a message from the controller associated with the seventh locker, said message comprising, for example, the alphanumeric sequence <8c>. The controller associated with the eighth locker may then determine its identifier to be, for example, <7>, update the message to <9c>, said updated message constituting the response message, and transmit said response message to the host controller.
[0200] Upon receipt of the response message <9c> from the controller associated with the eighth locker, the host controller may determine that the locker assembly comprises 8 lockers and that each controller is allocated a corresponding identifier.
[0201] In some embodiments, the host controller may also be assigned or otherwise associated with a unique identifier. By way of example, such identifier may be “host”, 1”, or a null value. In some embodiments, the identifier assigned to the host controller may be established during an initial configuration procedure and stored within a memory element of the host controller. In alternative embodiments, the identifier of the host controller may be determined based on the set of controllers to which the host controller is communicatively coupled, wherein the host controller may determine its identifier as part of a self-identification protocol executed among the controllers.
[0202] If the condition in step 1418 is not met, the method 1400 returns to step 1412.
[0203] In some embodiments, the message transmitted by the host controller to the controller associated with the first locker, and any subsequent message transmitted by a controller to a subsequent controller may comprise an indication that a self-identification process is in progress, thereby initiating the iterative process. For instance, a message (e.g., from the host controller to the controller associated with the first locker, or from aAgent Ref: 16792.0001-0030445 controller to a subsequent controller) may comprise the alphanumeric sequence <self-id: id>, wherein "id" would enable a controller to determine its identifier.
[0204] In alternative embodiments, the controllers may determine that a self-identification process is in progress if, upon receipt of a message, no identifier is stored in their respective memories.
[0205] In yet some other embodiments, the controllers may determine that a selfidentification process is in progress if the messages are transmitted via the first bus.
[0206] In some embodiments, the first bus may be asynchronous. An asynchronous bus system operates without a global clock signal to synchronize data transmission between components. Instead, it uses handshaking protocols or other signaling mechanisms to coordinate data transfer between the sending and receiving devices. In the context of the locker control system, an asynchronous first bus may offer several advantages. It may allow for a sequential communication between controllers, enabling the self-identifying / self-addressing process. Additionally, an asynchronous bus may provide improved reliability in some cases, as it may be less susceptible to timing-related errors that can occur in synchronous systems.
[0207] As previously disclosed with reference to FIG. 7, the method may be performed in response to the assembly of lockers being powered up. This power-up event may occur in various scenarios. For example, the assembly of lockers may be powered up once they are assembled or after a power outage, where the lockers may have been configured to remain closed and locked during the outage. In some cases, the assembly may be powered up following the detection of a component malfunction, such as when a request message is sent by the host controller but no response message is received within a preset time period. Additionally, the locker assembly may be powered down and then up again when changes are made to the number or configuration of lockers.
[0208] The self-identification process described in method 1400 may be linked to the addition or removal of one or more lockers from the assembly. For instance, when a new locker is added to the existing assembly using, for example, method 1300, as described earlier, the subsequent power-up sequence may trigger the self-identification method. Similarly, when a locker is removed from the assembly, the power-up process may initiate the self-identification routine to update the system's configuration.Agent Ref: 16792.0001-0030446
[0209] This self-identification process may enable significant flexibility in the system when adding or removing lockers. By allowing each controller to determine its own identifier based on its position in the series, the system may adapt dynamically to changes in the locker assembly's composition. This adaptability may eliminate the need for manual reconfiguration of controller identifiers when the physical arrangement of lockers is modified.
[0210] Once the assembly is powered back up and the self-identification process is complete, the system may function immediately without further intervention. The host controller may receive the response message from the last controller, indicating that all controllers have been allocated their corresponding identifiers. This automatic functionality may ensure that the locker assembly can quickly adapt to changes in its composition, maintaining efficient operation regardless of modifications to the number or arrangement of lockers. The system may be ready to process user requests, manage locker access, and perform other functions without requiring additional setup or configuration steps.
[0211] In some embodiments, the locker system may comprise a second bus.
[0212] Referring to FIGs. 15A-15B, these figures illustrate examples of routing PCB 270 for connecting lockers within a locker set (as previously described with reference to FIGs. 3, 4A-4I). Elements in FIGs. 15A-15B that are similar to those in FIGs. 3, 4A-4I may be labeled with corresponding numbers and their description is simplified. However, it should be understood the earlier description of such elements with reference to FIGs. 3, 4A-4I is similarly applicable with reference to FIGs. 15A-15B.
[0213] As illustrated in FIG. 15A, lines (e.g., lines 1510 and 1512) of a second communication bus may communicatively connect ports 310, 320 and 330, creating a secondary communication path between the controllers. In some examples, illustrated in FIG. 15B, for a routing PCB communicatively coupled to the last controller of a set of lockers (e.g., PCB 270-2), a solder jumper 350 may be added to that PCB (e.g., PCB 270- 2), short-circuiting second port 320. In such example, the secondary communication path (e.g., formed by communication lines 1510 and 1512) may communicatively connect ports 310 and 330.Agent Ref: 16792.0001-0030447
[0214] Referring to FIGs. 16A-16B, these figures illustrate examples of power PCB 280 for connecting lockers within a locker set (as previously described with reference to FIGs. 5, 6A-6I). Elements in FIGs. 16A-16B that are similar to those in FIGs. 5, 6A-6I may be labeled with corresponding numbers and their description is not repeated
[0215] As illustrated in FIG. 16A, lines (e.g., lines 1610 and 1612) of a second bus may communicatively connect ports 610, 620, and 630, creating a secondary communication path between the controllers. In some examples, illustrated in FIG. 16B, for a power PCB communicatively coupled to the last controller of a set of lockers (e.g., PCB 280-2), a solder jumper 550 may be added to that PCB (e.g., PCB 280-2), short-circuiting second port 520. In such example, the secondary communication path (e.g., formed by communication lines 1610 and 1612) may communicatively connect ports 510 and 530.
[0216] In some embodiments, where the plurality of lockers is communicatively connected to a second bus, method 1400 may further comprise the steps of method 1700 illustrated in FIG. 17.
[0217] Method 1700 starts at step 1710, following step 1422 of method 14, where the host controller broadcasts to the plurality of controllers, via the second bus, a second message comprising an identifier allocated to a selected controller of the plurality of controllers to trigger a response from the selected controller.
[0218] In some embodiments, the second bus may be synchronous. Synchronous buses are communication systems that use a clock signal to coordinate data transfer between components. In a synchronous bus, data transmission is synchronized with the clock signal, ensuring that all devices connected to the bus operate in a coordinated manner. This synchronization may allow for more predictable timing and can often support higher data transfer rates compared to asynchronous buses. Accordingly, the second bus may comprise a data line (e.g., data lines 1510 & 1610) and a clock line (e.g., clock lines 1520 & 1620).
[0219] The clock signal in a synchronous bus may serve as a timing mechanism in digital communication systems, providing a series of regular pulses that allow controllers to synchronize their operations and maintain consistent data transfer rates. In the context of a locker control system, the clock signal acts as a common reference point for all connected devices (e.g., controllers), determining precisely when data can be sentAgent Ref: 16792.0001-0030448 or received. This synchronization may ensure reliable communication between the host controller and the individual locker controllers.
[0220] While 100 kHz is a common clock rate, other frequencies are also widely used in similar systems. For example, 400 kHz is often employed in applications requiring higher data throughput, while lower rates like 10 kHz might be suitable for systems with less demanding data transfer needs. The optimal clock rate for a locker control system may depend on various factors, particularly the complexity of data being received from sensors integrated into the lockers. For example, if the lockers are equipped with high- resolution cameras or advanced environmental sensors that generate large amounts of data, a higher clock rate may be necessary to ensure timely data transmission.Conversely, if the sensors only provide simple status updates or basic measurements, a lower clock rate could suffice.
[0221] Each potential clock rate presents its own set of advantages and disadvantages. Higher clock rates offer increased data throughput, allowing for more responsive system operation and the ability to handle complex sensor data. However, they also consume more power and may be more susceptible to electromagnetic interference, potentially requiring additional shielding or signal conditioning. Lower clock rates, while more energy-efficient and potentially more robust in noisy environments, may limit the system's ability to handle large data volumes or respond quickly to user interactions.
[0222] Examples of synchronous buses that may be implemented in the locker control system include SPI (Serial Peripheral Interface), I2C (Inter-Integrated Circuit), and CAN (Control Area Network).
[0223] The choice between a synchronous or asynchronous bus for the second bus may depend on factors such as the physical layout of the locker system, the required data transfer rates, power consumption considerations, and the complexity of the control system. In some implementations, a combination of both types of buses may be used, with the asynchronous first bus handling self-identification and general communication, and the synchronous second bus managing, for example, time-sensitive operations or bulk data transfers.
[0224] In response to the host controller broadcasting the second message via the second bus, in step 1712, the selected controller receives the second message. In step 1714, theAgent Ref: 16792.0001-0030449 selected controller generates a response to the second message. In step 1716, the selected controller broadcasts, via the second bus, the response to the second message, wherein the response to the second message is received by the host controller.
[0225] It should be noted that, when a message, or a response to a message, is broadcasted via the second bus, it may be received or read by every controller, including the host controller, of the locker assembly.
[0226] In some embodiments, a message broadcasted via the second bus may comprise at least one identifier allocated to a controller. When such a message is received by a controller, the controller may compare its own identifier to the at least one identifier included in the message. If the controller's identifier differs from any identifier in the message, the controller ignores the message and takes no further action. This selective response mechanism allows for targeted communication within the locker system, enabling specific controllers to be addressed while others remain unaffected.
[0227] For example, if the host controller needs to communicate with a particular locker or set of lockers, it can include the relevant identifier or identifiers in the broadcasted message. Only the controller or controllers with matching identifiers will process and respond to the message, while all other controllers in the system will disregard it. This approach can help reduce unnecessary processing and communication overhead in the system, particularly in larger locker assemblies with numerous controllers. Additionally, this method of communication can enhance system security by ensuring that sensitive commands or information are only acted upon by the intended recipients.
[0228] In some embodiments, at least one of the second message or the response to the second message may comprise a time stamp. The time stamp may, for example, be generated with reference to the clock line. When a message is sent or received, the current state of the clock can be captured and included as a time stamp within the message. This may allow for precise timing and synchronization of messages within the locker control system. The clock line, which is part of the synchronous second bus, may provide a common timing reference for all connected devices.
[0229] Alternatively, the host controller may generate time stamps through other methods. It could utilize an internal real-time clock module to maintain accurate time independently. The host controller may also receive time information from externalAgent Ref: 16792.0001-0030450 sources, such as network time protocol servers, to synchronize its clock. In some implementations, the host controller could derive time information from GPS signals for highly accurate timing. The system may also employ a combination of internal timekeeping and periodic synchronization with external time references to ensure longterm accuracy of time stamps across the locker control network. By including a time stamp in the messages, the system may accurately track when messages are sent and received, enabling better coordination and troubleshooting of communication between the host controller and individual locker controllers.
[0230] In some embodiments, the second message may comprise at least one of an instruction to open a selected locker corresponding to the selected controller or a query concerning an internal state of the selected locker corresponding to the selected controller.
[0231] When the second message comprises an instruction to open the selected locker, method 1700 may further comprise the selected controller causing the corresponding lock to unlock. For example, the selected controller may send an unlock instructions to the corresponding lock. Once the lock is unlocked, the selected controller may send the second response message comprising a confirmation that the selected locker has been opened.
[0232] For example, if the second message comprises instructions to open the selected locker number 15 of an assembly of lockers, the message broadcasted by the host controller may take the form <open:idl5>, where "idl5" is the identifier associated with locker 15. In this example, the response to the second message comprising a confirmation that the selected locker has been opened may take the form <idl 5- open:host>.
[0233] When the second message comprises a query concerning an internal state of the selected locker, method 1700 may further comprise receiving data from at least one sensor associated with the selected locker, and sending the response to the second message comprising the received data. For example, a query concerning an internal state of the selected locker may correspond to a request to gather data by at least one sensor.
[0234] This query may include various types of data collection from the locker's internal environment, as previously described with reference to FIG. 7. For example, the sensorAgent Ref: 16792.0001-0030451 might be a temperature sensor to monitor the climate inside the locker, ensuring that temperature-sensitive items are stored properly. It could also be a humidity sensor to prevent moisture damage to stored items. Weight sensors could be used to detect if items have been added or removed from the locker. Motion sensors might be employed to detect any unauthorized access attempts or movement within the locker when it should be locked and stationary. The sensor may also be an image capturing device, such as a camera, that takes a snapshot or video of the locker's contents when it is opened or closed, providing a visual record of what items are stored and their condition.Additionally, the query might involve checking the status of other electronic components within the locker, such as verifying that any internal lighting is functioning correctly or that a battery-powered electronic lock has sufficient charge. More advanced systems may include RFID or NFC readers within lockers to automatically catalog items placed in the locker based on tagged objects. For example, if the second message comprises a query concerning the internal state (e.g., a humidity level) of the selected locker number 15 of an assembly of lockers, the message broadcasted by the host controller may take the form <h:idl 5>, where "idl5" is the identifier associated with locker 15. In this example, the response to the second message comprising the received data may take the form <idl5-84%:host>.
[0235] In some embodiments, the second message may comprise a status query concerning a selected locker corresponding to the selected controller and the second response message may comprise the status of the selected locker, where the status of the selected locker may be open or closed.
[0236] In such scenarios, in response to receiving a status query, the selected controller may broadcast a response comprising an indicator of its status. For example, host controller may broadcast <status_check:idl5>. In response to receiving that message, controller associated with locker 15 may broadcast <closed:host>.
[0237] In some embodiments, upon receiving the status of the selected locker (e.g., within the response message broadcasted by the selected controller), the host controller may store the status of the selected locker in a memory of the host controller. If at least one of the message or the response message comprises a time stamp, the host controller may also store this at least one time stamp in its memory. This feature allows for preciseAgent Ref: 16792.0001-0030452 tracking of communication timing within the locker control system. The time stamp, provided, for example, by the clock line of the synchronous second bus, serves as a common temporal reference for all connected devices. By storing these time stamps, the host controller can maintain an accurate log of when specific messages were sent or received. Additionally, these stored time stamps could be used to implement timesensitive operations, such as automatically locking a locker if it remains open for too long after a user interaction. The ability to save and analyze these time stamps enhances the overall efficiency and security of the locker system, allowing for more sophisticated management and monitoring capabilities.
[0238] In some embodiments, if the status of the selected controller differs from an expected status of the selected locker, the host controller may issue an alert.
[0239] The expected value may be determined based on the last known state of the locker and any subsequent commands issued by the host controller. For example, if the last stored status indicates the locker was closed and no command to open it has been issued, the expected value would be "closed".
[0240] Issuing an alert in this context refers to the host controller generating and transmitting a notification about the discrepancy between the expected and actual status. The system initiates this process by first logging the discrepancy in its internal memory, then formulating an alert message containing details, such as the locker identifier, expected status, and actual status. This alert may take the form of a text message, email, or a notification within the locker management software interface. The alert could be sent to system administrators, security personnel, or displayed on the host controller's user interface, depending on the system's configuration and the severity of the discrepancy.
[0241] In some embodiments, an alert may be issued if the status of the selected locker differs from the expected status for several consecutive queries of the status. For example, if a discrepancy is detected in multiple consecutive queries, it may indicate a persistent issue rather than a temporary glitch. For example, if a locker is expected to be closed but reports as open for three consecutive status checks, the system may trigger an alert. The threshold for consecutive discrepancies that trigger an alert can be customized based on the specific needs and security requirements of the locker system. ThisAgent Ref: 16792.0001-0030453 approach helps to minimize false alarms while ensuring that genuine issues are promptly identified and addressed, thereby maintaining the integrity and security of the locker assembly.
[0242] In some embodiments, the host controller may query the status of the selected locker repeatedly, such as at regular time intervals (e.g., a refresh rate).
[0243] This repeated or periodic querying of locker status by the host controller may serve multiple purposes within the locker control system. It may allow for real-time monitoring of the entire locker assembly, ensuring that any changes in locker status are promptly detected and recorded and appropriate alerts, if warranted, are issued. The frequency of these status checks can be adjusted based on the specific needs of the system, balancing between the desire for up-to-date information and the need to minimize unnecessary network traffic, specific components forming the system, and / or communication rates within the system. For example, the communication rates or bus speed within the synchronous communication line may range from 100 kbit / s to 400 kbit / s to 10 kbit / s to 1 Mbit / s to 3.4 Mbit / s to 5 Mbit / s. In some examples, the time interval or refresh rate may depend on a number of lockers forming the plurality of lockers. In some examples, the time interval is about 0.5 seconds. By implementing regular status checks, the system can maintain an accurate record of locker availability, occupancy, and any potential issues such as unauthorized access attempts or malfunctioning locks or controllers.
[0244] In some embodiments, if the host controller receives no response to the second message from a selected controller within a predefined time period, the selected controller is considered faulty. The predefined time period may, for example, act as a threshold for determining when a lack of response is considered abnormal.
[0245] A controller being deemed faulty may trigger various system responses. These could include at least one of logging the event in the system's error records, notifying system administrators or maintenance personnel, attempting to re-establish communication with the controller, temporarily disabling access to the corresponding affected locker, or initiating a diagnostic routine to identify the specific nature of the fault.Agent Ref: 16792.0001-0030454
[0246] The system can then take appropriate actions to mitigate the impact of the faulty controller, such as rerouting requests to operational lockers or scheduling maintenance. Additionally, the system may implement fault isolation procedures to prevent the issue from affecting other parts of the locker assembly. This could involve disabling communication with the faulty controller while maintaining the integrity of the rest of the network. The host controller can also update its internal status records to reflect the current state of the system, ensuring that it does not attempt to use the faulty locker for future assignments until the issue is resolved.
[0247] In some embodiments, the specific duration of the predefined time period may be determined based on factors such as the typical response time of controllers under normal operating conditions, network latency, and the desired balance between prompt fault detection and avoiding false positives due to temporary communication delays. The predefined time period may also depend on a number of lockers forming the plurality of lockers.
[0248] It should be understood that, although different possible contents of the second message or the response to the second message have been disclosed as separate embodiments, any combination of the messages and response message may be broadcasted by the host controller or the controllers. For example, the host controller may broadcast a second message comprising an instruction to open the selected locker and a status query of the same selected locker, or another selected locker.
[0249] FIG. 18 illustrates a method 1800 for controlling or operating a locker system comprising a plurality of lockers using a host controller. The plurality of lockers is communicatively connected in series using a first bus and communicatively connected using a second bus, and comprises a first locker and a last locker. Each locker of the plurality of lockers is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller. Method 1800 facilitates communication between the host controller and the plurality of controllers in the locker system by initiating a step of allocation of identifiers for the plurality of controllers.
[0250] The method 1800 begins at step 1810, when an identifier is allocated to each controller associated with a locker of the plurality of lockers by sending, via the first bus, from a host controller to a first controller associated with the first locker, a messageAgent Ref: 16792.0001-0030455 configured to enable the first controller to determine an identifier of the first controller, and iteratively for each controller, starting with the first controller and until a last controller associated with the last locker is reached, sending via the first bus, from each controller to a next controller, a message configured to enable the next controller to determine its identifier.
[0251] In some embodiments, sending, via the first bus, from a host controller to a first controller associated with the first locker, a message configured to enable the first controller to determine an identifier of the first controller corresponds to sending, via the first bus, from a host controller to a first controller associated with the first locker, a message indicating an identifier of the first controller to the first controller. For example, the message sent by the host controller may comprise the identifier of the controller of the first locker. Alternatively, as previously described with reference to FIG. 14, the message sent by the host controller to the first controller may comprise an alphanumeric sequence indicating to the first controller that it is the first controller of the series.
[0252] In the present disclosure, some features and implementations that apply in the context of the method of FIG. 18 have already been discussed with reference to FIGs. 7 (i.e., method 700) and 14 (i.e., method 1400). It is to be understood that similar details apply for the following features and implementation, and are not repeated.
[0253] In some embodiments, the identifier of a controller may be a positive integer number, optionally a positive integer number between 0 and the number of controllers minus 1.
[0254] In some embodiments, the identifier of the first controller may be 0.
[0255] In some embodiments, the plurality of controllers may have sequentially numbered identifiers.
[0256] In some embodiments, allocating the identifier to each controller may comprise determining the identifier of the controller, by the controller, based on the message received from a previous controller, storing the identifier in a memory of the controller, and updating the received message before sending the message to the next controller, wherein the last controller sends the updated message to the host controller.
[0257] In some embodiments, the message sent by the host controller may comprise the identifier of the controller of the first locker, and updating the received message mayAgent Ref: 16792.0001-0030456 comprise updating the identifier with an identifier of the controller associated with the next locker.
[0258] In some embodiments, the updated message sent by the last controller to the host controller is a response message sent, using the first bus, upon determining the identifier of the last controller by the last controller, the response message configured to indicate to the host controller that each controller associated with the plurality of lockers has been allocated the corresponding identifier.
[0259] In some embodiments, the response message may comprise the identifier of the last controller.
[0260] In step 1812, a second message is broadcasted, via the second bus, from the host controller to the plurality of controllers, the second message comprising an identifier allocated to a selected controller to trigger a response from the selected controller.
[0261] In some embodiments, the method 1800 may further comprise, in response to the host controller broadcasting the second message via the second bus, receiving, by the selected controller, the second message, generating, by the selected controller, a response to the second message, and broadcasting, by the selected controller via the second bus, the response to the second message, wherein the response to the second message is received by the host controller.
[0262] In some embodiments, the method may be performed in response to the assembly of lockers being powered up.
[0263] In some embodiments, the first communication bus is asynchronous.
[0264] In some embodiments, the second bus is synchronous.
[0265] In some embodiments, the second bus may comprise a data line and a clock line.
[0266] In some embodiments, at least one of the second message or the response to the second message may comprise a time stamp generated with reference to the clock line.
[0267] In some embodiments, the second message may comprise at least one of an instruction to open a selected locker corresponding to the selected controller or a query concerning an internal state of the selected locker.
[0268] In such embodiments, the method may comprise the controller of the selected locker causing the corresponding lock to unlock and sending the response to the second message comprising a confirmation that the selected locker has been opened.Agent Ref: 16792.0001-0030457
[0269] In some embodiments, the selected controller may cause the corresponding lock to unlock by sending an unlock instructions to the corresponding lock.
[0270] Alternatively, or additionally, when the second message comprises the query concerning an internal state of the selected locker, the method may comprise receiving data from at least one sensor associated with the selected locker; and sending the response to the second message comprising the received data.
[0271] In some embodiment, the second message may comprise a status query of a selected locker corresponding to the selected controller.
[0272] In such embodiments, the status of the selected locker is open or closed.
[0273] In some embodiments, upon receiving the status of the selected locker, the host controller may store the status of the selected locker in a memory of the host controller.
[0274] In some embodiments, when the status of the selected controller differs from an expected status of the selected controller, the host controller may issue an alert.
[0275] In some embodiments, the host controller may query the status of the selected locker at regular time intervals.
[0276] In such embodiments, the time interval is 0.5 seconds, or the time interval depends on a number of the plurality of lockers.
[0277] In some embodiments, if the host controller does not receive the response to the second message within a predefined time period, the selected controller may be considered faulty.
[0278] In such embodiments, the predefined time period may depend on a number of the plurality of lockers.
[0279] Also disclosed herein are the following clauses:1. A system for controlling an assembly of lockers, the system comprising: a plurality of sets of lockers, each locker associated with a corresponding controller, the plurality of sets of lockers being communicatively connected in series, wherein each set of lockers comprises at least one locker, wherein each locker comprises a lock communicatively connected to the corresponding controller; a bus comprising a plurality of segments, each segment configured to connect neighboring controllers; wherein:Agent Ref: 16792.0001-0030458 each controller comprises a processor and a memory; each controller is configured to receive communications from the bus and send communications to the bus; and a host controller comprising a processor and a memory and configured to send an instruction via the bus to cause at least one of the plurality of controllers to unlock the corresponding lock, thereby unlocking the respective locker.2. The system of clause 1, wherein each set of lockers consists of a single locker.3. The system of clause 1, wherein at least one of the plurality of sets of lockers comprises a plurality of lockers.4. The system of clause 3, wherein the plurality of controllers corresponding to the plurality of lockers of the at least one set of lockers are connected in a daisy chain.5. The system of any one of clauses 1 to 5, wherein at least one segment of the plurality of segments comprises at least one printed circuit board (PCB) and cables coupled to the at least one PCB.6. The system of clause 5, wherein the at least one PCB comprises a first port, a second port and a third port.7. The system of clause 6, wherein the at least one PCB is a first type of PCB for connecting lockers within the same set of lockers or a second type of PCB for connecting different sets of lockers.8. The system of clause 7, wherein the at least one segment is configured to connect two neighboring controllers corresponding to lockers of the same set of lockers, the at least one segment comprising two printed circuit boards (PCBs) of the first type communicatively coupled to the respective neighboring controllers and to each other.9. The system of clause 8, wherein the PCB of the first type communicatively coupled to the controller of the last locker of the set of lockers is configured to: when receiving communications through the first port, forward the communications through the third port; and when receiving communication through the third port, forward the communications through the first port.Agent Ref: 16792.0001-003045910. The system of clause 8, wherein the PCB of the first type communicatively coupled to the controller of a locker of a set of lockers, other than the last locker, is configured to: when receiving communications through the first port, forward the communications through the third port; when receiving communication through the third port, forward the communication through the second port; and when receiving communication through the second port, forward the communications through the first port.11. The system of clause 7, wherein the at least one segment is configured to connect two neighboring controllers corresponding to lockers of two different sets of lockers, the at least one segment comprising two PCBs of the first type communicatively coupled to the respective neighboring controllers and two PCBs of the second type communicatively coupled to the PCBs of the first type and each other.12. The system of clause 11, wherein the PCB of the second type communicatively coupled to the last set of lockers of the plurality of sets of lockers is configured to: when receiving communications through the first port, forward the communications through the third port; and when receiving communications through the third port, forward the communications through the first port.13. The system of clause 11, wherein the PCB of the second type communicatively coupled to any set of lockers of the plurality of set of lockers, other than the last set of lockers, is configured to: when receiving communications through the first port, forward the communications through the third port; when receiving communication through the third port, forward the communication through the second port; and when receiving communication through the second port, forward the communications through the first port.14. The system of any one of clauses 7 to 13, wherein the PCBs of the second type are configured to support power supply to the plurality of set of lockers.Agent Ref: 16792.0001-003046015. A method for controlling an assembly of a plurality of lockers, the method comprising: sending a message via a bus, by a host controller to a controller of a first locker of the plurality of lockers, the message identifying a selected locker, wherein the plurality of lockers includes the first locker and a last locker, the plurality of lockers communicatively connected in series via the bus from the first locker to the last locker, and wherein each locker is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller; iteratively, until the message is received by a controller of the selected locker or a controller of the last locker: updating the message by a controller that received the message and sending the updated message to a controller of a next locker of the plurality of lockers; if the message is received by the controller of the last locker or the last locker is the selected locker, generating a response message by the controller of the last locker, and otherwise: generating, by the controller of the selected locker, the response message, and iteratively, until the response message is received by the last locker: forwarding the response message to the controller of the next locker of the plurality of lockers; and sending, from the controller associated with the last locker, the response message to the host controller.16. The method of clause 15, wherein the message comprises an instruction to open the selected locker.17. The method of clause 15 or 16, wherein: the message comprises a request to gather data by at least one of a sensor or an image capturing device of the selected locker.18. The method of any one of clauses 15 to 17, wherein the message and the updated message each comprises a first identifier identifying the controller receiving the message or the updated message respectively, and a second identifier identifying the controller of the selected locker.Agent Ref: 16792.0001-003046119. The method of clause 18, wherein the identifier of a controller is a positive integer number, optionally a positive integer number between 0 and the number of controllers minus 1.20. The method of clause 18 or 19, wherein the identifier of the first controller is 0.21. The method of any of clauses 18 to 20, wherein the plurality of controllers have sequentially numbered identifiers.22. The method of clause 18, wherein, if the first identifier and the second identifier in the message received by the controller of the last locker fail to match, the method comprising sending, by the controller of the last locker, the response message comprising the identifier of the controller of the last locker and the identifier of the controller of the selected locker.23. The method of clause 18, wherein if the second identifier in the message received by the controller matches an identifier of the controller, the method comprises: executing, by the controller having the identifier matching the second identifier, an instruction included in the received message.24. The method of clause 23, wherein, when the message comprises an instruction to open the selected locker, the method comprises: the controller having the identifier matching the second identifier unlocking the corresponding lock and sending the response message comprising a confirmation that the selected locker has been opened.25. The method of clause 23, wherein, when the instruction comprises a request to gather data by at least one of a sensor or an image capturing device of the selected locker, the method comprises: the controller having the identifier matching the second identifier causing the at least one sensor or image capturing device of the respective locker to gather data and sending the response message comprising the gathered data.26. The method of any one of clauses 18 to 22 wherein, when the method is performed in response to the assembly of lockers being powered up, optionally wherein the identifier of the selected controller included by the host controller in the message is a predefined number that is higher than the number of the plurality of lockers in the assembly of lockers.Agent Ref: 16792.0001-003046227. The method of any one of clauses 18 to 22, wherein when the method is performed in response to the assembly of lockers being powered up, the identifier of the selected controller included by the host controller in the message is a predefined number that is different from an identifier of any of the plurality of lockers in the assembly of lockers.28. The method of any one of clauses 18 to 27, wherein updating the message by the controller that received the message comprises updating the first identifier with an identifier of the controller associated with the next locker.29. A modular locker system, comprising: one or more locker units for defining a plurality of lockers comprising a first locker and a last locker, each locker having a door, a lock configured to lock and unlock the door, and a controller configured to be connected to the lock for controlling the lock, thereby the plurality of lockers having a plurality of corresponding controllers; a host controller; and a bus system for connecting the plurality of controllers in series from a first controller of the first locker to a last controller of the last locker and connecting the host controller to the first controller, the bus system configured to define: at least a first communication path from the host controller to the first controller through the plurality of controllers in series to the last controller, and a second communication path from the last controller to the host controller, bypassing the plurality of controllers; wherein the host controller is configured to send instructions to the plurality of controllers through the first communication path and receive response through the second communication path.30. The modular locker system of clause 29, wherein a locker unit comprises four panels, including two vertical panels and two horizontal panels.31. The modular locker system of clause 29 or 30, comprising a plurality of locker units, wherein different locker units are configured to be connected in series via sections of the bus.32. The modular locker system of any one of clauses 29 to 31, wherein at least one locker unit comprises a plurality of lockers.Agent Ref: 16792.0001-003046333. The modular locker system of clause 32, wherein two neighboring lockers within a locker unit are separated by a panel.34. The modular locker system of clause 33, wherein a number of panels separating lockers within the locker unit is equal to the number of lockers in the locker unit minus 1.35. The modular locker system of any one of clauses 29 to 34, wherein the bus system comprises cables and at least one printed circuit board (PCB).36. The modular locker system of clause 35, wherein the at least one PCB is a first type of PCB for coupling controllers associated with lockers within the same locker unit, or a second type of PCB for coupling controllers associated with different locker units.37. The modular locker system of clause 35 or 36, wherein the cables comprise a first type of cable configured to distribute power supply and facilitate communication between controllers, a second type of cable configured to distribute power supply to controllers of different locker units, and a third type of cable configured to distribute power supply to locks.38. A method of assembling a modular locker system, the method comprising: positioning at least one panel within at least one locker unit to define a plurality of lockers within the at least one locker unit, the plurality of lockers comprising a first locker and a last locker; fitting a plurality of doors to the at least one locker unit to respectively enclose interiors of the plurality of lockers, the plurality of lockers comprising a first door to enclose the interior of the first locker and a last door to enclose the interior of the last locker; fitting a plurality of locks to the at least one locker unit, each locker having a lock of the plurality of locks positioned to cooperate with the door of the locker, each lock having an associated controller configured to control the lock, the plurality of locks comprising a lock configured to lock and unlock the first door and a lock configured to lock and unlock the last door; connecting the controllers associated with the plurality lockers in series via a bus system from a first controller of the first locker to a last controller of the last locker; and connecting the first controller to a host controller via the bus system, the bus system configured to define at least a first communication path from the host controller to the lastAgent Ref: 16792.0001-0030464 controller through the plurality of controllers in series starting with the first controller, and a second communication path from the last controller to the host controller, bypassing the plurality of controllers.39. The method of clause 38, wherein the at least one panel is horizontal.40. The method of clause 38, wherein the at least one panel is vertical.41. The method of any one of clauses 38 to 40, comprising connecting a first locker unit and a second locker unit of the at least one locker unit via the bus system.42. The method of clause 41, wherein connecting controllers associated with the lockers within the same locker unit comprises using at least two of a first type of Printed Circuit Board (PCB) and at least three of a first type of cable configured to distribute power supply and communication between the controllers.43. The method of clause 41, wherein connecting different locker units comprises using at least one of a first type of PCB, at least two of a second type of PCB, at least one of a first type of cable configured to distribute power supply and communication between the controllers, at least one of a second type of cable configured to distribute power supply for the controllers, and at least one a third type of cables configured to distribute power supply for the locks.44. The method of any one of clauses 38 to 43, wherein connecting the controller of the first locker to the host controller via the bus system comprises using at least one of a first type of PCB, at least three of a first type of cable configured to distribute power supply and communication between the controllers, at least two of a second type of PCB and at least one of a second type of cable configured to distribute power supply for the controllers, and at least one a third type of cables configured to distribute power supply for the locks.45. The method of any one of clauses 38 to 44, further comprising adding a new locker to a locker unit of the at least one locker unit, by: removing a door of a locker in the locker unit; disconnecting the controller associated with the locker; removing the lock associated with the removed door; positioning a panel in the locker to divide the locker into the new locker and a reduced size locker;Agent Ref: 16792.0001-0030465 securing two locks in the locker on different sides of the panel; and connecting the controllers associated with the two locks in series to each other and other controllers associated with the locker unit using the bus system.
[0280] Features of any of the examples or embodiments outlined above may be combined to create additional examples or embodiments without losing the intended effect. It should be understood that the description of an embodiment or example provided above is by way of example only, and various modifications could be made by one skilled in the art. Furthermore, one skilled in the art will recognize that numerous further modifications and combinations of various aspects are possible. Accordingly, the described aspects are intended to encompass all such alterations, modifications, and variations that fall within the scope of the appended claims.
Claims
Agent Ref: 16792.0001-0030466CLAIMS1. A method for controlling an assembly of a plurality of lockers communicatively connected in series using a corresponding plurality of controllers and a first bus, the assembly comprising a first locker and a last locker, each locker of the plurality of lockers being associated with a corresponding controller of the plurality of controllers and comprising a lock communicatively connected to the corresponding controller, the method comprising: sending, via the first bus, from a host controller to a first controller associated with the first locker, a message configured to enable the first controller to determine an identifier of the first controller, iteratively, for each controller starting from the first controller and until a last controller associated with the last locker is reached: determining an identifier of the controller, by the controller, based on the message received from a previous controller; storing the identifier in a memory of the controller; and updating the received message to configure the message to enable determination of an identifier of the next controller by the next controller and sending the updated message to the next controller; and upon the last controller determining the identifier of the last controller and storing the identifier of the last controller in a memory of the last controller, sending by the last controller, using the first bus, a response message to the host controller, the response message configured to indicate to the host controller that each controller associated with the plurality of lockers has been allocated the corresponding identifier.
2. The method of claim 1, wherein the message sent by the host controller comprises the identifier of the controller of the first locker.
3. The method of claim 2, wherein updating the received message comprises updating the identifier in the received message with an identifier of the controller associated with the next locker.
4. The method of claim 1 or 2, wherein the identifier of a controller is a positive integer number, optionally a hexadecimal number or a positive integer number between 0 and the number of controllers minus 1.Agent Ref: 16792.0001-00304675. The method of any one of claims 1 to 4, wherein the identifier of the first controller is 0.
6. The method of any one of claims 1 to 5, wherein the plurality of controllers have sequentially numbered identifiers.
7. The method of any one of claims 1 to 6, wherein the method is performed in response to the assembly of lockers being powered up.
8. The method of any one of claims 1 to 7, wherein the first bus is asynchronous.
9. The method of any one of claims 1 to 8, wherein the plurality of lockers is communicatively connected to a second bus, the method further comprising: broadcasting, via the second bus, from the host controller to the plurality of controllers, a second message comprising an identifier allocated to a selected controller of the plurality of controllers to trigger a response from the selected controller; and in response to the host controller broadcasting the second message via the second bus, receiving, by the selected controller, the second message, generating, by the selected controller, a response to the second message, and broadcasting, by the selected controller via the second bus, the response to the second message, wherein the response to the second message is received by the host controller.
10. The method of claim 9, wherein the second bus is synchronous.
11. The method of claim 9 or 10, wherein the second bus comprises a data line and a clock line.
12. The method of any one of claims 9 to 11, wherein at least one of the second message or the response to the second message comprises a time stamp.
13. The method of any one of claims 9 to 12, wherein, the second message comprises at least one of an instruction to open a selected locker corresponding to the selected controller or a query concerning an internal state of the selected locker corresponding to the selected controller.
14. The method of claim 13, wherein when the second message comprises an instruction to open the selected locker, the method comprises:Agent Ref: 16792.0001-0030468 the selected controller causing the corresponding lock to unlock, optionally by sending an unlock instruction to the corresponding lock; and wherein the response to the second message comprises a confirmation that the selected locker has been opened.
15. The method of claim 13 or 14, wherein, when the second message comprises the query concerning the internal state of the selected locker, the method comprises: receiving data from at least one sensor associated with the selected locker; wherein the response to the second message comprises the received data.
16. The method of any one of claims 9 to 12, wherein the second message comprises a status query concerning a status of a selected locker corresponding to the selected controller and the response to the second message comprises the status of the selected locker.
17. The method of claim 16, wherein the status of the selected locker is open or closed.
18. The method of claim 16 or 17, wherein, upon receiving the status of the selected locker, the host controller stores the status of the selected locker in a memory of the host controller, optionally wherein the stored status of the selected locker comprises a timestamp.
19. The method of any one of claims 16 to 18, wherein, when the status of the selected locker differs from an expected status of the selected locker, the host controller issues an alert.
20. The method of any one of claims 16 to 19, wherein the host controller queries the status of the selected locker at regular time intervals.
21. The method of claim 20, wherein the time interval is 0.5 seconds, or wherein the time interval depends on a number of the plurality of lockers.
22. The method of any one of claims 9 to 21, wherein, if the host controller receives no response to the second message within a predefined time period, the selected controller is considered faulty.
23. The method of claim 22, wherein the predefined time period depends on a number of the plurality of lockers.Agent Ref: 16792.0001-003046924. The method of any one of claims 1 to 8, wherein the plurality of lockers is communicatively connected to a second bus, the method further comprising, repeatedly: broadcasting, via the second bus, from the host controller to the plurality of controllers, a status query configured to request a status of each of the plurality of lockers, and receiving, by the host controller via the second bus, at least one response to the status query, the at least one response broadcasted by least one of the plurality of controllers and indicating the status of the at least one controller; and if the status of the at least one controller differs from an expected status of the at least one controller, or no response is received by the host controller from one or more controllers within a predetermined time period, issuing an alert by the host controller.
25. A method for controlling an assembly of a plurality of lockers communicatively connected in series using a first bus and communicatively connected to a second bus, the assembly comprising a first locker and a last locker, each locker of the plurality of lockers being associated with a corresponding controller and comprising a lock communicatively connected to the corresponding controller, the method comprising: allocating an identifier to each controller associated with a locker of the plurality of lockers by: sending, via the first bus, from a host controller to a first controller associated with the first locker, a message configured to enable the first controller to determine an identifier of the first controller, and iteratively for each controller, starting with the first controller and until a last controller associated with the last locker is reached, sending via the first bus, from the controller to a next controller, a message configured to enable the next controller to determine an identifier of the next controller; and broadcasting, via the second bus, from the host controller to the plurality of controllers, a second message comprising an identifier allocated to a selected controller to trigger a response from the selected controller.
26. The method of claim 25, wherein allocating the identifier to each controller comprises:Agent Ref: 16792.0001-00304IQ determining the identifier of the controller, by the controller, based on the message received from a previous controller; storing the identifier in a memory of the controller; and updating the received message before sending the message to the next controller, wherein the last controller sends the updated message to the host controller.
27. The method of claim 26, wherein updating the received message comprises updating the identifier with an identifier of the controller associated with the next locker.
28. The method of claim 26 or 27, wherein the updated message sent by the last controller to the host controller is a response message sent, using the first bus, upon determining the identifier of the last controller by the last controller, the response message configured to indicate to the host controller that each controller associated with the plurality of lockers has been allocated the corresponding identifier.
29. The method of any one of claims 25 to 28, further comprising: in response to the host controller broadcasting the second message via the second bus, receiving, by the selected controller, the second message, generating, by the selected controller, a response to the second message, and broadcasting, by the selected controller via the second bus, the response to the second message, wherein the response to the second message is received by the host controller.
30. The method of any one of claims 25 to 29, wherein the message sent by the host controller comprises the identifier of the controller of the first locker.
31. The method of any one of claims 25 to 30, wherein the identifier of a controller is a positive integer number, optionally a hexadecimal number or a positive integer number between 0 and the number of controllers minus 1.
32. The method of any one of claims 25 to 31, wherein the identifier of the first controller is 0.
33. The method of any one of claims 25 to 32, wherein the plurality of controllers have sequentially numbered identifiers.Agent Ref: 16792.0001-003047134. The method of any one of claims 25 to 33, wherein the response message comprises the identifier of the last controller.
35. The method of any one of claims 25 to 34, wherein the method is performed in response to the assembly of lockers being powered up.
36. The method of any one of claims 25 to 35, wherein the first communication bus is asynchronous.
37. The method of any one of claims 25 to 36, wherein the second bus is synchronous.
38. The method of any one of claims 25 to 37, wherein the second bus comprises a data line and a clock line.
39. The method of claim 38, wherein at least one of the second message or the response to the second message comprises a time stamp provided by the clock line.
40. The method of any one of claims 25 to 39, wherein, the second message comprises at least one of an instruction to open a selected locker corresponding to the selected controller or a query concerning an internal state of the selected locker.
41. The method of claim 40, wherein when the second message comprises an instruction to open the selected locker, the method comprises: the controller of the selected locker causing the corresponding lock to unlock and sending the response to the second message comprising a confirmation that the selected locker has been opened.
42. The method of claim 41, wherein the selected controller causes the corresponding lock to unlock by sending an unlock instructions to the corresponding lock.
43. The method of any one of claims 40 to 42, wherein, when the second message comprises the query concerning an internal state of the selected locker, the method comprises: receiving data from at least one sensor associated with the selected locker; and sending the response to the second message comprising the received data.
44. The method of any one of claims 25 to 39, wherein the second message comprises a status query concerning a status of a selected locker corresponding to the selected controller.
45. The method of claim 44, wherein the status of the selected locker is open or closed.Agent Ref: 16792.0001-003047246. The method of claim 44 or 45, wherein, upon receiving the status of the selected locker, the host controller stores the status of the selected locker in a memory of the host controller.
47. The method of any one of claims 44 to 46, wherein, when the status of the selected controller differs from an expected status of the selected controller, the host controller issues an alert.
48. The method of any one of claims 44 to 47, wherein the host controller repeatedly queries the status of the selected locker, optionally at regular time intervals.
49. The method of claim 48, wherein a length of the time interval depends on a number of the plurality of lockers.
50. The method of any one of claims 25 to 49, wherein, if the host controller receives no response to the second message within a predefined time period, the selected controller is considered faulty.
51. The method of claim 50, wherein the predefined time period depends on a number of the plurality of lockers.
52. The method of any one of claims 25 to 43, further comprising, repeatedly: broadcasting, via the second bus, from the host controller to the plurality of controllers, a status query configured to request a status of each of the plurality of lockers, and receiving, by the host controller via the second bus, at least one response to the status query, the at least one response broadcasted by least one of the plurality of controllers and indicating the status of the at least one controller; and if the status of the at least one controller differs from an expected status of the at least one controller, or no response is received by the host controller from one or more controllers within a predetermined time period issuing an alert by the host controller.
53. A system for controlling an assembly of lockers, the system comprising: a plurality of sets of lockers, each locker associated with a corresponding controller, the plurality of sets of lockers being communicatively connected in series, wherein each set of lockers comprises at least one locker, wherein each locker comprises a lock communicatively connected to the corresponding controller;Agent Ref: 16792.0001-0030473 a bus comprising a plurality of segments, each segment configured to connect neighboring controllers; wherein: each controller comprises a processor and a memory; each controller is configured to receive communications from the bus and send communications to the bus; and a host controller comprising a processor and a memory and configured to send an instruction via the bus to cause at least one of the plurality of controllers to unlock the corresponding lock, thereby unlocking the respective locker.
54. The system of claim 53, wherein each set of lockers consists of a single locker.
55. The system of claim 53, wherein at least one of the plurality of sets of lockers comprises a plurality of lockers.
56. The system of claim 55, wherein the plurality of controllers corresponding to the plurality of lockers of the at least one set of lockers are connected in a daisy chain.
57. The system of any one of claims 53 to 56, wherein at least one segment of the plurality of segments comprises at least one printed circuit board (PCB) and cables coupled to the at least one PCB.
58. The system of claim 57, wherein the at least one PCB comprises a first port, a second port and a third port.
59. The system of claim 58, wherein the at least one PCB is a first type of PCB for connecting lockers within the same set of lockers or a second type of PCB for connecting different sets of lockers.
60. The system of claim 59, wherein the at least one segment is configured to connect two neighboring controllers corresponding to lockers of the same set of lockers, the at least one segment comprising two printed circuit boards (PCBs) of the first type communicatively coupled to the respective neighboring controllers and to each other.
61. The system of claim 60, wherein the PCB of the first type communicatively coupled to the controller of the last locker of the set of lockers is configured to: when receiving communications through the first port, forward the communications through the third port; andAgent Ref: 16792.0001-0030474 when receiving communication through the third port, forward the communications through the first port.
62. The system of claim 60, wherein the PCB of the first type communicatively coupled to the controller of a locker of a set of lockers, other than the last locker, is configured to: when receiving communications through the first port, forward the communications through the third port; when receiving communication through the third port, forward the communication through the second port; and when receiving communication through the second port, forward the communications through the first port.
63. The system of claim 59, wherein the at least one segment is configured to connect two neighboring controllers corresponding to lockers of two different sets of lockers, the at least one segment comprising two PCBs of the first type communicatively coupled to the respective neighboring controllers and two PCBs of the second type communicatively coupled to the PCBs of the first type and each other.
64. The system of claim 63, wherein the PCB of the second type communicatively coupled to the last set of lockers of the plurality of sets of lockers is configured to: when receiving communications through the first port, forward the communications through the third port; and when receiving communications through the third port, forward the communications through the first port.
65. The system of claim 63, wherein the PCB of the second type communicatively coupled to any set of lockers of the plurality of set of lockers, other than the last set of lockers, is configured to: when receiving communications through the first port, forward the communications through the third port; when receiving communication through the third port, forward the communication through the second port; and when receiving communication through the second port, forward the communications through the first port.Agent Ref: 16792.0001-003047566. The system of any one of claims 59 to 65, wherein the PCBs of the second type are configured to support power supply to the plurality of set of lockers.
67. A method for controlling an assembly of a plurality of lockers, the method comprising: sending a message via a bus, by a host controller to a controller of a first locker of the plurality of lockers, the message identifying a selected locker, wherein the plurality of lockers includes the first locker and a last locker, the plurality of lockers communicatively connected in series via the bus from the first locker to the last locker, and wherein each locker is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller; iteratively, until the message is received by a controller of the selected locker or a controller of the last locker: updating the message by a controller that received the message and sending the updated message to a controller of a next locker of the plurality of lockers; if the message is received by the controller of the last locker or the last locker is the selected locker, generating a response message by the controller of the last locker, and otherwise: generating, by the controller of the selected locker, the response message, and iteratively, until the response message is received by the last locker: forwarding the response message to the controller of the next locker of the plurality of lockers; and sending, from the controller associated with the last locker, the response message to the host controller.
68. The method of claim 67, wherein the message comprises an instruction to open the selected locker.
69. The method of claim 67 or 68, wherein: the message comprises a request to gather data by at least one of a sensor or an image capturing device of the selected locker.
70. The method of any one of claims 67 to 69, wherein the message and the updated message each comprises a first identifier identifying the controller receiving the messageAgent Ref: 16792.0001-0030476 or the updated message respectively, and a second identifier identifying the controller of the selected locker.
71. The method of claim 70, wherein the identifier of a controller is a positive integer number, optionally a positive integer number between 0 and the number of controllers minus 1.
72. The method of claim 70 or 71, wherein the identifier of the controller of the first locker is 0.
73. The method of any of claims 70 to 72, wherein the plurality of controllers have sequentially numbered identifiers.
74. The method of claim 70, wherein, if the first identifier and the second identifier in the message received by the controller of the last locker fail to match, the method comprising sending, by the controller of the last locker, the response message comprising the identifier of the controller of the last locker and the identifier of the controller of the selected locker.
75. The method of claim 70, wherein if the second identifier in the message received by the controller matches an identifier of the controller, the method comprises: executing, by the controller having the identifier matching the second identifier, an instruction included in the received message.
76. The method of claim 75, wherein, when the message comprises an instruction to open the selected locker, the method comprises: the controller having the identifier matching the second identifier unlocking the corresponding lock and sending the response message comprising a confirmation that the selected locker has been opened.
77. The method of claim 75, wherein, when the instruction comprises a request to gather data by at least one of a sensor or an image capturing device of the selected locker, the method comprises: the controller having the identifier matching the second identifier causing the at least one sensor or image capturing device of the respective locker to gather data and sending the response message comprising the gathered data.
78. The method of any one of claims 70 to 74, wherein when the method is performed in response to the assembly of lockers being powered up, optionally wherein the identifierAgent Ref: 16792.0001-0030477 of the selected controller included by the host controller in the message is a predefined number that is higher than the number of the plurality of lockers in the assembly of lockers.
79. The method of any one of claims 70 to 74, wherein when the method is performed in response to the assembly of lockers being powered up, the identifier of the selected controller included by the host controller in the message is a predefined number that is different from an identifier of any of the plurality of lockers in the assembly of lockers.
80. The method of any one of claims 70 to 79, wherein updating the message by the controller that received the message comprises updating the first identifier with an identifier of the controller associated with the next locker.
81. A modular locker system, comprising: one or more locker units for defining a plurality of lockers comprising a first locker and a last locker, each locker having a door, a lock configured to lock and unlock the door, and a controller configured to be connected to the lock for controlling the lock, thereby the plurality of lockers having a plurality of corresponding controllers; a host controller; and a bus system for connecting the plurality of controllers in series from a first controller of the first locker to a last controller of the last locker and connecting the host controller to the first controller, the bus system configured to define: at least a first communication path from the host controller to the first controller through the plurality of controllers in series to the last controller, and a second communication path from the last controller to the host controller, bypassing the plurality of controllers; wherein the host controller is configured to send instructions to the plurality of controllers through the first communication path and receive response through the second communication path.
82. The modular locker system of claim 81, wherein a locker unit comprises four panels, including two vertical panels and two horizontal panels.
83. The modular locker system of claim 81 or 82, comprising a plurality of locker units, wherein different locker units are configured to be connected in series via sections of the bus.Agent Ref: 16792.0001-003047884. The modular locker system of any one of claims 81 to 83, wherein at least one locker unit comprises a plurality of lockers.
85. The modular locker system of claim 84, wherein two neighboring lockers within a locker unit are separated by a panel.
86. The modular locker system of claim 85, wherein a number of panels separating lockers within the locker unit is equal to the number of lockers in the locker unit minus 1.
87. The modular locker system of any one of claims 81 to 86, wherein the bus system comprises cables and at least one printed circuit board (PCB).
88. The modular locker system of claim 87, wherein the at least one PCB is a first type of PCB for coupling controllers associated with lockers within the same locker unit, or a second type of PCB for coupling controllers associated with different locker units.
89. The modular locker system of claim 87 or 88, wherein the cables comprise a first type of cable configured to distribute power supply and facilitate communication between controllers, a second type of cable configured to distribute power supply to controllers of different locker units, and a third type of cable configured to distribute power supply to locks.
90. A method of assembling a modular locker system, the method comprising: positioning at least one panel within at least one locker unit to define a plurality of lockers within the at least one locker unit, the plurality of lockers comprising a first locker and a last locker; fitting a plurality of doors to the at least one locker unit to respectively enclose interiors of the plurality of lockers, the plurality of lockers comprising a first door to enclose the interior of the first locker and a last door to enclose the interior of the last locker; fitting a plurality of locks to the at least one locker unit, each locker having a lock of the plurality of locks positioned to cooperate with the door of the locker, each lock having an associated controller configured to control the lock, the plurality of locks comprising a lock configured to lock and unlock the first door and a lock configured to lock and unlock the last door; connecting the controllers associated with the plurality lockers in series via a bus system from a first controller of the first locker to a last controller of the last locker; andAgent Ref: 16792.0001-0030479 connecting the first controller to a host controller via the bus system, the bus system configured to define at least a first communication path from the host controller to the last controller through the plurality of controllers in series starting with the first controller, and a second communication path from the last controller to the host controller, bypassing the plurality of controllers.
91. The method of claim 90, wherein the at least one panel is horizontal.
92. The method of claim 90, wherein the at least one panel is vertical.
93. The method of any one of claims 90 to 92, comprising connecting a first locker unit and a second locker unit of the at least one locker unit via the bus system.
94. The method of claim 93, wherein connecting controllers associated with the lockers within the same locker unit comprises using at least two of a first type of Printed Circuit Board (PCB) and at least three of a first type of cable configured to distribute power supply and communication between the controllers.
95. The method of claim 93, wherein connecting different locker units comprises using at least one of a first type of PCB, at least two of a second type of PCB, at least one of a first type of cable configured to distribute power supply and communication between the controllers, at least one of a second type of cable configured to distribute power supply for the controllers, and at least one a third type of cables configured to distribute power supply for the locks.
96. The method of any one of claims 90 to 95, wherein connecting the controller of the first locker to the host controller via the bus system comprises using at least one of a first type of PCB, at least three of a first type of cable configured to distribute power supply and communication between the controllers, at least two of a second type of PCB and at least one of a second type of cable configured to distribute power supply for the controllers, and at least one a third type of cables configured to distribute power supply for the locks.
97. The method of any one of claims 90 to 96, further comprising adding a new locker to a locker unit of the at least one locker unit, by: removing a door of a locker in the locker unit; disconnecting the controller associated with the locker; removing the lock associated with the removed door;Agent Ref: 16792.0001-0030480 positioning a panel in the locker to divide the locker into the new locker and a reduced size locker; securing two locks in the locker on different sides of the panel; and connecting the controllers associated with the two locks in series to each other and other controllers associated with the locker unit using the bus system.
98. A system for controlling an assembly of a plurality of lockers, the system comprising: a first bus; a second bus; the plurality of lockers communicatively connected in series using the first bus and communicatively connected to a second bus, the plurality of lockers comprising a first locker and a last locker, wherein each locker is associated with a corresponding controller and comprises a lock communicatively connected to the corresponding controller; and a host controller communicatively coupled to the first bus and to the second bus, wherein the system is configured to perform the method of any one of claims 1 to52.