Patent ID: 12246429

DETAILED DESCRIPTION

Loss prevention for retailers is a high priority, especially for battery-powered power tools. Due to the compact size, ease of use, and desirability of battery-powered power tools, theft of these devices has increased. This increase in theft has been detrimental to the retail stores selling the power tools. Accordingly, systems, devices, and methods for reducing and preventing theft of battery-powered power tools are desirable.

Embodiments disclosed herein relate to systems, devices, and methods for preventing operation of a battery-powered power tool until the battery-powered power tool has been legitimately purchased, and the purchase has been verified. An out-of-band technique is employed for initiating the hardware for registering and enabling the battery-powered power tool.

FIG.1illustrates an example system100for locking and unlocking battery powered power tools throughout the supply chain. The supply chain is shown to include a manufacturing facility102, a warehouse/distribution center104, and a retail store106. A supply chain may include multiple manufacturing facilities102, warehouse/distribution centers104, and/or retail stores106, and the supply chain shown inFIG.1is for example purposes only. Additional intermediate facilities or warehouses may also be utilized in a supply chain. The manufacturing facility102is shown to include a locking device108aand power tool devices110, identified as power tool devices110a-c. Only three power tool devices110are shown for illustration purposes, but the system100may include any number of power tool devices110. As described herein, the power tool devices110may be any battery-powered power tools, corded power tools, power tool battery packs used to power battery-powered power tools, or electronic devices powered by power tool battery packs that are also able to power battery-powered power tools (i.e., when disconnected from an electronic device and connected to a battery-powered power tool). Examples of battery-powered power tools and corded power tools include, but are not limited to: drills, hammer drills, reciprocating saws, circular saws, drivers, lights, radios, impact drivers, drain snakes, power ratchets, miter saws, die grinders, mixers, grinders, sanders, nailers, table saws, and the like. Examples of electronic devices powered by power tool battery packs include motorized and non-motorized devices including, but not limited to: worksite fans, worksite radios, worksite lights, and test and measurement devices (for example, distance measurers, infrared thermometers, borescope cameras, or stud finders). In other examples, in addition to or in place of the power tool devices110a-c, the system100includes other battery-powered devices, and the following discussion of the locking and unlocking features and methods described below similarly applies to such other battery-powered devices. The power tool devices110a-c, as well as those described further herein, may be referred to simply as “tools” for the sake of brevity and clarity, and the terms should be understood to be used interchangeably. The locking device108amay be configured to communicate with one or more of the tools110a-cto prevent operation of the tools110a-c, as will be described in more detail below.

Upon leaving the manufacturing facility102, one or more of the tools110a-cmay be transported to various facilities as shown inFIG.1. In some embodiments, the locking device108alocks the tools110a-cprior to the tools being transported. For example, the locking device108amay be coupled to a shipping bay to automatically lock all tools110a-cupon leaving the transportation bay. In some embodiments, the tools110a-care selectively locked based on the ultimate destination. For example, tools110a-cthat are slated to be transported ultimately to a retail store (e.g. brick and mortar location) may be locked via locking device108aprior to being loaded for transport, while tools110a-cthat are slated to be transported to an online retailer may not be locked prior to transport.

Some or all of the tools110a-cmay be received at the warehouse/distribution center104, as shown inFIG.1. The warehouse/distribution center104may serve as an intermediate location in the supply chain for tools110a-c. The warehouse/distribution center104includes one or more locking devices108b, and tools110a-c. While tools110a-care shown inFIG.1as being within the warehouse/distribution center104, it is understood that multiple tools may be located in the warehouse/distribution center104, and that the tools110a-care for example purposes only. The locking device108bmay be similar to locking device108a, and will be described in more detail below. As described above, the locking device108bare configured to communicate with one or more tools110a-c, and to “lock” the tools110a-cto prevent their operation, as will be described below in more detail. In some examples, the locking device108bis configured to lock the tools110a-cupon arrival to the warehouse/distribution center104. In other examples, the locking device108blocks the tools110a-cwhen the tools110a-cleave the warehouse/distribution center104. In some examples, as described above, the locking device108bis configured to selectively lock the tools110a-cbased on their ultimate destination (e.g. brick and mortar retail, online retail, etc.). Upon leaving the warehouse/distribution center104, the tools110a-cmay be put into transportation again, as shown inFIG.1.

Some or all of tools110a-cmay be received at the retail store106. In some examples, the tools110a-cmay be received at multiple retail stores106, and it is understood that the retail store106inFIG.1is for example purposes only. The retail store106may include a receiving/stock room area112, a shelving/showroom area114, and a point of sale116. The receiving/stock room area112may include a locking device108cand the tool110a. It should be understood that the receiving/stock room may include more tools or fewer tools, and that in some instances all tools received at the retail store106may be located in the receiving/stock room area112at some point in the retail system. The locking device108cis configured to lock the tool110aupon receiving the tool110aat the receiving/stock room area112. For example, the receiving/stock room area112may position the locking device108cat a receiving dock, and the locking device108cmay be configured to lock all tools upon their receipt at the receiving/stock room area112. In other examples, the locking device108cis a portable or hand-held device that lets a user individually lock the tool110aupon the tool110abeing received. In still further examples, the locking device108cmay be configured to lock the tool110awhen it is logged in, or otherwise marked as received by the retail store106.

The shelving/showroom area114may further include a locking device108din communication with the tool110a. The locking device108dis configured to lock the tool110awhen the tool110ais placed on the shelving/showroom area114. For example, the locking device108dmay be a handheld device that is used by an employee of the retail store to lock the tool110aupon placing the tool110aonto the shelving/showroom area114. However, other locking device designs are contemplated.

The point of sale116may be a kiosk or cashier station where a customer completes the purchase of a tool, such as the tool110a. In some embodiments, the point of sale116includes an electronic processor, memory, and a communication interface, and is in communication with one or more unlocking device118. In some embodiments, the unlocking device118is directly coupled to the point of sale116. In other embodiments, the unlocking device118is in communication with the point of sale116in various ways, such as via a wireless connection, a networked connection, or the like. The unlocking device118is configured to unlock a tool, such as the tool110a. The unlocking device118will be described in more detail below. In one example, the unlocking device118is configured to unlock the tool110aupon receiving a communication from the point of sale116indicating that the tool has been purchased by a customer. Thus, the unlocking device118can allow the tool110ato be unlocked upon a bona fide purchase of the tool110abeing verified via the point of sale116.

The system100further includes a remote server120and a cloud-based server122. The remote server120and/or the cloud-based server122are configured to interface with the locking devices108a-d, the unlocking device118, the point of sale116, and, in some instances, the tools110a-c. In one embodiment, the remote server120and/or the cloud-based server122provide communication between the manufacturing facility102, the warehouse/distribution center104, and/or the retail store106, as well as the devices therein. In some embodiments, the system100may have one or both of the remote server120and/or the cloud-based server122. In other embodiments, the system100may not have either the remote server120and/or the cloud-based server122.

Turning now toFIG.2, a block diagram of an electronic power tool200, such as tools110a-cis shown, according to some embodiments. The power tool200may be any of the battery-powered power tools described above in regards toFIG.1. The block diagram of electronic power tool200is for example purposes and it is understood that other designs and components are contemplated for various electronic power tools. The electronic power tool200(hereinafter “tool”) includes a processing circuit202, a communication interface204, a wake-up sensor205, an Input/Output (“I/O”) interface206, a user interface208a power supply210, an external power source212, one or more power switches214, a motor216, and an output shaft218. The processing circuit202may include an electronic processor220and a memory222. The processing circuit202may be communicably connected to one or more of the communication interface204, the I/O interface206, the user interface208, the power supply210, and the power switches214. The electronic processor220may be implemented as a programmed microprocessor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGA), a group of processing components, or other suitable electronic processing components.

The memory222(e.g. memory, memory unit, storage device, etc.) includes one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described herein. Memory222can be or include volatile memory or non-volatile memory. Memory222can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structure described in the present application. According to one example, the memory222is communicably connected to the electronic processor220via the processing circuit202and can include computer code for executing (e.g., by the processing circuit202and/or the electronic processor220) one or more processes described herein.

The communication interface204is configured to facilitate communications between the processing circuit202and one or more external devices and/or networks. The communication interface204can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications between the tool200and one or more external devices, such as the locking devices and unlocking devices described herein. In some embodiments, the communication interface204is a wireless communication interface such as cellular (3G, 4G, LTE, CDMA, 5G, etc.), Wi-Fi, Wi-MAX, ZigBee, ZigBee Pro, Bluetooth, Bluetooth Low Energy (BLE), RF, LoRa, LoRaWAN, Near Field Communication (NFC), Radio Frequency Identification (RFID), Z-Wave, 6LoWPAN, Thread, WiFi-ah, and/or other wireless communication protocols. Additionally, the communication interface204may include wired interfaces such as Universal Serial Bus (USB), USB-C, Firewire, Lightning, CATS, universal asynchronous receiver/transmitter (UART), serial (RS-232, RS-485), etc. In some embodiments, the communication interface204communicates via an antenna224.

The I/O interface206allows for communication with one or more external devices, which may include product accessories. The I/O interface206may further facilitate communication with other components inside the tool200, such as the communication interface204and the user interface208, as well as the processing circuit202. The user interface208may include a trigger, a mode selector, or other user accessible controls that can generate control signals in response to the user actuating or operating the associated component of the user interface208. In some embodiments, the user interface208may include a display or other visual indicating device that may provide a status of the tool200, such as an operating status, a battery charge status, a locked/unlocked status, etc.

The control signals from the user interface208may be transmitted to the processing circuit202, which may be configured to activate the one or more power switches214to draw power from the power supply210and external power source212and drives the motor216. In one embodiment, the power switches214may be Field Effect Transistors (FETs). However, other power switch types are contemplated, such as BJT transistors, CMOS transistors, insulated gate bipolar transistors (IGBT), etc. By selectively enabling and disabling the power switches214, power from the power supply210is selectively applied to stator windings of the motor216to cause rotation of a rotor of the motor216. The rotating rotor of the motor216drives the output shaft218. Although not shown, the processing circuit202and other components235of the tool200are also electrically coupled to and receive power from the external power source212. In some embodiments, the external power source is a power tool battery pack that is selectively engageable with the power tool and includes one or more battery cells, such as a lithium-ion (Li-Ion) battery cells or NiCad battery cells. In some embodiments, the tool200is a corded power tool and the external power source212is utility grid-powered alternating current (AC) outlet.

As noted above, while one or more of the power tool devices110ofFIG.1may be a battery-powered power tool, such as the tool200illustrated inFIG.2, the power tool devices110ofFIG.1may also be a power tool battery pack (seeFIG.7, discussed below) or another electronic device powered by power tool battery pack. With respect to these electronic devices powered by power tool battery packs, the block diagram of the tool200inFIG.2similarly applies to motorized electronic devices powered by power tool battery packs. Further, the block diagram of the tool200inFIG.2is similarly applicable to non-motorized electronic devices powered by power tool battery packs, except that, in place of one or more of the power switches214, motor216, and output shaft218, a non-motorized load is provided (e.g., a light, speaker, or sensor).

The wake-up sensor205generates a wake signal for activating the tool200to allow locking or unlocking of the tool200. To reduce battery power consumed while the tool200is in the supply chain prior to being delivered to a purchaser, various elements of the tool200, such as the electronic processor220, the communication interface204, and the I/O interface206may be placed into a deep sleep state. The wake-up sensor205generates the wake signal responsive to a predetermined stimulus to activate the elements of the tool200used to perform locking or unlocking features. In some embodiments, the wake-up sensor205responds to an electrical stimulus, such as a magnetic swipe, an electronic communication, or a switch activation. In some embodiments, the wake-up sensor205responds to a mechanical stimulus, such as a particular sound, motion, or vibration pattern.

As noted above, in the external power source212is a power tool battery pack, such as illustrated in further detail inFIG.7, that powers the various components within the power tool200. However, in some embodiments, the power tool battery pack is not provided for sale with the power tool200or, even if sold with the power tool200, it is not coupled to the power tool200at the time of sale. Accordingly, in some embodiments, an internal power source226is provided to power select elements of the power tool200, such as the processing circuit202and the communication interface204. The internal power source212may be, for example, a coin cell battery or another small battery cell. In some embodiments, the internal power source212may be charged by the power supply210when an external power source12is coupled to the power supply210. In some embodiments, the internal power source226includes a wireless charging circuit as is configured to be charged by a wireless charger228. The internal power source226may be charged by the wireless charger228in the manufacturing facility102, the warehouse/distribution center104, or the retail store106(e.g., where the wireless charger228is integrated into or attached to a retail shelf within the store). For example, the wireless charger228may generate a varying current through a transmitter antenna, which generates a varying electromagnetic field, which induces current in a receiving coil of the wireless charging circuit of the internal power source212through induction. The induced current is then used as a charging current to increase the state of charge of the internal power source226. In some embodiments, the tool200provides an alert, such as an audible alert or a status indicator, on the user interface208when the charge on the internal power source226falls below a threshold, as determined by the electronic processor220. In some embodiments, the internal power source226is provided as an external power source that connects to terminals on the power tool200.

In some embodiments, the wake-up sensor205includes an identification tag230, such as a radio frequency identification (RFID) tag or near field communication (NFC) tag, which generates the wake signal responsive to a transaction being conducted with the identification tag230, such as a read transaction or a write transaction implemented by an interrogator (e.g., the locking device300or unlocking device400). For example, the interrogator may generate a varying current through a transmitter antenna, which generates a varying electromagnetic field to induce current in a receiving coil of the identification tag230through induction. The induced current then powers a circuit of the identification tag230that generates the wake signal. In one example, the circuit may include a processor that, for example, compares an encoded signal in the interrogator transmission to a stored code (e.g., stored in a memory element of the wake-up sensor205). In the case of a match, the wake-up sensor205outputs the wake signal.

In some embodiments, the location of the identification tag may be marked by a visual indicator, such as a symbol, on a housing of the tool200. In some embodiments, an external antenna may be provided in the packaging of the tool200that communicates with the wake-up sensor205. A symbol for interfacing with the wake-up sensor205may be provided on an outer surface of the packaging. Multiple interface locations may be marked if the packaging contains multiple tools200. In some embodiments, the interrogator may have sufficient strength to read multiple identification tags concurrently. Information associated with a scanning code on the packaging, such as a universal product code (UPC), serial number, or the like, may indicate the number of tools200in the package. In some embodiments, information indicating the number of tools200in the package may be stored in the identification tag.

In some embodiments, the wake-up sensor205includes a magnetic strip card reader wherein a card (e.g., of the retailer) is swiped in the reader. The wake-up sensor205, in response to the swipe, determines an encoded signal, compares the encoded signal to a stored code (e.g., stored in a memory element of the wake-up sensor205). In the case of a match, the wake-up sensor205outputs the wake signal.

In some embodiments, the wake-up sensor205includes a motion sensor, such as an accelerometer, and a processing circuit to receive signals from the motion sensor. The motion sensor outputs signals in response to, and indicative of, predetermined motions, such as accelerations, detected by the accelerometer. In one embodiment, the processing circuit compares the received output signals from the motion sensor to a threshold value (e.g., stored in a memory element of the wake-up sensor205), and when the motion exceeds the threshold value, the wake signal is generated. Accordingly, in one example, the wake-up sensor205is configured to output the wake signal in response to the power tool200being shaken. The threshold can be set to various values, the set value thereby specifying the intensity level of shaking that will cause the wake-up sensor205to generate the wake signal. In another example, a processing circuit compares the received output signals from the motion sensor to a predetermined pattern of signals corresponding to a predetermined motion (e.g., stored in a memory element of the wake-up sensor205). When the motion signals match the predetermined pattern, the wake signal is generated. Accordingly, in one example, the wake-up sensor205is configured to output the wake signal in response to the power tool200being moved in a predetermined motion (e.g., up, down, left and then right, or in a circle).

As noted, in other embodiments, the wake-up sensor205includes other sensing elements, but may operate using similar principals as described above. For example, the wake-up sensor205may include a push-button switch (when depressed, the wake signal is generated) or a microphone (when a certain audio signal pattern is matched or threshold is reached, the wake signal is generated). In some embodiments, other types of wake-up sensors205are provided.

Turning now toFIG.3, a block diagram illustrating an example locking device300is provided, according to some embodiments. The locking device300may be similarly configured to the locking devices108a-d, described above. The locking device300includes a processing circuit302, a communication interface304, an I/O interface306, and a user interface308. The processing circuit302may be communicably connected to one or more of the communication interface304, the I/O interface306, and the user interface308. The processing circuit302includes an electronic processor310and a memory312. The electronic processor310may be implemented as a programmed microprocessor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGA), a group of processing components, or other suitable electronic processing components.

The memory312(e.g. memory, memory unit, storage device, etc.) includes one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described herein. Memory312can be or include volatile memory or non-volatile memory. Memory312can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structure described in the present application. According to one example, the memory312is communicably connected to the electronic processor310via the processing circuit302and can include computer code for executing (e.g., by the processing circuit302and/or electronic processor310) one or more processes described herein.

The communication interface304is configured to facilitate communications between the processing circuit302and one or more external devices and/or networks. The communication interface304can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications between the locking device300and one or more external devices, such as one or more battery-powered tools, as described herein. In some embodiments, the communication interface304is a wireless communication interface such as cellular (3G, 4G, LTE, CDMA, 5G, etc.), Wi-Fi, Wi-MAX, ZigBee, ZigBee Pro, Bluetooth, Bluetooth Low Energy (BLE), RF, LoRa, LoRaWAN, Near Field Communication (NFC), Radio Frequency Identification (RFID), Z-Wave, 6LoWPAN, Thread, WiFi-ah, and/or other wireless communication protocols. Additionally, the communication interface304may include wired interfaces such as Universal Serial Bus (USB), USB-C, Firewire, Lightning, CATS, universal asynchronous receiver/transmitter (UART), serial (RS-232, RS-485), etc. In some embodiments, the communication interface304communicates via an antenna314.

The I/O interface306allows for communication with one or more external devices, such as an electronic power tool. The I/O interface306may further facilitate communication without other components inside the locking device300, such as the communication interface304and the user interface308, as well as the processing circuit302.

In some embodiments, the communication interface304of the locking device300employs one protocol to communicate with the wake-up sensor205on the tool, such as an RFID or NFC protocol, and another protocol for communicating via the communication interface204with the electronic processor220of the tool200, such as a BLE or other wireless protocol. In that respect, the communication with the wake-up sensor205is out-of-band with respect to the communication with the electronic processor220via the communication interface204. Similarly, if the wake-up sensor205operates responsive to a mechanical stimulus, its operation is out-of-band with respect to the communication with the electronic processor220via the communication interface204.

The user interface308may include various interface elements to allow for a user to interface with the locking device. In some embodiments, the user interface308may include user interface elements such as a display (LCD, LED, etc.), keyboards, touchscreens, touchpads, microphones, speakers, scanning devices, sensors, or other user interface elements that can allow the user to provide input directly to the locking device300. In some examples, a user may be able to instruct the locking device300to execute one or more processes, such as locking a battery-powered power tool, as will be described in more detail herein.

In some embodiments, the memory312is configured to store one or more processes for execution by the electronic processors310and/or the processing circuit302. For example, the memory312may include a locking key algorithm generator316. The locking key algorithm generator may be configured to generate one or more locking keys, which can be provided to a battery-powered power tool, such as the tool200, via the communication interface304and/or the I/O interface306. The locking keys may be generated based on one or more parameters, such as battery-powered tool information. Battery-powered tool information may include one or a combination of manufacture date, serial number, model number, product ID, etc. In some embodiments, a user may input the battery-powered tool information via the user interface308. In one embodiment, the locking code is generated using a hashing function to combine two or more elements of the battery-powered tool information. In other embodiments, the battery-powered tool information is provided to the locking device300via the communication interface304and/or the I/O interface306. In one embodiment, the generated locking key is unique to a specific battery-powered power tool. The memory may further include a locking output signal generator318. The locking output signal generator318may generate the signal to be provided to battery-powered power tool to instruct the battery-powered power tool to “lock,” thereby preventing operation of the battery-powered power tool. In one example, the locking output signal is transmitted to the battery-powered power tool via the communication interface304. In other examples, the locking output signal is provided to the battery-powered power tool via the user interface308. In one embodiment, the locking output signal includes the locking key generated by the locking key algorithm generator316.

In some examples, the locking device300may be a standalone device. For example, the locking device300may be a handheld device or a fixed device, such as fixed device positioned within a manufacturing facility, warehouse, distribution site, or retail store, as described above. In still further examples, the locking device300may be integrated into a user/customer device, such as a smartphone, tablet computer, personal computer, or other electronic device. For example, a user/customer may install an application or other program onto their device. The application or other program may be configured to allow the user/customer device to operate as the locking device300, and can utilize the hardware, such as the user interface and communication interface (e.g. Bluetooth, Wi-Fi, cellular, etc.) of the user/customer device, to perform a locking function on a tool. In one example, the tool may be locked prior to purchase, as described above. In other examples, an owner of the tool may utilize their personal device as a locking device to lock their tool, such as if it is stolen, or being put into storage.

Turning now toFIG.4, a block diagram illustrating an example unlocking device400is provided, according to some embodiments. The unlocking device400may be similarly configured to the unlocking device118, described above. The unlocking device400includes a processing circuit402, a communication interface404, an I/O interface406, and a user interface408. The processing circuit402may be communicably connected to one or more of the communication interface404, the I/O interface406, and the user interface408. The processing circuit402may include an electronic processor410and a memory412. The electronic processor410may be implemented as a programmed microprocessor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGA), a group of processing components, or other suitable electronic processing components.

The memory412(e.g. memory, memory unit, storage device, etc.) can include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described herein. The memory412can be or include volatile memory or non-volatile memory. The memory412can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structure described in the present application. According to one example, the memory412is communicably connected to the electronic processor410via the processing circuit402and can include computer code for executing (e.g. by the processing circuit402and/or electronic processor410) one or more processes described herein.

The communication interface404is configured to facilitate communications between the processing circuit402and one or more external devices and/or networks. The communication interface404can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications between the unlocking device400and one or more external devices, such as one or more battery-powered tools, as described herein. In some embodiments, the communication interface404is a wireless communication interface such as cellular (3G, 4G, LTE, CDMA, 5G, etc.), Wi-Fi, Wi-MAX, ZigBee, ZigBee Pro, Bluetooth, Bluetooth Low Energy (BLE), RF, LoRa, LoRaWAN, Near Field Communication (NFC), Radio Frequency Identification (RFID), Z-Wave, 6LoWPAN, Thread, WiFi-ah, and/or other wireless communication protocols. Additionally, the communication interface404may include wired interfaces such as Universal Serial Bus (USB), USB-C, Firewire, Lightning, CATS, universal asynchronous receiver/transmitter (UART), serial (RS-232, RS-485), etc. In some embodiments, the communication interface404communicates via an antenna414.

In some embodiments, the communication interface404of the unlocking device400employs one protocol to communicate with the wake-up sensor205on the tool, such as an RFID or NFC protocol, and another protocol for communicating via the communication interface204with the electronic processor220of the tool200, such as a BLE or other wireless protocol. In that respect, the communication with the wake-up sensor205is out-of-band with respect to the communication with the electronic processor220via the communication interface204. Similarly, if the wake-up sensor205operates responsive to a mechanical stimulus, its operation is out-of-band with respect to the communication with the electronic processor220via the communication interface204.

The I/O interface406may allow for communication with one or more external devices, such as an electronic power tool. The I/O interface406may further facilitate communication with other components inside the unlocking device400, such as the communication interface404and the user interface408, as well as the processing circuit402.

The user interface408may include various interface elements to allow for a user to interface with the locking device. In some embodiments, the user interface408includes user interface elements such as a display (LCD, LED, etc.), keyboards, touchscreens, touchpads, or other user interface elements that can allow the user to provide input directly to the unlocking device400. In some examples, a user may be able to instruct the unlocking device40to execute one or more processes, such as unlocking a battery-powered power tool, as will be described in more detail herein.

In some embodiments, the memory412is configured to store one or more processes for execution by the electronic processors410and/or the processing circuit402. For example, the memory412may include an unlock key algorithm generator416. The unlock key algorithm generator416configures the electronic processor to generate one or more unlocking keys, which can be provided to a battery-powered power tool via the communication interface304and/or the I/O interface406. The unlocking keys may be generated based on one or more parameters, such as battery-powered tool information. Battery-powered tool information may include one or a combination of manufacture date, serial number, model number, product ID, purchase time, purchase date, purchase location, etc. In some embodiments, a user may input the battery-powered tool information via the user interface408. In other embodiments, the battery-powered tool information is provided to the unlocking device400via the communication interface404and/or the I/O interface406. In some embodiments, the unlocking device400may receive battery-powered tool information from a point-of-sale, such as point of sale116. In one embodiment, the generated locking key is unique to a specific battery-powered power tool. The memory may further include a purchase verification process418. The purchase verification process418configures the electronic processor410to receive one or more electronic messages indicating a purchase of a battery-powered power tool has been completed. In some embodiments, the purchase verification process418configures the electronic processor410to receive purchase details from one or more sources, such as point of sale116. In some embodiments, the purchase verification process418configures the electronic processor410to communicate with the unlock key algorithm generator416to provide the purchase verification data to the unlock key algorithm generator416.

In some examples, the unlocking device400is a standalone device. For example, the unlocking device400may be a handheld device or a fixed device, such as fixed device positioned at the exit of the retail store. In some examples, the unlocking device is integrated into the point of sale. For example, the unlocking device400may be integrated with a scanning device of the point of sale, such that when the tool is “scanned” as part of the purchase process, the unlocking device can unlock the tool. In still further examples, the unlocking device400is integrated into a user/customer device, such as a smartphone, tablet compute, personal computer, or other electronic device. For example, a user/customer may install an application or other program onto their device. The application or other program may be configured to allow the user/customer device to operate as the unlocking device400, and can utilize the hardware, such as the user interface and communication interface (e.g. Bluetooth, Wi-Fi, cellular, etc.) of the user/customer device, to perform an unlocking function on a purchased tool. Further, the application may communicate with the point of sale or the cloud-based server122to verify purchase of the tool.

Turning now toFIG.5, a flowchart illustrating a battery-powered power tool locking process500is shown, according to some embodiments. The process500may be performed by, and is described with respect to, components described above (e.g., the locking device300and the power tool200); however, in some embodiments, the other locking devices, tools, and components are used to perform the process500. At process block502, the tool200is woken by providing the appropriate stimulus to the wake-up sensor205. For example, the identification tag230may be interrogated by the locking device300, a magnetic swipe may be performed, a predetermined mechanical action may be performed, or another of the aforementioned stimuli may be provided to the wake-up sensor205. Responsive to the wake signal from the wake-up sensor205, at least some of the elements of the tool200, such as the electronic processor220, the communication interface204, and the I/O interface206, are transitioned from a deep sleep state to an active state to allow communication with the locking device300.

In one example embodiment, the locking device300interrogates the identification tag230as described above, which causes the wake-up sensor205to generate the wake signal. The wake signal is provided to the communication interface204, which includes a wireless radio (for example, a BLE radio or a Bluetooth radio). The wake signal then serves as an interrupt signal to a processor of the communication interface204, which causes the processor to exit a standby software code loop (of the deep sleep state) and to jump to main software code loop (of the woken state). Once awakened, the communication interface204may communicate a further wake signal to the electronic processor220. The further wake signal may similarly serve as an interrupt that causes the electronic processor220to exit a standby software code loop and to jump to a main software code loop. In this example, the communication interface204, as well as the electronic processor220and other elements of the processing circuit202may be powered by the internal power source226during this process block502(and while the external power source212may be disconnected from the power supply210). In some embodiments, the wake signal is sent to both the communication interface204and the electronic processor220in parallel.

At process block504, tool information is received by the locking device300. The tool information may include a UPC code, a serial number, product model number, RFID identification number, Bluetooth address, etc. In some examples, the tool information is any information that is unique to a particular electronic power tool. The tool information may be generated during the manufacture of the tool, or be provided at various points along the supply chain, such as at a warehouse/distribution center, or at the end retail store. In some embodiments, the tool information is provided to the locking device300by a user inputting the tool information via the user interface308. In some embodiments, the tool information is provided to the locking device300by the remote server120or the cloud-based server122, or a combination of user input via the user interface308and input from one or both of the servers.

Upon receiving the tool information, the locking device300generates a locking code (process block506). In some embodiments, the locking device300generates the locking code based on the unique tool information received at process block504. In further embodiments, the locking code may be generated using a combination of the unique tool information, as well as other parameters, such as the current date, the current time, a current geographical location, etc. As described above, the locking device300may apply a hashing function to the unique tool information and other parameters to generate the locking code. The generated locking code may further be stored in the remote server120, the cloud-based server122, or other database for verification during a subsequent unlocking process (seeFIG.6and accompanying text).

At process block508, the locking device300transmits the locking code to the tool200. In some examples, the locking code may be transmitted to, and received by, the communication interface204of the tool200. In some examples, the locking code may be stored in the memory222of the tool. In some embodiments, the locking device300transmits the locking code using an active wireless protocol, such as cellular (3G, 4G, 5G, LTE, CDMA, etc.), Bluetooth, BLE, LoRa, 6lowPAN, Wi-Fi, infrared, etc. In using active wireless protocols, power may need to be provided to the tool200. Power may be provided to the tool200using an external source, or, as described above, a power supply of the tool200may include an internal power supply capable of powering the communication interface204, the I/O interface206, the user interface208, and/or the processing circuit202when the external power supply is not present.

In some embodiments, the tool200may be configured to harvest energy from a passive wireless protocol transmitter, and utilize that energy to allow for an active wireless protocol to be used to communicate with the tool200. For example, the energy provided from a passive wireless protocol transmitter may be harvested and converted to a current which may be stored by an energy storage device on the tool200, such as a battery or a capacitor, which may then provide power to the communication interface and/or the processing circuit of the tool. As an example of harvesting energy, a varying current in a transmitter antenna generates a varying electromagnetic field, which induces current in a receiving coil of the tool200through induction. The induced current may then be stored in an energy storage device of the tool200. In one example, the locking code may be transmitted via a tool mesh network. For example, one or more tools200may be in electronic communication with each other to form a mesh network. Within the mesh network one or more tools200may be connected to an external communication network, such as the cloud-based server122described above. The tools200connected to the external communication network may be configured to communicate messages from the external communication network to the other tools200in the mesh network.

In one example, the communication interface204of the tool200includes a cellular communication interface, which provides a general location of the tool200to the locking device300. For example, a location of the tool200may be deduced from a known location of a cellular network tower or towers that receive(s) a signal from the tool200, and the location may be provided to the locking device300. Alternatively, or in addition, the tool200may include a global positioning satellite (GPS) receiver and the tool200may communicate its location via the cellular communication interface to the locking device300. The locking device300then transmits the locking code to the tool200upon the locking device300determining that the tool200has arrived at a location where it is desired that the tool be locked. For example, the locking code may be transmitted to the tool when the locking device300determines that the tool200has arrived at a specific retail location. In other examples, the locking device300transmits the locking code to the tool200when it is determined that the tool200has arrived at a specific warehouse and/or distribution site.

In some example, the locking device300transmits the locking code to the tool200via a wired communication protocol, such as USB, serial (RS-232), Ethernet, or other wired communication protocols, including proprietary wired communication protocols. In other examples, other systems for transmitting the lock code to the tool200are also contemplated. For example, the lock code may be an audio signal which may be received via a microphone associated with the user interface208of the tool200. In some examples, the lock code is provided via a physical mechanism provided to the I/O interface206of the tool200. The physical mechanisms may include using a keyed device such as a flash drive or other keyed device. In other examples, the locking device300provides one or more voltage or current signals to the tool200via the I/O interface206, which instructs the processing circuit202to lock the tool200. In some embodiments, the tool200is locked via the I/O interface206or other interface associated with the tool200by physically adding or removing an object to/from the tool200. For example, a jumper connecting two or more I/O ports on the I/O interface206may be added or removed, which indicates that the tool200is to be locked. The locking code may be provided to the tool at various points, such as at manufacturing, shipping, distribution, store receiving department, during stocking onto retail store shelves, etc.

Once the tool receives the locking code, the tool200is locked at process block510. In some examples, the locking of the tool200results in the tool200being prevented from operating. For example, when the tool200is locked, the processing circuit202is configured to prevent power from being provided to the power switches214, which in turn prevents operation of the motor216. In one embodiment, in response to receipt of the locking code by the tool200, a flag or bit is set in the electronic processor220. When a user actuates the trigger or other mechanism within the user interface208to attempt to operate the tool200, the processing circuit202detects the set flag or bit and prevents power from being provided to the power switches. In other examples, locking the tool200prevents the user from being able to operate the tool200via the user interface208of the tool200. In other examples, a switch or relay may be integrated into the tool200and, upon receiving the locking code, the switch or relay is opened via the processing circuit202to prevent power from being provided to the power switches214. The switch or relay may be positioned between the power supply210and the power switches214, between the processing circuit202and the power switches214, or between the power switches214and the motor216. In one example, the locking code can be written to the tool200only once, and therefore the tool is only able to be locked once. However, in other examples, the locking code may be provided to the tool200multiple times, such as when the user wishes to lock the tool200after it has been initially unlocked.

In some embodiments, the tool200, upon receipt of the lock code, may lock the tool in response to first verifying the authenticity of the lock code. To authenticate the lock code, the processing circuit202of the power tool200may apply an algorithm to the received lock code. As an example, the processing circuit202may authenticate the lock code by comparing the lock code to a previously stored lock code and determining that the compared codes match.

In some embodiments, the user interface208is configured to provide an indication (e.g., an audible indication, visual indication, or tactile indication) that the tool200has been locked.

In some embodiments, the tool200returns to a deep sleep state if the locking at blocks504-510is not completed within a particular time period, such as 30 seconds, 1 minute, or 5 minutes. For example, the stimulus may be provided to the wake-up sensor205in error. In some embodiments, the electronic processor220in the tool200maintains a timer and resets the wake-up sensor205to withdraw the wake signal if the timer elapses. Withdrawing the wake signal may reduce power consumption. In some embodiments, the wake-up sensor205provides a one-shot wake signal that wakes up the tool200for a predetermined time period. The electronic processor220may return to the deep sleep state responsive to the predetermined time period elapsing.

In some embodiments, the wake operation in process block502is omitted. The tool200may be in an active state after manufacture. After the tool200is locked in process block510, the tool200enters the deep sleep state by deactivating the electronic processor220, the communication interface204, and the I/O interface206.

Turning now toFIG.6, a flowchart illustrating a process600for unlocking the power tool200is shown, according to some embodiments. The process600may be performed by, and is described with respect to, components described above (e.g., the locking device300, the unlocking device400, and the power tool200); however, in some embodiments, other locking devices, unlocking devices, tools, and components are used to perform the process600. Further, in some embodiments, the process600is performed after the process500is performed. At process block602, the tool200is woken by providing the appropriate stimulus to the wake-up sensor205. For example, the identification tag230may be read by the locking device300, a magnetic swipe may be performed, a predetermined mechanical action may be performed, or another of the aforementioned stimuli may be provided. Responsive to the wake signal from the wake-up sensor205, at least some of the elements of the tool200, such as the electronic processor220, the communication interface204, and the I/O interface206, are transitioned from a deep sleep state to an active state to allow communication with the unlocking device400.

In one example embodiment, the locking device300interrogates the identification tag230as described above, which causes the wake-up sensor205to generate the wake signal. The wake signal is provided to the communication interface204, which includes a wireless radio (for example, a BLE radio or a Bluetooth radio). The wake signal then serves as an interrupt signal to a processor of the communication interface204, which causes the processor to exit a standby software code loop (of the deep sleep state) and to jump to main software code loop (of the woken state). Once awakened, the communication interface204may communicate a further wake signal to the electronic processor220. The further wake signal may similarly serve as an interrupt that causes the electronic processor220to exit a standby software code loop and to jump to a main software code loop. In this example, the communication interface204, as well as the electronic processor220and other elements of the processing circuit202may be powered by the internal power source226during this process block602(and while the external power source212may be disconnected from the power supply210). In some embodiments, the wake signal is sent to both the communication interface204and the electronic processor220in parallel.

At process block604, a purchase of the tool is verified. In some examples, the purchase is verified by one or more of the unlocking device400, remote server120, or cloud-based server122based on a communication from a point of sale, such as the point of sale116, confirming a bona fide purchase. For example, the point of sale116may confirm receipt of payment based on, for example, one or more of cashier input confirming cash payment or a confirmation of payment received from a banking institution associated with the purchaser in reply to credit/debit card information provided to the institution by the point of sale116. Then, the point of sale116is configured to transmit a confirmation of the bona fide purchase to one or more of the unlocking device400, remote server120, or cloud-based server122, along with various purchase information relating to the purchase of the tool. Purchase information can include price paid, payment method, time, date, store identification number, geographical information, tool UPC code, tool serial number, a purchase verification message, etc. In some examples, the point of sale116transmits the purchase information to the remote server120or the cloud-based server122. The purchase information may be further transmitted to the unlocking device400, or other unlocking devices as described herein.

At process block606, upon receiving the purchase information verifying the purchase, an unlock code is generated. In some embodiments, the remote server120or the cloud-based server122generates the unlock code and transmits the unlock code to the unlocking device400. In other embodiments, the unlocking device400generates the unlock code. In some examples, the unlock code is generated using one or more algorithms. For example, the unlock code algorithms may generate unlock codes that are based on a similar algorithm associated with the locking code algorithm. In other examples, the unlock code algorithm may utilize the purchase information when generating the unlock code. The unlock code algorithm may generate a unique unlock code that is recognizable by a locked tool. In some embodiments, the unlock code is a generic code applicable to a class of tools (e.g., tools sold by a particular retailer, tools of a particular model type, tools of a particular manufacturing batch), which is made available to the unlocking device400and/or the point of sale116upon the purchase of the tool200being verified. In one example, the point of sale116queries the remote server120and/or the cloud-based server122to request an unlock code for the unlocking device400after or during the verification of the purchase of the tool200. In some embodiments, the unlocking device400stores a cache of unlock keys for use should communication with the remote server120or the cloud-based server122be interrupted. The unlocking device400may communicate unlock keys assigned during the interruption to the remote server120or the cloud-based server122upon service restoration.

In some examples, in process block606, the unlock code is provided to a user of the tool (e.g., the purchaser). Where the unlock code is a specific code to be input directly by the user, e.g. via a user interface of the tool, the unlock code is provided to the user at the point of sale116. For example, the unlock code may be printed on a receipt provided to the user. In other examples, a separate document is printed with an unlock code to be provided to the user. In still further examples, the code is electronically communicated to the user, such as via a text message (SMS, MMS, etc.), a push notification message, or an e-mail. In still further examples, the unlock code is provided to an application or other program associated with the user. For example, the user may have, or be instructed to download, an application for communicating with the tool. The unlock code may then be provided to the user via the application once the user accesses the application and verifies their identity and the tool information. Other electronic messages are also contemplated.

In process block608, the unlock code is transmitted to the tool200. The unlock code is transmitted to the tool200by, for example, the unlocking device400, the remote server120, or the cloud-based server122, using, for example, or more of the techniques described below. In some embodiments, the unlocking code is transmitted to the tool200in response to completion of the generation of the unlocking code in process block606. In some embodiments, the unlocking code is transmitted to the tool200in response to verification of the purchase in process block604(for example, when process block606is completed before process block604).

In some embodiments, the unlock code is transmitted to the tool200directly from the unlocking device400. In some examples, the unlock code is transmitted to, and received by, the communication interface204of the tool200. In one example, upon receipt, the unlock code is stored in a memory of the tool, such as the memory222or a memory of the communication interface204of the tool200, and is provided to the processing circuit202upon the tool200being initialized (e.g. powered up for the first time by the user). In some embodiments, the unlock code is transmitted to the tool200in process block608using an active wireless protocol, such as cellular (3G, 4G, 5G, LTE, CDMA, etc.), Bluetooth, BLE, LoRa, 6lowPAN, Wi-Fi, infrared, etc. In using active wireless protocols, power may need to be provided to the tool200. Power may be provided to the tool200using an external source, or, as described above, the power supply210of the tool200includes an internal power supply capable of powering the communication interface204, I/O interface206, user interface208, and/or processing circuit202when the external power supply is not present. In some examples, the tool200may receive the unlock code upon the user providing power to the tool200for the first time, e.g. by attaching the battery pack to the tool200.

In other embodiments, the unlocking code may be transmitted to the tool200in process block608via passive wireless protocols such as RFID, NFC or a simple magnetic swipe. Passive wireless protocols such as RFID and NFC can allow for the unlock signal to be received by the tool200without requiring the power supply210to be powered within the tool200. Passive wireless protocols such as RFID and NFC can wirelessly power an associated receiver within the tool when the tool is within a physical range of the RFID and/or NFC transmitters. For example, the unlock code may be generated by the unlocking device400associated with the point of sale. In other examples, the unlocking device400may located at the exit to the store, and transmits the unlock code to the tool200as it passes near the unlocking device400when the purchaser exits the store. In some embodiments, the tool200is configured to harvest energy from a passive wireless protocol transmitter, and utilize that energy to allow for an active wireless protocol to be used to communicate with the tool. For example, the energy provided from a passive wireless protocol transmitter may be harvested and converted to a current which may be stored by an energy storage device on the tool, such as a battery or a capacitor, which may then provide power to the communication interface and/or the processing circuit of the tool. As an example of harvesting energy, a varying current in a transmitter antenna generates a varying electromagnetic field, which induces current in a receiving coil of the tool200through induction. The induced current may then be stored in an energy storage device of the tool200. In one example, the locking code may be transmitted via a tool mesh network. For example, one or more tools200may be in electronic communication with each other to form a mesh network. Within the mesh network one or more tools200may be connected to an external communication network, such as the cloud-based server122described above. The tools200connected to the external communication network may be configured to communicate messages from the external communication network to the other tools200in the mesh network.

In one example, the unlock code is transmitted to the tool200in process block608via a cellular signal. For example, the unlock code may be communicated to the tool200from the remote server120, the cloud-based sever122, or the unlocking device400automatically when the purchase is completed. In other examples, the unlock code is transmitted to the tool200via the cellular signal when the tool200is first powered up (e.g., batteries inserted), and the tool200sends a cellular signal with a request for the unlock code via the communication interface204(e.g., to the remote server120, the cloud-based sever122, or the unlocking device400).

In some examples, the unlock code may be transmitted to the tool200in process block608via a wired communication protocol, such as USB, serial (RS-232), Ethernet, or other wired communication protocols, including proprietary wired communication protocols. In other examples, other systems for transmitting the unlock code to the tool200are also contemplated. For example, in some examples the unlock code is an audio signal, which may be received via a microphone device associated with user interface208of the tool200. In some examples, the unlock code may be provided via a physical mechanism provided to the I/O interface206of the tool. The physical mechanisms may include using a keyed device such as a flash drive or other keyed device. In other examples, one or more voltage or current signals may be provided to the tool200as the unlock code via the I/O interface206, which can instruct the processing circuit202to unlock the tool200. In some embodiments, the unlock code is transmitted to the tool200via the I/O interface206or other interface associated with the tool200by physically adding or removing an object to/from the tool200. For example, a jumper connecting two or more I/O ports on the I/O interface206may be added or removed, which indicates that the tool200is to be unlocked. The unlock code may be provided to the tool at various points, such as at manufacturing, shipping, distribution, store receiving department, during stocking onto retail store shelves, etc.

Where the unlock code is provided to the user in process block606(e.g., on a receipt or by email), the user may transmit the unlock code directly to the tool200through the communication interface204in process block608. In some embodiments, the user inputs the code via the user interface208of the tool200. In some examples, the unlock code may be a numerical or alphanumerical code, which the user may enter via a user interface of the tool200, such as a keypad. In other embodiments, the user may enter the numerical or alphanumerical code via an application associated with the tool, which may then transmit the unlock code to the tool200.

In other examples, where the unlock code is provided to the user in process block606, the user transmits the unlock code to the tool200in process block608by providing a sequence of operations or inputs to the tool200via the user interface208, such as a trigger pull, to input the unlock code. The user may further transmit the unlock code by physically manipulating (e.g. shaking) the tool200in the provided sequence to input the unlock code. In other examples, the user is provided with one or more verbal or audio codes that can be provided to a microphone or other sensors associated with the user interface208of the tool200. In some examples, the audio signals may be provided electronically to the user, as described above, allowing the user to electronically play back the audio signals to the tool via the electronic device. In some embodiments, the user establishes communication with the tool via a personal electronic device of the user. For example, the user may execute an application associated with the tool200on a user device, such as a computer, a smartphone, a tablet computer, etc. The application may utilize one or more communication protocols, such as Bluetooth, on the user device to communicate with the tool200. The application then transmits the unlock code to the tool200. In some embodiments, the unlock code is provided via the application as described above. In other examples, the user accesses an unlock code previously provided in an electronic communication (e.g. text message, e-mail, etc.), and the user device then accesses the remote server120and/or the cloud-based server122, which can facilitate the user device establishing a communication with the tool200and transmitting the unlock code.

In some examples, the unlock code is transmitted to a separate device, such as an electronic key, which may be configured to interface with the tool200in order to provide the unlock code to the tool200. For example, upon purchasing a tool, an electronic key may be provided the unlock code via the unlocking device (e.g. at the point of sale116) and provided to the customer. Upon powering up the purchased tool200for the first time, the customer may interface the electronic key with the tool to transmit the unlock code to the tool200. In some examples, the electronic key is configured to communicate wirelessly with the tool via a communication interface204of the tool. In other examples, the electronic key may physically interface with the tool200, such as via the I/O interface206.

Upon receiving the unlock code at the tool200, the tool200is unlocked at process block610. For example, the tool200, upon receipt of the unlock code, may unlock the tool in response to verifying the authenticity of the unlock code. To authenticate the unlock code, the processing circuit202of the power tool200may apply an algorithm to a received unlock code. As an example, the processing circuit202may authenticate the unlock code by comparing the unlock code to a previously received lock code or a previously stored unlock code and determining that the compared codes match.

In response to verifying that the unlock code is authentic, the tool200is unlocked. In one example, the tool200is unlocked by the processing circuit202allowing power to be switched via the power switches214, thereby rotating the motor of the tool200. In other embodiments, the tool200is unlocked by the processing circuit202permitting control inputs provided by a user via the user interface208of the tool200to be processed, thereby initiating operation of the tool200based on the received control inputs. In one embodiment, a flag or bit is set in the electronic processor220upon receiving and authenticating the unlock code. When a user actuates the trigger or other mechanism within the user interface208to attempt to operate the tool, the processing circuit202detects the set flag or bit and allows power to be provided to the power switches214. In other examples, unlocking the tool200allows the user to be able to operate the tool200via the user interface208of the tool200. In other examples, a switch or relay may be integrated into the tool200and, upon receiving the unlocking code, the switch or relay is closed via the processing circuit202to allow power to be provided to the power switches214. The switch or relay may be positioned between the power supply210and the power switches214, between the processing circuit202and the power switches214, or between the power switches214and the motor216. In one example, the unlocking code can be written to the tool200only once, and therefore the tool is only able to be unlocked once. However, in other examples, the unlocking code may be provided to the tool200multiple times, such as when the user wishes to unlock the tool200after it has been locked by the user. Accordingly, after the process600is performed, the process500may again be performed.

In other specific embodiments, additionally or alternatively to the process600, the tool200may be unlocked using a physical device, such as a key or other physical mechanism that can be applied by the user or retailer after a bona fide purchase when first powering on the tool200. For example, the physical mechanism may be a key configured to interface with the communication interface204, the I/O interface206, and/or the user interface208, and may contain one or more jumpers that provide an unlocking code to instruct the processing circuit202to unlock the tool. In some embodiments, the physical key is a coded key that can wireless communicate with the tool200to provide an unlock code, as described herein. In other embodiments, the tool200may include a physical interface that would need to be altered to unlock the tool200. Physical interfaces may include breaking off one or more tabs on the tool200body, actuating one or more tool buttons or input devices in a certain sequence, or adding an electrical conductor jumper that would activate an internal unlock code based on the jumpered connections.

In some embodiments, the user interface208is configured to provide an indication (e.g., an audible indication, visual indication, or tactile indication) that the tool200has been unlocked.

In some embodiments, the wake-up sensor205is disabled responsive to the unlocking of the tool200in process block610. Once unlocked, the tool200does not return to the deep sleep state. In some embodiments, the tool200returns to a deep sleep state if the unlocking at blocks604-610is not completed within a particular time period, such as 30 seconds, 1 minute, or 5 minutes. For example, the stimulus may be provided to the wake-up sensor205in error or the purchaser may fail to complete the purchase. In some embodiments, the electronic processor220in the tool200maintains a timer and resets the wake-up sensor205to withdraw the wake signal if the timer elapses. Withdrawing the wake signal may reduce power consumption. In some embodiments, the wake-up sensor205provides a one shot wake signal that wakes up the tool200for a predetermined time period. The electronic processor220may return to the deep sleep state responsive to the predetermined time period elapsing.

In some embodiments, the wake-up sensor205or electronic processor220monitors the charge level of the internal power source226(e.g., via a voltage sensor) and, when the charge level drops below a predetermined threshold (e.g., when the voltage level drops below a predetermined threshold), the wake-up sensor205generates the wake signal and indicates a low battery, and the electronic processor220unlocks the tool. Accordingly, before the internal power source226may be depleted and, thus, unlocking the tool200may involve additional steps (e.g., replacing the internal power source226), the tool200is unlocked.

Turning now toFIG.7, a block diagram of a rechargeable external battery pack700is shown, according to some embodiments. The battery pack700may be similar to and used as the external power source212, described above, and is an example of a power tool device110implemented as a power tool battery pack. As shown inFIG.7, the battery pack700includes a number of battery cells702, a battery management system (BMS)704, a switching device706, a number of output terminals708, a communication interface710, and a wake-up sensor711. In some embodiments, the wake-up sensor711includes an identification tag713.

In one embodiment, the battery cells702are Li-Ion battery cells. However, in other examples, the battery cells may be nickel cadmium (NiCd) battery cells, Nickel-Metal Hydride (NiMH) battery cells, lead acid battery cells, lithium polymer batteries, and/or other battery types, as applicable. Further, the Li-Ion battery cells may be lithium cobalt oxide cells, lithium manganese oxide cells, lithium iron phosphate cells, lithium nickel manganese cobalt oxide cells, lithium nickel cobalt aluminum oxide cells, and/or lithium titanate cells. Further, the Li-Ion battery cells may be small cylindrical cells, large cylindrical cells, pouch cells, and/or prismatic cells. The battery cells702may be arranged in multiple configurations to provide the voltage, current and power levels required of the battery pack700. In one embodiment, the battery cells702include one or more terminals, such as negative terminal712and positive terminal714to provide one or more connections to allow for the stored energy of the battery cells702to be coupled to other devices or systems. In some embodiments, the battery cells702may have more than two terminals to allow for multiple voltage taps (e.g. to provide multiple voltage and/or power levels from the battery cells702), communication with an attached device to be powered, or both.

In one embodiment, one or more of the battery cell terminals712,714are coupled to the output terminals708of the battery pack700. The output terminals708can be used to transfer power from the battery pack700to a device coupled to the battery pack, such as the tools200described above. In other embodiments, the battery pack700includes multiple battery cell terminals for providing multiple connections to the battery cells702and one or more other components of the battery pack700, such as the output terminals708, the battery management system704, and the communication interface710. The battery cells702may include battery cell terminals for multiple voltage connections (e.g. voltage taps) and/or data connections to the battery cells702. In one embodiment, the switching device706can be utilized to allow for one or more of the battery cell terminals712,714to be disconnected from the output terminals708, thereby removing power from the output terminals708. WhileFIG.7illustrates that the switching device706is configured to electrically disconnect the (+) terminal714, in some embodiments, the switching device706is configured to electrically disconnect the (−) terminal712. In further examples, the switching device706may be configured to electrically disconnect any one of the battery cell terminals described above from their respective connections to the battery pack to prevent the operation of the battery pack700. In still other examples, one or more switching devices706may be configured to electrically disconnect some or all of the battery cell terminals from their respective connections to the battery pack700(e.g. output terminals708, the battery management system704, the communication interface710, etc.) to prevent operation of the battery pack700. In one example, the switching device706may be configured to disconnect other connections to the output terminals to prevent operation of the battery pack700. For example, the switching device706may be configured to disconnect data connections between the battery management system704and the battery cells702and/or output terminals, thereby preventing operation of the battery pack700(e.g., preventing power from being output by the battery pack700and/or communication with the battery pack700). The switching device706may be Field Effect Transistor (FET). However, other power switch types are contemplated, such as BJT transistors, CMOS transistors, insulated gate bipolar transistors (IGBT), etc. Further, the switching device706may be a mechanical switch, such as a reed switch, a mechanical relay, etc. The switching device706can allow the battery pack700to be “locked,” meaning that power will not be provided to the output terminals708until the switching device706is controlled to close, thereby providing power from the terminals712,714to the output terminals708.

In one embodiment, the battery management system704may control the switching device706to switch conditions. In further embodiments, the battery management system704receives instructions to control the switching device706from the communication interface710. The communication interface710is configured to facilitate communications between the battery management system704and one or more external devices and/or networks. The communication interface710can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications between the battery pack700and one or more external devices, such as the locking devices and unlocking devices described herein. In some embodiments, the communication interface710is a wireless communication interface such as cellular (3G, 4G, LTE, CDMA, 5G, etc.), Wi-Fi, Wi-MAX, ZigBee, ZigBee Pro, Bluetooth, Bluetooth Low Energy (BLE), RF, LoRa, LoRaWAN, Near Field Communication (NFC), Radio Frequency Identification (RFID), Z-Wave, 6LoWPAN, Thread, WiFi-ah, and/or other wireless communication protocols. Additionally, the communication interface710may include wired interfaces such as Universal Serial Bus (USB), USB-C, Firewire, Lightning, CATS, universal asynchronous receiver/transmitter (UART), serial (RS-232, RS-485), etc.

As stated above, the communication interface710provides a signal to the battery management system704indicating a desired condition of the switching device706. In other embodiments, the communication interface710is in direct communication with the switching device706and can control the condition of the switching device without requiring the battery management system704. In multiple embodiments, the battery pack700described above can be “locked” and “unlocked” using the switching device706, via any of the methods or using any of the systems described herein. For example, wake-up sensor711may be activated to generate a wake signal to wake the battery management system704and the communication interface710, using techniques as described above with respect to the power tool200. Once awakened, the battery pack700may be configured to be locked and unlocked by any of the respective locking and unlocking devices described herein. As a particular example, the battery pack700may take the place of the tool200in the processes500and600ofFIGS.5and6, respectively, carrying out the actions of the tool200and being controlled as the tool200is controlled within these methods.

Turning now toFIG.8, a process diagram is illustrated showing a hashing process800for providing an unlocking code to a tool, according to some embodiments. The process800shows both a battery-powered power tool802and an unlocking device804. The battery-powered power tool802and the unlocking device804may be similar to and used as the power tools (e.g., the power tool200) and unlocking devices (e.g., the unlocking device400) described above. Accordingly, communications between the tool802and the unlocking device804may be effectuated using the systems and methods described above. The tool802may provide a unique ID806to the unlocking device804. The unique ID806may be a unique ID associated with the tool802. The unique ID806is then combined with a secret key808stored in the unlocking device804. The secret key808may be embedded or stored in the unlocking device804. In other embodiments, the unlocking device804may receive the secret key for each transaction from one or more sources, such as the remote server120, the cloud-based server122, or the point of sale116. The unique ID806and the secret key808are combined in the hash function810. The hash function810then outputs a computed hash812based on the unique ID806and the secret key808, and then transmits the computed hash812to the tool802. The tool802then compares the computed hash812to a hashed secret814stored in the tool802. The hashed secret814may be written to the tool802during manufacturing, or, alternatively, during a locking process, such as the locking processes described above (see, e.g., the process500ofFIG.5). The tool802then compares the hashed secret814with the computed hash812at process block816. If the computed hash812matches the hashed secret814, the tool is unlocked at process block818. If the computed hash812does not match the hashed secret814, the tool remains locked at process block820.

In some embodiments, the block diagram of the power tool200inFIG.2applies to the tool802and the block diagram of the unlocking device400ofFIG.4applies to the unlocking device804. For example, the various functions attributed to the unlocking device804(e.g., receiving unique IDs, hashing, sending computing hash) may be implemented with a processing circuit similar to the processing circuit402ofFIG.4. Similarly, the various functions attributed to the tool802(e.g., sending a unique ID, comparing hashes, locking/unlocking tool) may be implemented with a processing circuit similar to the processing circuit202ofFIG.2.

Turning now toFIG.9, a process diagram is illustrated showing a digital signature process900for providing an unlocking code to a tool, according to some embodiments. The process900includes both a battery-powered power tool902and an unlocking device904. The tool902and the unlocking device904may be similar to and used as the power tools (e.g., the power tool200) and unlocking devices (e.g., the unlocking device400) described above. Accordingly, communications between the tool902and the unlocking device904may be effectuated using the systems and methods described above. The tool902may provide a unique ID906to the unlocking device904. The unique ID906may be a unique ID associated with the tool902. The unlocking device904is further configured to generate an unlock command908. In some embodiments, the unlock command908is generated by the unlocking device904upon the unlocking device receiving the unique ID906. The unlocking device904then executes a digital signature function910to generate a signed unlock command912based on the unique ID906and the unlock command908. The signed unlock command912is then transmitted to the tool902. The tool902reads the signed unlock command912, and validates the signed unlock command912using the signature verification function914. The signature verification function914uses a public key916stored in the tool902to verify the signed unlock command912. The public key916may be stored on the tool902during manufacturing. In other embodiments, the public key is provided to the tool902during a locking process, such as those described above (see, e.g., the process500ofFIG.5). If the signature verification function914verifies that the signature is valid at decision block918, the tool is unlocked at process block920. If the signature verification function914determines that the signature is not valid at decision block918, the tool remains locked at process block922.

In some embodiments, the block diagram of the power tool200inFIG.2applies to the tool902and the block diagram of the unlocking device400ofFIG.4applies to the unlocking device904. For example, the various functions attributed to the unlocking device904(e.g., receiving unique IDs, combining unique IDs with commands and signing with private keys, and transmitting signed unlock commands) may be implemented with a processing circuit similar to the processing circuit402ofFIG.4. Similarly, the various functions attributed to the tool902(e.g., sending a unique ID, signature verification, unlocking/locking tool) may be implemented with a processing circuit similar to the processing circuit202ofFIG.2.

Turning now toFIG.10, a process diagram illustrating an external application programming interface (API) authentication process1000for providing an unlocking code to a tool is shown, according to some embodiments. The process1000includes a battery-powered power tool1002, an unlocking device1004and a cloud-based server1006. The tool1002, the unlocking device1004, and the server1006may be similar to and used as the power tools (e.g., the power tool200), unlocking devices (e.g., the unlocking device400), and servers (e.g., the remote server120and the cloud-based server122) described above. Accordingly, communications between the tool1002, the unlocking device1004, and/or the server1006may be effectuated using the systems and methods described above. During the unlock process, the tool1002may provide a unique ID1008to the unlocking device1004. The unique ID1008may be a unique ID associated with the tool1002. The unlocking device1004then transmits the unique ID1008along with one or more stored or embedded credentials1010to an application programming interface (API)1012stored in the server1006. The stored credentials1010may be provided to the unlocking device1004when the unlocking device1004is first initialized.

The API1012, upon receiving the unique ID1008and the stored credential1010, determines whether the stored credentials1010are valid, and whether the tool should be unlocked based on the unique ID (for example, by accessing a database that associates unique IDs and valid stored credentials). When the API1012determines that the tool1002should be unlocked, an unlock command is sent to the unlocking device1004from the API1012. In some embodiments, the unlock command may be an HTTP response command. When the unlock command is determined to have been received at process block1014, a signed unlock command1016is transmitted to the tool1002from the unlocking device1004and the tool is unlocked at process block1018. When the unlock command is not received, or when a non-valid request message is received by the unlocking device1004, an error is displayed on the unlocking device1004at process block1020.

In some embodiments, the block diagram of the power tool200inFIG.2applies to the tool1002and the block diagram of the unlocking device400ofFIG.4applies to the unlocking device1004. For example, the various functions attributed to the unlocking device1004(e.g., receiving a unit ID, sending credentials, determining whether an unlock command is received, transmitting a signed unlock command to the tool) may be implemented with a processing circuit similar to the processing circuit402ofFIG.4. Similarly, the various functions attributed to the tool1002(e.g., sending a unique ID, receiving a signed unlock command and unlocking,) may be implemented with a processing circuit similar to the processing circuit202ofFIG.2.