Embodiments described herein relate to blockchain for authentication of batteries, accessories, or power tools.
One embodiment includes a communication system that may include a battery pack including a third memory configured to store battery pack information. The communication system may further include a power tool including a first electronic processor, a first memory, and a first network interface. The first memory may be configured to store power tool information. The first electronic processor may be configured to obtain the battery pack information from the battery pack, and transmit, via the first network interface, the battery pack information and the power tool information to an external device. The first electronic processor may be further configured to receive, via the first network interface, an authentication notification from the external device, and control an operation of the power tool based on the authentication notification. The communication system may further include the external device including a second electronic processor, a second memory, and a second network interface. The second electronic processor may be configured to receive, via the second network interface, the battery pack information and the power tool information from the power tool. The second electronic processor may be further configured to transmit, via the second network interface, a validation request to a node of a blockchain network. The validation request may include the battery pack information and the power tool information. The second electronic processor may be further configured to receive, via the second network interface, a blockchain authentication message from at least one node of the blockchain network. The blockchain authentication message may indicate whether the blockchain network validated the battery pack information and the power tool information. The second electronic processor may be further configured to transmit, via the second network interface, the authentication notification to the power tool. The authentication notification may be based on the blockchain authentication message.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was unable to validate the battery pack information and the power tool information. In addition to any combination of features described above, the authentication notification may indicate that the battery pack information and the power tool information were not validated by the blockchain network. In addition to any combination of features described above, the first electronic processor of the power tool may be configured to control the operation of the power tool based on the authentication notification by at least one of allowing the power tool to operate in a restricted manner and preventing one or more components of the power tool from operating.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was able to validate the battery pack information and the power tool information. In addition to any combination of features described above, the authentication notification may indicate that the battery pack information and the power tool information were validated by the blockchain network. In addition to any combination of features described above, the first electronic processor of the power tool may be configured to control the operation of the power tool based on the authentication notification by allowing the power tool to operate in an unrestricted manner.
In addition to any combination of features described above, the battery pack information and the power tool information may be attempted to be validated by the blockchain network using a consensus mechanism of a plurality of nodes of the blockchain network.
In addition to any combination of features described above, attempting to validate the battery pack information and the power tool information may includes (i) executing, by at least one node of the blockchain network, a smart contract to compare a digital identification of the battery pack stored on a blockchain of the blockchain network to a digital identification of the power tool stored on the blockchain, and/or (ii) preventing the at least one node of the blockchain network from validating the battery pack information and the power tool information in response to determining that the digital identification of the battery pack and the digital identification of the power tool were not previously paired with each other.
In addition to any combination of features described above, the consensus mechanism may be at least one selected from a group consisting of Proof of Work, Proof of Stake, Proof of Capacity, Proof of Activity, Proof of Burn, or Proof of Time.
In addition to any combination of features described above, the external device may be configured to act as a node of the blockchain network.
In addition to any combination of features described above, the external device may be configured to act as a light node of the blockchain network with respect to the validation request that is transmitted by the external device. In addition to any combination of features described above, the external device may be configured to act as a full node of the blockchain network with respect to a second validation request transmitted by a different device than the external device.
In addition to any combination of features described above, the first electronic processor may be configured to control the operation of the power tool by controlling a current that is supplied to a motor of the power tool.
In addition to any combination of features described above, the power tool may include one of a robotic power tool and a hand-held power tool.
In addition to any combination of features described above, the battery pack information may include at least one of battery pack usage information, a battery pack identifier, and battery pack ownership information. In addition to any combination of features described above, the power tool information may include at least one of power tool usage information, a power tool identifier, power tool ownership information, and combinations thereof.
Another embodiment includes a method of controlling operation of a power tool. The method may include determining, by a first electronic processor of the power tool, that a battery pack has been coupled to the power tool. The method may include preventing, by the first electronic processor, one or more components of the power tool from operating. The method may include obtaining, by the first electronic processor, battery pack information stored in a memory of the battery pack from the battery pack. The method may include transmitting, via a first network interface of the power tool, the battery pack information and power tool information to an external device. The power tool information may be retrieved by the first electronic processor from a memory of the power tool. The method may include receiving, via a second network interface of the external device, the battery pack information and the power tool information from the power tool. The method may include transmitting, via the second network interface, a validation request to a node of a blockchain network. The validation request may include the battery pack information and the power tool information. The method may include receiving, via the second network interface, a blockchain authentication message from at least one node of the blockchain network. The blockchain authentication message may indicate whether the blockchain network validated the battery pack information and the power tool information. The method may include transmitting, via the second network interface, an authentication notification to the power tool based on the blockchain authentication message. The method may include receiving, via the first network interface, the authentication notification from the external device. The method may include controlling, with the first electronic processor, an operation of the power tool based on the authentication notification.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was unable to validate the battery pack information and the power tool information. In addition to any combination of features described above, the authentication notification may indicate that the battery pack information and the power tool information were not validated by the blockchain network. In addition to any combination of features described above, controlling the operation of the power tool based on the authentication notification may include at least one of allowing the power tool to operate in a restricted manner and continuing to prevent the one or more components of the power tool from operating.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was able to validate the battery pack information and the power tool information. In addition to any combination of features described above, the authentication notification may indicate that the battery pack information and the power tool information were validated by the blockchain network. In addition to any combination of features described above, controlling the operation of the power tool based on the authentication notification may include allowing the power tool to operate in an unrestricted manner by allowing the one or more components of the power tool to operate.
In addition to any combination of features described above, the battery pack information and the power tool information may be attempted to be validated by the blockchain network using a consensus mechanism of a plurality of nodes of the blockchain network.
In addition to any combination of features described above, controlling the operation of the power tool includes controlling a current that may be supplied to a motor of the power tool.
Another embodiment includes a communication system that may include a battery pack including a second electronic processor, a second memory configured to store battery pack information, and a second network interface. The communication system may also include a power tool including a first electronic processor, a first memory configured to store power tool information, and a first network interface. The first electronic processor may be configured to obtain the battery pack information from the battery pack, and transmit, via the first network interface, a validation request to a node of a blockchain network. The validation request may include the battery pack information and the power tool information. The first electronic processor may be configured to receive, via the first network interface, a blockchain authentication message from at least one node of the blockchain network. The blockchain authentication message may indicate whether the blockchain network validated the battery pack information and the power tool information. The first electronic processor may be configured to control an operation of the power tool based on the blockchain authentication message.
In addition to any combination of features described above, the second electronic processor of the battery pack may be configured to obtain the power tool information from the power tool, and transmit, via the second network interface, a second validation request to the node of the blockchain network, wherein the second validation request includes the battery pack information and the power tool information. In addition to any combination of features described above, the second electronic processor of the battery pack may be configured to receive, via the second network interface, a second blockchain authentication message from at least one node of the blockchain network. The second blockchain authentication message may indicate whether the blockchain network validated the battery pack information and the power tool information. In addition to any combination of features described above, the second electronic processor of the battery pack may be configured to control whether the battery pack provides current to the power tool over at least some terminals of the battery pack based on the blockchain authentication message.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was unable to validate the battery pack information and the power tool information. In addition to any combination of features described above, the first electronic processor of the power tool may be configured to control the operation of the power tool based on the blockchain authentication message by at least one of allowing the power tool to operate in a restricted manner and preventing one or more components of the power tool from operating.
In addition to any combination of features described above, the blockchain authentication message may indicate that the blockchain network was able to validate the battery pack information and the power tool information. In addition to any combination of features described above, the first electronic processor of the power tool may be configured to control the operation of the power tool based on the blockchain authentication message by allowing the power tool to operate in an unrestricted manner.
Other aspects, features, and embodiments will become apparent by consideration of the detailed description and accompanying drawings.
Before any embodiments of the invention are explained in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of components set forth in the following description or illustrated in the following drawings. The invention is capable of other embodiments and of being practiced or of being carried out in various ways. Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use of “including,” “comprising” or “having” and variations thereof herein is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. The terms “mounted,” “connected” and “coupled” are used broadly and encompass both direct and indirect mounting, connecting, and coupling. Further, “connected” and “coupled” are not restricted to physical or mechanical connections or couplings, and can include electrical connections or couplings, whether direct or indirect.
It should be noted that a plurality of hardware and software based devices, as well as a plurality of different structural components may be utilized to implement the invention. Furthermore, and as described in subsequent paragraphs, the specific configurations illustrated in the drawings are intended to exemplify embodiments of the invention and that other alternative configurations are possible. The terms “processor,” “central processing unit,” and “CPU” are interchangeable unless otherwise stated. Where the terms “processor” or “central processing unit” or “CPU” are used as identifying a unit performing specific functions, it should be understood that, unless otherwise stated, those functions can be carried out by a single processor, or multiple processors arranged in any form, including parallel processors, serial processors, tandem processors or cloud processing/cloud computing configurations.
Throughout this application, the term “approximately” may be used to describe the dimensions of various components. In some situations, the term “approximately” means that the described dimension is within 1% of the stated value, within 5% of the stated value, within 10% of the stated value, or the like. When the term “and/or” is used in this application, it is intended to include any combination of the listed components. For example, if a component includes A and/or B, the component may include solely A, solely B, or A and B.
In some embodiments, a lawn may include any type of property that includes grass, a crop, some other material to be trimmed, cleared, gathered, etc., and/or that includes some material to receive treatment from the robotic garden tool 105 (e.g., fertilizer to treat grass in the lawn). In some embodiments, a lawn may include paved portions of a property (e.g., a driveway), for example, when the robotic garden tool 105 is used for snow plowing/removal.
In some embodiments, the docking station 110 may be installed in a worksite using stakes 120. The power tool 105 may be configured to mow a yard and dock at the docking station 110 in order to charge a battery pack 245 of the power tool 105 (see
In some embodiments, the power tool 105 is not a robotic tool and may be hand-held power tool 105 or other type of power tool 105. The power tool 105 may also be referred to as a power tool device 105. The power tool device 105 may be configured to perform one or more specific tasks (e.g., drilling, cutting, fastening, pressing, lubricant application, sanding, heating, grinding, bending, forming, impacting, polishing, lighting, etc.). For example, an impact wrench is associated with the task of generating a rotational output (e.g., to drive a bit), while a reciprocating saw is associated with the task of generating a reciprocating output motion (e.g., for pushing and pulling a saw blade). The task(s) associated with a particular tool may also be referred to as the primary function(s) of the tool.
Although the power tool device 105 illustrated in
As indicated in
Also as indicated in
In some embodiments, the blockchain network 150 includes a plurality of nodes 400 that are communicatively coupled to at least one other node 400. Nodes 400 and the blockchain network 150 (e.g., potential architectures of the blockchain network 150) are explained in further detail below with respect to
While
In some embodiments, the power tool 105 includes a wheel motor 235 (see
In some embodiments, the power tool 105 includes a cutting blade assembly 135 coupled to the inner housing 125B and configured to rotate with respect to the housing 125 to cut grass on the operating surface. The cutting blade assembly 135 may include a rotating disc to which a plurality of cutting blades 140 configured to cut the grass are attached. In some embodiments, the power tool 105 includes a cutting blade assembly motor 240 (see
In some embodiments, the power tool 105 and/or the docking station 110 include additional components and functionality than is shown and described herein.
The first memory 210 may include read only memory (ROM), random access memory (RAM), other non-transitory computer-readable media, or a combination thereof. The first electronic processor 205 is configured to receive instructions and data from the first memory 210 and execute, among other things, the instructions. In particular, the first electronic processor 205 executes instructions stored in the first memory 210 to perform the methods described herein.
The first network interface 215 is configured to send data to and receive data from other devices in the communication system 100 (e.g., the docking station 110, the external device 115, one or more nodes 400 of the blockchain network 150, etc.). In some embodiments, the first network interface 215 includes one or more transceivers for wirelessly communicating with the external device 115 and/or the docking station 110 (e.g., a first radio frequency (RF) transceiver configured to communicate via Bluetooth™, WiFi™, or the like). The first network interface 215 may include an additional transceiver for wirelessly communicating with the blockchain network 150 (and/or the external device 115 and/or the docking station 110) via, for example, cellular communication. In some embodiments, at least some of the transceivers and/or receivers of the power tool 105 may be combined or share some elements (e.g., an antenna and/or other hardware). Alternatively or additionally, the first network interface 215 may include a connector or port for receiving a wired connection to the external device 115, such as USB cable. In some embodiments, the power tool 105 may additionally or alternatively communicate with the docking station 110 when the power tool 105 is docked/coupled to the docking station 110 (e.g., via first terminals of the power tool 105 that are connected to second terminals of the docking station 110).
The first input device 220 is configured to allow the first electronic processor 205 to receive a user input from a user to, for example, set/adjust an operational parameter of the power tool 105. The first display 225 is configured to display a user interface to the user. Similar to the user interface of the external device 115 described previously herein, the user interface displayed on the first display 225 may allow the user to access and interact with power tool information. In some embodiments, the first display 225 may also act as the first input device 220. For example, a touch sensitive input interface may be incorporated into the first display 225 to allow the user to interact with content provided on the first display 225. The first display 225 may be a liquid crystal display (LCD) screen, an organic light emitting display (OLED) display screen, or an E-ink display. In some embodiments, the first display 225 includes future-developed display technologies.
In some embodiments, the first electronic processor 205 is in communication with a plurality of sensors 230 that may include electromagnetic field sensors, radio frequency sensors (e.g., radio frequency identification (RFID) interrogators/sensors), Hall sensors, current sensors, other magnetic sensors, and/or the like. In some embodiments, data from one or more Hall sensors may be used by the first electronic processor 205 to determine how fast the a motor of the power tool 105 is rotating.
In some embodiments, the battery pack 245 provides power to the first electronic processor 205 and to other components of the power tool 105 such as the motors 235A, 235B, 240 and the first display 225. In some embodiments, power may be supplied to other components besides the first electronic processor 205 through the first electronic processor 205 or directly to the other components. In some embodiments, when power is provided directly from the battery pack 245 to the other components, the first electronic processor 205 may control whether power is provided to one or more of the other components using, for example, a respective switch (e.g., a field-effect transistor) or a respective switching network including multiple switches. For example, the first electronic processor 205 may control whether current from the battery pack 245 is provided to a motor of the power tool 105. In some embodiments, the power tool 105 includes active and/or passive conditioning circuitry (e.g., voltage step-down controllers, voltage converters, rectifiers, filters, etc.) to regulate or control the power received by the components of the power tool 105 (e.g., the first electronic processor 205, the motors, 235A, 235B, 240, etc.) from the battery pack 245. In some embodiments, the battery pack 245 is a removable battery pack. In some embodiments, the battery pack 245 is configured to receive charging current from the docking station 110 when the power tool 105 is docked at the docking station 110 and electrically connected thereto.
In some embodiments, the battery pack 245 may bidirectionally communicate with the power tool 105 to which the battery pack 245 is attached. For example, in response to the battery pack 245 being connected with the power tool 105, the battery pack 245 may transmit battery pack information to the power tool 105 (e.g., via third terminals of the power tool 105 that are connected to fourth terminals of the battery pack 245). The power tool 105 may then communicate at least a portion of the battery pack information to the external device 115 and/or the blockchain network 150. The battery pack information may include, among other things, battery pack usage information, a battery pack identifier, battery pack ownership information, and/or the like. The battery pack information may include any information that specifically or generally identifies the battery pack 245 (e.g., a location at which the battery pack 245 was sold or last used, etc.).
In some embodiments, the battery pack 245 may communicate with the external device 115, the blockchain network 150, and/or the docking station 110 using its own separate network interface 260 to, for example, transmit battery pack information and/or receive blockchain authentication information. In some embodiments, in response to the battery pack 245 being connected with the power tool 105, the power tool 105 may transmit power tool information to the battery pack 245 (e.g., via third terminals of the power tool 105 that are connected to fourth terminals of the battery pack 245). The battery pack 245 may then communicate at least a portion of the power tool information to the external device 115 and/or the blockchain network 150. The power tool information may include, among other things, power tool usage information, a power tool identifier, power tool ownership information, and/or the like. The power tool information may include any information that specifically or generally identifies the power tool 105 (e.g., a location at which the power tool 105 was sold or last used, etc.).
In some embodiments, the battery pack 245 includes fewer or additional components in configurations different from that illustrated in
In some embodiments, the first electronic processor 205 is configured to control one or more operations of the power tool 105. For example, the first electronic processor 205 controls one or more switches (e.g., field-effect transistors (FETs)) to provide power to one of the motors 235, 240 based on signals received from one or more Hall sensors. In some embodiments, the first electronic processor 205 controls whether one or more certain components of the power tool 105 (e.g., the motors 235, 240; the first network interface 215, etc.) are allowed to be operated in an unrestricted manner, are allowed to be operated in a restricted manner, or are prevented from operating at all. For example, the power tool 105 may be configured to operate or may be prevented from operating in response to a user input that attempts to operate the power tool 105. Operating in an unrestricted manner may include allowing the power tool 105 to operate in accordance with a full range of operational limits. Comparatively, operating in a restricted manner may include only allowing a limited current to the power tool 105 (or to a specific component of the power tool 105 such as the motor 235, 240) from the battery pack 245, only allowing a limited torque output of the motor 235, 240 of the power tool 105, or the like. Preventing operation of one or more components of the power tool 105 may include preventing the motor 235, 240 from operating altogether. In some embodiments, some features/components of the power tool 105 may be enabled/operational while other features/components of the power tool 105 are disabled/not operational.
In some embodiments, the third electronic processor 250 of the battery pack 245 may similarly control operations of the power tool 105 by allowing current to flow to the power tool 105 in an unrestricted manner, by allowing current to flow to the power tool 105 in a restricted manner, or by preventing current from flowing to certain terminals of the power tool 105 altogether. For example, the third electronic processor 250 may limit the current drawn from the battery pack 245 to a particular current level or may limit the power output by the battery pack 245 to a particular power level. For instance, the third electronic processor 250 may limit current (or prevent current from flowing altogether) from certain terminals of the battery pack 245 that supply power to a motor 235, 240 of the power tool 105 but may not limit a current from other terminals of the battery pack 245 that supply power to the first electronic processor 205 and/or the first network interface 215. Accordingly, in some situations, the battery pack 245 may supply power to the power tool 105 to allow for limited functionality (e.g., functionality by the first electronic processor 205 to communicate with the battery pack 245 and/or the external device 115) while other functionality is disabled (e.g., motor operation).
As indicated previously herein, in some embodiments, the blockchain network 150 includes a plurality of nodes 400. In some embodiments, any kind of electronic device configured to communicate to other electronic devices may act as a node 400.
As described below, the node 400 is a communication endpoint and may possess different functionality on the blockchain 150 based upon an assigned role. For instance, a node 400 may be a light node or a full node. A light node, sometimes referred to as a lite node, may be configured to store and provide data necessary to accommodate rapid transactions or frequently repeated activities on the blockchain 150. For example, a node 400 configured as a light node may be configured to send or receive validation requests within the blockchain 150 but may not be configured to validate or authenticate the requests. In contrast, a full node may be configured to maintain a full record (i.e., ledger) of the blockchain 150 and, unlike the light node, have full validation voting rights on the blockchain 150. Full nodes may be configured to have sub-types, such as authority nodes, mining/validation nodes, master nodes, or the like.
One example embodiment of a full node is an authority node. An authority node may be configured to a manage the access levels for other types of full nodes. For instance, an authority node may be configured to set the specific access levels for light nodes on the network. For example, an authority node may permit one or more light nodes to send and receive validation requests, but only for specific power tools 105. For instance, a light node may be paired with a particular type of power tool 105, such as a robotic lawnmower, and will not function with power tools 105 of any other type. In other instances, a light node may function with a family of power tools 105, such as robotic lawnmowers, robotic snowblowers, or the like. In other embodiments, an authority node may configure access for a light node limited to a certain time of day, or a duration of time, or a preset number of requests/receipts for validation, or the like. In another instance, an authority node is configured to allow or prevent new nodes 400 on the blockchain network 150. For instance, an authority node may be configured to allow a specific number of new nodes 400 on the network, or a particular ratio of node types to other node types, such as one full node to three light nodes, or the like. In some examples, an authority node generates a block on the blockchain associated with the new node, and a consensus of other authority nodes, or all nodes, must be reached before the new node is functional.
In some embodiments, a block is a data structure within the blockchain network 150 that includes address information (e.g., an address of a transmitting device/node that generated the block, an address of one of more destination devices/nodes or an indication that the block is generally addressed to all nodes 400 within the blockchain network 150) and data chunks with a requested function to be performed by the nodes 400 using data included in the data chunks. For example, the data chunks may include information to be validated by the blockchain network 150 such as the battery pack information and the power tool information described previously herein and described in further detail below.
Another example embodiment of a full node is a mining node, also referred to as a validation node. In some instances, a mining node is responsible for executing/solving mathematical functions to validate transactions/information within the blockchain network 150. For instance, a light node may request validation of a new block on the blockchain 150, and a mining node is programmed to perform the calculations to solve the function, or problem, of the block. In some examples, many mining nodes perform the calculation to solve the same problem and communicate their computed answer to other nodes 400 within the blockchain 150. In such examples, once the calculation is complete, the mining node submits a new block to the blockchain 150, such that other nodes 400 may verify the solved problem.
Another example embodiment of a full node is a master node. Similar to a mining node, a master node may be configured to perform validations on the blockchain 150. In some instances, a master node does not submit a new block for verification by other nodes 400, but rather only performs the validation of blocks submitted by other nodes 400. For example, a mining node may complete a problem (e.g., execute a pre-programmed function using data chunks included a block generated by another node 400) and submit a new block to the blockchain 150, where a master node validates the solution to the problem. In this instance, the master node would not add another block to the blockchain 150 but would instead only verify that the mining node completed the computation successfully.
In some embodiments, when a block is initially generated (e.g., by a full node or light node) but has not yet been solved (e.g., by a full node), the block may be referred to as an incomplete block. When a block has been solved or a new block is generated with a solution for incomplete block, the block may be referred to as a complete block. However, a complete block may be an unvalidated block (rather than a validated block) because it may be required that many complete blocks are accurately generated by many different nodes 400 in order to validate the data/information included in the complete blocks. For example, the blockchain network 150 may use a consensus mechanism to form an agreement of the validity of the block from among a predetermined threshold of the nodes 400 of the blockchain network 150. For example, the predetermined threshold may be a percentage (e.g., 51%, 60%, etc.) of the nodes of the blockchain network 150 that accurately solved the problem of the block by performing a pre-programmed function based on the data/information included in the block.
Once enough nodes 400 have validated a block on the blockchain 150 (e.g., a number of nodes 400 greater than or equal to the predetermined threshold), the nodes 400 form a consensus in agreement of the validity of the block. The consensus mechanism may vary between blockchains, and may include proof of work (PoW), proof of stake (PoS), proof of capacity (PoC), proof of activity (PoA), proof of burn (PoB), proof of time (PoT), or the like. A blockchain utilizing a proof of work consensus mechanism may be Bitcoin™, Litecoin™, Ethereum™, or the like. When the block is validated, the block may be referred to as a validated block. The validated block may be permanently added to a ledger of the blockchain network 150.
Power tools and their attachments (e.g., battery packs, docking stations, etc.) are often valuable and often portable. Accordingly, these items are often stolen. Many power tools and their attachments do not include any type of authentication or may include only local authentication (e.g., between the power tool and the attachment) in order to allow for their operation. Accordingly, a thief that steal both a power tool and its attachment from an owner may be able to successfully operate the power tool. Thus, there is a technological problem with current power tool/battery pack authentication methods because such methods may allow these products to operate at undesirable times, for example, after the products have been stolen.
The systems, methods, and devices described herein address the above-noted technological problem by using blockchain technology to authenticate power tools and/or their attachments before the power tool is able to operate. Blockchain authentication may be more secure than mere local authentication in many situations and is more difficult for a thief to hack to put the power tool in an operable state.
At block 505, the first electronic processor 205 of the power tool 105 may determine that a battery pack 245 has been coupled to the power tool 105. For example, the first electronic processor 205 may include a sense terminal that connects an otherwise open circuit when the battery pack 245 is coupled to the power tool 105. In alternate embodiments, the third electronic processor 250 of the battery pack 245 may determine that the battery pack 245 has been coupled to the power tool 105.
At block 510, the first electronic processor 205 may prevent one or more components of the power tool from operating (e.g., the motors 235, 240) as described previously herein. In alternate embodiments, the third electronic processor 250 may prevent current from being provided to the power tool 105 over at least some terminals of the battery pack 245 (e.g., main power terminals that may provide power to the motors 235, 240). In some embodiments, at block 510, the first electronic processor 205 and/or the third electronic processor 250 may prevent the power tool 105 from being operated (or may only allow the power tool 105 to be operated in a restricted manner such as limited current supplied to a motor of the power tool 105, etc.) until a validation is received from a blockchain network 150. To attempt to obtain blockchain validation to allow the power tool 105 to operate in an unrestricted manner, the devices 105, 115, and/or 245 may perform the blocks of method 500 explained below.
At block 515, the first electronic processor 205 obtains battery pack information stored in the third memory 255 of the battery pack 245 from the battery pack 245. Alternatively, the third electronic processor 250 obtains power tool information stored in the first memory 210 of the power tool 105 from the power tool 105.
At block 520, the first electronic processor 205 transmits, via the first network interface 215 of the power tool 105, the battery pack information and the power tool information (retrieved from its own first memory 210) to the external device 115. Alternatively, the third electronic processor 250 transmits, via the third network interface 260 of the battery pack 245, the battery pack information and the power tool information to the external device 115.
At block 525, the second electronic processor 305 of the external device 115 receives, via the second network interface 315 of the external device 115, the battery pack information and the power tool information from the power tool 105 or from the battery pack 245.
At block 530, the second electronic processor 305 of the external device 115 transmits, via the second network interface 315, a validation request to a node 400 of the blockchain network 150. In some embodiments, the validation request includes the battery pack information and the power tool information.
As mentioned previously herein, in some instances, the external device 115 is not a node 400 of the blockchain network 150 and may simply provide a communication link to transfer information between (i) the power tool 105 and/or the battery 245 and (ii) one or more nodes 400 of the blockchain network 150.
In some instances, the external device 115 may be configured to act as a full node or a light node. In some instances, the external device 115 may be configured as a full node but not permitted to perform validation of blocks including information about power tools 105 or battery packs 245 paired with the external device 115. For example, an authority node may determine that external device 115 acts as a light node when requesting validation of battery pack information associated with a power tool 105 or a battery pack 245 in communication with external device 115. Continuing this example, the authority node may determine that the external device 115 acts as a full node when validating blocks associated with power tools or battery packs that are not paired with external device 115. In other words, in some instances, the external device 115 may not validate a block that was generated by the external device 115 itself, but may participate in validation of other blocks generated by other nodes 400 on the blockchain 150.
In some embodiments, the external device 115 is configured to act as a light node that makes an authentication request on the blockchain 150. For example, in response to the external device 115 receiving the battery pack information and the power tool information from the power tool 105 or the battery pack 245, the external device 115 creates a block on the blockchain 150 using the battery pack information and the power tool information as the data chunk included in the in the block. As mentioned previously herein and as described in greater detail below, the blockchain 150 (i.e., each node 400 of a subset or all of the nodes 400 included in the blockchain network 150) then attempts to complete validation of the battery pack information and the power tool information.
In some embodiments, the blockchain 150 (i.e., each node 400 of a subset or all of the nodes 400 included in the blockchain network 150) uses a smart contract to validate the battery pack information and the power tool information. A smart contract may be a programmed computer code that includes instructions or predetermined steps for performing a function and is stored on the blockchain 150 (i.e., on each node of the subset or all of the nodes 400 included in the blockchain network 150). In some examples, the smart contract includes a predetermined ownership pair between a power tool 105 and a battery pack 245. For example, a smart contract may contain instructions limiting a particular power tool, such as power tool 105, to a particular battery, such as battery pack 245. In some embodiments, the power tool 105 may be paired with multiple battery packs 245 according to the smart contract. For example, a power tool 105 may be paired with a battery pack 245 through a digital identification (ID) recorded on the blockchain. This digital ID is a unique cryptographic identity, or address, tied to only one thing, such as power tool 105. A particular power tool 105 may have a unique digital ID, and a battery pack 245 may have a different unique digital ID. In this instance, each of multiple battery packs 245 will have their own unique digital ID. A smart contract may be programmed with a record of unique digital IDs, such that a power tool digital ID and a battery pack digital ID are paired. In other embodiments, multiple power tools 105 may be paired with one battery pack 245 and/or multiple battery packs 245 may be paired with one power tool 105. In some embodiments, docking station 110 may be paired with multiple power tools 105. In some instances, a single power tool 105 is paired with multiple docking stations 110.
In some examples, the digital ID takes the form of a non-fungible token (NFT). A NFT is a type of unique digital asset, and may be associated with a particular physical asset. For instance, a NFT may represent a specific power tool 105, battery pack 245, docking station 110, or the like. A particular NFT tied to a particular battery pack 245 is unique to that battery pack 245. This uniqueness of the NFT is cryptographically locked upon creation of the NFT, and may not be modified after the NFT is generated. For instance, when a NFT is generated for a particular battery pack 245, the NFT may not represent any other battery pack 245. In some instances, an individual user may own a NFT tied to a particular battery pack 245, and another NFT tied to a particular power tool 105. In this instance, the two NFT's may be paired, such the particular battery pack 245 functions with the particular power tool 105, but not with any other power tool 105. NFT's may also be traded, bought, sold, or otherwise exchanged such that ownership of an NFT may change, but the association of the NFT to the physical asset does not.
In some examples, a smart contract may contain the information pairing a particular power tool 105 with a particular battery pack 245. In some instances, the smart contract is performed by multiple nodes 400 on the blockchain 150. For instance, after a blockchain block corresponding with the battery pack information and the power tool information is generated (e.g., by the external device 115 acting as a node 400 or by a dedicated node 400 that received the validation request from the external device 115), multiple nodes 400 run the smart contract to attempt to validate the authenticity of the battery pack information and the power tool information. In some examples, this attempt to validate authenticity includes comparing the battery pack information and the power tool information to predetermined pairings, such as the pairing of a robotic mower 105 with a specific battery pack 245 or a specific docking station 110.
In some instances, the attempt to validate the authenticity of the battery pack information and the power tool information includes executing, by at least one node 400 of the blockchain network 150, a smart contract to compare a digital identification of the battery pack 245 stored on a blockchain of the blockchain network 150 to a digital identification of the power tool 105 stored on the blockchain. In this instance, the fourth electronic processor 405 of at least one node 400 of the blockchain network 150 may prevent the at least one node 400 from validating the battery pack information and the power tool information in response to determining that the digital identification of the battery pack 245 and the digital identification of the power tool 105 were not previously paired with each other.
Only blocks configured to perform blockchain validations may participate in the validation process. For example, a full node configured as a mining node may validate the new block, but a node 400 configured as a light node may not validate the new block. In some instances, only particular nodes 400 are part of the validation process.
Once the nodes 400 of the blockchain 150 have completed an attempt to validate the battery pack information and the power tool information and formed a consensus (e.g., using a consensus mechanism as explained previously herein), a blockchain authentication message is transmitted to the external device 115 by at least one node 400 of the blockchain network 150.
In instances where the blockchain consensus concluded that greater than or equal to a predetermined threshold (e.g., threshold percentage) of nodes 400 in the blockchain 150 were able to validate the battery pack information and the power tool information, the blockchain authentication message may indicate that the blockchain network 150 was able to validate the battery pack information and the power tool information. On the other hand, in instances where the blockchain consensus concluded that less than the predetermined threshold of nodes 400 in the blockchain 150 were able to validate the battery pack information and the power tool information or that the a predetermined time period has elapsed without the enough nodes 400 validating the information to meet the predetermined threshold, the blockchain authentication message may indicate that the blockchain network 150 was unable to validate the battery pack information and the power tool information.
At block 535, the second electronic processor 305 of the external device 115 receives, via the second network interface 315, the blockchain authentication message from at least one node 400 of the blockchain network 150. As explained above, the blockchain authentication message indicates whether the blockchain network 150 validated the battery pack information and the power tool information.
At block 540, the second electronic processor 305 transmits, via the second network interface 315, an authentication notification to the power tool 105 and/or the battery pack 245 based on the blockchain authentication message. For example, the authentication notification may include the indication of whether the blockchain network 150 validated the battery pack information and the power tool information. For example, the authentication notification may include such an indication by including a command to the power tool 105 and/or the battery pack 245 (i) to allow unrestricted operation (e.g., when the information was validated by the blockchain network 150) or (ii) to allow only restricted operation or not to allow operation at all (e.g., when the information was validated by the blockchain network 150).
At block 545, the first electronic processor 205 of the power tool 105 receives, via the first network interface 215, the authentication notification from the external device 115. Alternatively, the third electronic processor 250 of the battery pack 245 receives, via the third network interface 260, the authentication notification from the external device 115.
At block 550, the first electronic processor 205 controls an operation of the power tool 105 based on the authentication notification. For example, when the authentication notification indicates that the battery pack information and the power tool information were not validated by the blockchain network 150, the first electronic processor 205 may control the operation of the power tool 105 by at least one of allowing the power tool 105 to operate only in a restricted manner and continuing to prevent the one or more components of the power tool 105 (e.g., the motor 235, 240) from operating, for example, in response to user input requesting the power tool 105 operate. In some embodiments, the first electronic processor 205 may prevent operation of the power tool altogether. For example, when a user actuates a trigger of a power tool 105 to start a motor, the first electronic processor 205 may nevertheless prevent the motor from operating. On the other hand, when the authentication notification indicates that the battery pack information and the power tool information were validated by the blockchain network 150, the first electronic processor 205 controls the operation of the power tool 105 by allowing the power tool 105 to operate in an unrestricted manner by allowing the one or more components of the power tool 105 (e.g., a motor) to operate, for example, in response to user input requesting the power tool 105 operate (e.g., in response to trigger actuation).
In some embodiments, at block 550, the third electronic processor 250 of the battery pack 245 controls whether the battery pack 245 provides current to the power tool 105 over at least some terminals of the battery pack (e.g., main power terminals that may provide power to the motors 235, 240) based on the authentication notification. For example, when the authentication notification indicates that the battery pack information and the power tool information were not validated by the blockchain network 150, the third electronic processor 250 may prevent current from flowing to the main terminals of the battery pack 245 to the power tool 105 or may limit a current supplied over the main terminals. Accordingly, the power tool 105 may not be able to operate or may be able to operate only in a restricted manner. On the other hand, when the authentication notification indicates that the battery pack information and the power tool information were validated by the blockchain network 150, the first electronic processor 205 controls current to flow in a normal manner over the main terminals of the battery pack 245 to allow the power tool 105 to operate in an unrestricted manner within its normal limits.
Accordingly, as noted above with respect to block 510, through execution of the method 500, in some embodiments, the first electronic processor 205 and/or the third electronic processor 250 may prevent the power tool 105 from being operated (or may only allow the power tool 105 to be operated in a restricted manner such as limited current being supplied to a motor of the power tool 105, etc.) until a validation is received from the blockchain network 150. In some embodiments, the power tool 105 and/or the battery pack 245 may be in a default state in which they are not configured to operate (e.g., at block 510), and the power tool 105 and/or the battery pack 245 may remain in this state until a message is received that indicates that a successful blockchain validation has occurred. Accordingly, in some embodiments, a message may only be provided to the power tool 105 and/or the battery pack 245 when a block chain validation is successful. In other embodiments, a message may be provided to the power tool 105 and/or the battery pack 245 when an attempted blockchain validation was not successful (and when the attempted blockchain validation was successful). A message indicating a lack of successful blockchain validation may cause the power tool 105 and/or the battery pack 245 to prevent operation of the power tool 105 and/or the battery pack 245 (e.g., enter block 510 of the method 500).
As indicated in
As indicated in the above explanations of some blocks of the method 500, either the power tool 105, the battery pack 245, or both may communicate with the external device 115 and may prevent the power tool 105 from being operated (or may only allow the power tool 105 to be operated in a restricted manner such as limited current supplied to a motor of the power tool 105, etc.) until a validation is received from the blockchain network 150. Additionally, while the above example of the method 500 refers to the power tool 105 and the battery pack 245, the method 500 may be performed by any compatible power tool devices 105. For example, the method 500 may be performed by a battery pack 245 and a charger configured to charge the battery pack 245, by a robotic power tool 105 and a docking station 110 configured to charge the robotic power tool 105, and/or the like. In some embodiments, the method 500 may involve the external device 115 transmitting external device information (e.g., an external device identifier, external device ownership information, etc.) in addition to or as an alternative to one of the power tool information and the battery pack information to be validated by the blockchain network 150. For example, operation of the power tool 105 may be conditioned on power tool information and external device information of the external device 115 communicatively coupled to the power tool 105 being validated by the blockchain network 150.
In some embodiments, the external device 115 may not be included during execution of the method 500. For example, the power tool 105 and/or the battery pack 245 may be configured to perform the blocks of the method 500 explained above as well as the blocks of the method 500 executed by the external device 115. For example, the power tool 105 and/or the battery pack 245 may be configured to bidirectionally communicate directly with the blockchain network 150 without having the external device 115 relay communications. In some instances, the battery pack 245 and/or the power tool 105 may be configured as a node 400 of the blockchain network 150 in a similar manner as was described previously herein with respect to the external device 115.
Accordingly, various implementations of the systems and methods described herein provide, among other things, techniques for the use of blockchain for authentication of battery packs, accessories, and power tools. Other features and advantages of the invention are set forth in the following claims.
In the foregoing specification, specific examples have been described. However, one of ordinary skill in the art appreciates that various modifications and changes may be made without departing from the scope of the invention as set forth in the claims below. Accordingly, the specification and figures are to be regarded in an illustrative rather than a restrictive sense, and all such modifications are intended to be included within the scope of present teachings.
The benefits, advantages, solutions to problems, and any element(s) that may cause any benefit, advantage, or solution to occur or become more pronounced are not to be construed as a critical, required, or essential features or elements of any or all the claims. The invention is defined solely by the appended claims including any amendments made during the pendency of this application and all equivalents of those claims as issued.
Moreover, in this document relational terms such as first and second, top and bottom, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. The terms “comprises,” “comprising,” “has,” “having,” “includes,” “including,” “contains,” “containing,” or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises, has, includes, contains a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
An element proceeded by “comprises . . . a,” “has . . . a,” “includes . . . a,” or “contains . . . a” does not, without more constraints, preclude the existence of additional identical elements in the process, method, article, or apparatus that comprises, has, includes, contains the element. The terms “a” and “an” are defined as one or more unless explicitly stated otherwise herein. The terms “substantially,” “essentially,” “approximately,” “about,” or any other version thereof, are defined as being close to as understood by one of ordinary skill in the art, and in one non-limiting example the term is defined to be within 10%, in another example within 5%, in another example within 1% and in another example within The term “coupled” as used herein is defined as connected, although not necessarily directly and not necessarily mechanically. A device or structure that is “configured” in a certain way is configured in at least that way but may also be configured in ways that are not listed.
This application claims priority to U.S. Provisional Application No. 63/392,638, filed on Jul. 27, 2022 (Attorney Docket No.: 206737-9058-US01), the entire contents of which are hereby incorporated by reference.
Number | Date | Country | |
---|---|---|---|
63392638 | Jul 2022 | US |