Patentable/Patents/US-12682315-B2
US-12682315-B2

System and method for dynamic asset tracking and monitoring

PublishedJuly 14, 2026
Assigneenot available in USPTO data we have
Technical Abstract

The invention is comprised of a self-constructed group of identical hubs, which extends the usable battery life of all hubs in the group by forming a self-healing network that eliminates unnecessary network traffic and assures communication integrity. The group communicates with a larger system which includes a server and various administrative devices that are used to monitor the location and status of the hubs and the palletized goods. Each hub is a stand-alone device that has a processor, memory, GPS transponder, various transceiver circuits, condition indicators, and a battery. Each hub is attached to a single pallet. The hubs are each capable of communication with the server through a variety of transceivers. However, only the hub that is determined by the group to be the best, communicates with the server at any one time.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

a server; a plurality of hubs, each hub of the plurality of hubs having a processor, a memory, and a battery having a battery life, the plurality of hubs having a collective battery life; each processor operatively connected to a set of sensors; each processor operatively connected to a set of transceivers adapted to connect to the server; and assembling an internal dynamic memory structure formatted as a packed bit-field status structure from a first set of electronic status data from at least one of a group of a first set of sensors of the set of sensors and a first set of transceivers of the set of transceivers; receiving an external dynamic memory structure via short-range hub-to-hub transceiver communication, the external dynamic memory structure containing a second set of electronic status data from at least one of a group of a second set of sensors of the set of sensors and a second set of transceivers of the set of transceivers from another hub of the plurality of hubs; making a predicate word comparison by comparing the internal dynamic memory structure to the external dynamic memory structure to derive a predicate word comprising a multi-bit suitability indicator reflecting relative reporting suitability of the plurality of hubs based on the first set of electronic status data and the second set of electronic status data; and executing a function set of computer instructions corresponding to the predicate word, including selecting whether each respective hub performs an upstream server-reporting function based on the predicate word such that only a hub selected by the predicate word comparison transmits to the server during a reporting interval, and extending the collective battery life of the plurality of hubs by limiting upstream server transmissions to the hub selected. each memory containing a set of instructions that when executed by each processor cause each hub, of the plurality of hubs, to carry out the steps of: . A self-configuring asset tracking and monitoring system comprising:

2

claim 1 activate the warning indicator when the predicate word indicates an error condition comprising a verification failure or an authentication failure of the external dynamic memory structure, including detection of an invalid predetermined constant value or an invalid digital signature. . The self-configuring asset tracking and monitoring system of, wherein each processor is further connected to a warning indicator and the function set of computer instructions further comprises instructions to:

3

claim 1 report the internal dynamic memory structure to the server only when each respective hub is selected by the predicate word as having reporting suitability. . The self-configuring asset tracking and monitoring system of, wherein the function set of computer instructions further comprises instructions to:

4

claim 3 a Wi-Fi transceiver, a cellular transceiver, and a Bluetooth transceiver; and reporting the internal dynamic memory structure to the server using the Wi-Fi transceiver when the Wi-Fi transceiver has a first signal; and reporting to the server using the cellular transceiver when the Wi-Fi transceiver does not have the first signal and the cellular transceiver has a second signal, the reporting occurring only when each respective hub is selected for upstream reporting based on the predicate word; wherein the step of reporting further comprises: receiving the external dynamic memory structure via short-range hub-to-hub communication using the Bluetooth transceiver. wherein the step of receiving further comprises: . The self-configuring asset tracking and monitoring system of, wherein the set of transceivers further comprises:

5

claim 3 . The self-configuring asset tracking and monitoring system of, wherein each of the first set of electronic status data and the second set of electronic status data further comprises at least one of a group of humidity, pressure, temperature, battery status, GPS fix, Wi-Fi fix, cellular fix, fixed location status and motion status.

6

claim 3 . The self-configuring asset tracking and monitoring system of, wherein packed bit-field status structure is formed by a combination of a C-language union construct and a C-language struct construct to pack a set of status fields into a fixed-layout memory block.

7

claim 3 a predetermined constant value used for verification purposes and a digital signature based on the predetermined constant value used for verification purposes. . The self-configuring asset tracking and monitoring system of, wherein the internal dynamic memory structure further comprises:

8

claim 7 . The self-configuring asset tracking and monitoring system of, wherein the predetermined constant value used for verification purposes and the digital signature are encapsulated by a C-language union instruction.

9

claim 1 . The self-configuring asset tracking and monitoring system of, wherein the predicate word further comprises a 5-bit word.

10

claim 1 deriving a first comparison between an internal battery status and an external battery status. . The self-configuring asset tracking and monitoring system of, wherein the step of comparing further comprises:

11

claim 10 limit the upstream server transmissions, if the first comparison indicates that the internal battery status is greater than the external battery status. . The self-configuring asset tracking and monitoring system of, wherein the function set of computer instructions further comprises instructions to:

12

claim 10 deriving a second comparison between an internal cellular fix and an external cellular fix. . The self-configuring asset tracking and monitoring system of, wherein the step of comparing further comprises:

13

claim 10 deriving a second comparison between an internal GPS fix and an external GPS fix; and deriving a third comparison between an internal Wi-Fi fix and an external Wi-Fi fix. . The self-configuring asset tracking and monitoring system of, wherein the step of comparing further comprises:

14

claim 13 the first comparison indicates that the internal battery status is greater than the external battery status; the second comparison indicates that the internal GPS fix is greater than the external GPS fix; and the third comparison indicates that the internal Wi-Fi fix is greater than the external Wi-Fi fix. limit the upstream server transmissions if: . The self-configuring asset tracking and monitoring system of, wherein the function set of computer instructions further comprises instructions to:

15

claim 13 deriving a fourth comparison between an internal fixed location indicator and an external fixed location indicator; and deriving a fifth comparison between an internal moving indicator and an external moving indicator. . The self-configuring asset tracking and monitoring system of, wherein the step of comparing further comprises:

16

claim 15 the fourth comparison is greater than the fifth comparison; or the fifth comparison is greater than the fourth comparison. select each respective hub to limit the upstream server transmissions if: . The self-configuring asset tracking and monitoring system of, wherein the function set of computer instructions further comprises instructions to:

17

claim 1 authenticating the external dynamic memory structure; and validating the external dynamic memory structure. . The self-configuring asset tracking and monitoring system of, wherein the set of instructions further comprises instructions that when executed by each processor cause each hub, of the plurality of hubs, to carry out the steps of:

18

claim 17 comparing a digitally signed message to a message table. . The self-configuring asset tracking and monitoring system of, wherein the step of validating further comprises:

19

claim 17 generating a group key from a cryptographic group key that identifies the plurality of hubs and a cryptographic private key held by a receiving hub; and comparing the group key to a group key table of authorized group keys for authentication. . The self-configuring asset tracking and monitoring system of, wherein the step of authenticating further comprises:

20

claim 1 comparing a radio signal strength of the external dynamic memory structure to a minimum radio signal strength; and erasing the external dynamic memory structure if the radio signal strength of the external dynamic memory structure is not above the minimum radio signal strength. . The self-configuring asset tracking and monitoring system of, wherein the set of instructions further comprises instructions that when executed by each processor cause each hub, of the plurality of hubs, to carry out the steps of:

21

claim 1 counting a number of matched external dynamic memory structures received; and erasing the external dynamic memory structure if the number of matched external dynamic memory structures received is not above a minimum count threshold. . The self-configuring asset tracking and monitoring system of, wherein the set of instructions further comprises instructions that when executed cause each hub, of the plurality of hubs, to carry out the steps of:

22

providing each hub, of the set of hubs, with a processor operatively connected to a memory; providing each hub, of the set of hubs, with a set of transceivers operatively connected to each processor; providing each hub, of the set of hubs, with a set of sensors operatively connected to each processor; providing each hub, of the set of hubs, with a battery having a battery life, the set of hubs having a collective battery life; assembling, at a first hub, a first dynamic memory structure formatted as a first packed bit-field status structure from a first set of status data from a first set of sensors and a first set of transceivers, of the first hub; transmitting the first dynamic memory structure via short-range hub-to-hub transceiver communication to a second hub of the set of hubs; receiving, at the first hub, a second dynamic memory structure, formatted as a second packed bit-field status structure, the second dynamic memory structure containing a second set of status data from a second set of sensors and a second set of transceivers, of the second hub; determining a reporting condition by deriving a predicate bit-word comprising a multi-bit suitability indicator reflecting relative reporting suitability of the first hub, the predicate bit-word derived by making a predicate bit-word comparison by comparing the first dynamic memory structure to the second dynamic memory structure; and reporting to the server with a transceiver of the first set of transceivers only when the first hub is selected by the predicate bit-word comparison to perform an upstream server-reporting function and extending the collective battery life of the set of hubs by limiting upstream server transmissions by each hub of the set of hubs. . A method of configuring a set of hubs to communicate with a server comprising:

23

claim 22 evaluating a first battery strength of the first hub to a second battery strength of the second hub. . The method of, wherein the step of determining further comprises:

24

claim 22 evaluating a first transceiver signal strength of the first hub to a second transceiver signal strength of the second hub. . The method of, wherein the step of determining further comprises:

25

claim 22 evaluating a first GPS signal strength of the first hub to a second GPS signal strength of the second hub. . The method of, wherein the step of determining further comprises:

26

claim 22 determining the reporting condition based on an accelerometer status. . The method of, wherein the step of determining further comprises:

27

claim 22 determining the reporting condition based on a fixed location indicator. . The method of, wherein the step of determining further comprises:

28

claim 22 determining the reporting condition based on a predicate word assembled from the first set of status data. . The method of, wherein the step of comparing further comprises:

29

claim 22 digitally signing a message word. . The method of, wherein the step of assembling further comprises:

30

claim 22 authenticating a digital signature carried within the second dynamic memory structure before accepting the second dynamic memory structure as valid. . The method of, wherein the step of comparing further comprises:

31

claim 22 authenticating and validating the second dynamic memory structure. . The method of, wherein the step of comparing further comprises:

32

claim 22 transmitting with a Bluetooth transceiver of the set of transceivers. . The method of, wherein the step of transmitting further comprises:

33

claim 32 reporting with one of a group of a Wi-Fi transceiver, a cellular transceiver, and both of the Wi-Fi transceiver and the cellular transceiver of the set of transceivers. . The method of, wherein the step of reporting further comprises:

Detailed Description

Complete technical specification and implementation details from the patent document.

This application claims priority benefit from U.S. Provisional Application No. 63/267,705, filed on Feb. 8, 2022. The patent application identified above is incorporated here by reference in its entirety to provide continuity of disclosure.

The field of the present invention is systems for tracking and monitoring palletized goods during transportation and storage.

Pallets are the most popular method of shipping assets in the logistics industry worldwide. It is estimated that there are over 2 billion pallets in circulation in the United States, about 1.2 billion in China, and over 280 million in Europe. Each of the pallets, and the assets they support must be tracked and accounted for.

Pallets are typically constructed of wood or plastic. Wood pallets are generally damaged more easily than plastic pallets and so have a shorter useful lifetime. Plastic pallets are more resistant to damage but are typically more expensive than wooden pallets. Nevertheless, the cost of pallets is ever increasing. Therefore, pallet systems which rely on tracking and reuse of pallets are the most economically viable.

For many years, radio-frequency identification (“RFID”) technology has been used to track pallets and the assets they contain. RFID is a passive technology that relies on a separate interrogation system to identify the location of the tags and the assets. More recently, global positioning satellite (GPS) technology has been employed to track palletized assets. GPS is an active technology which employs a transceiver attached to a shipping container and used to identify its location. Further, near-field communications and Bluetooth technology have been used to track palletized assets. Near field and Bluetooth communications are also active technologies that require power to transmit messages related to the position of the assets.

Each tracking technology has drawbacks. Active communication technologies which are incorporated into pallets all suffer from excessive power consumption and relatively short useful lifetimes. Replacing batteries, inductive charging, and pallet replacement are all expensive and time-consuming options which detract from the economic feasibility of actively tracked pallet systems. Likewise, passive technologies suffer the drawback of requiring active integration systems which makes them expensive to deploy and maintain.

The prior art has attempted to address these problems but has fallen short.

For example, U.S. Pat. No. 8,854,205 to Daniel, provides a system for countering terrorism by using a communication system network for tracking and monitoring containers as they travel over international seas. Daniel discloses monitoring devices which periodically activate themselves to record sensory information until a seaport is reached, whereupon the information is downloaded. A specially located monitoring device which has direct access to a satellite network is employed by other monitoring devices to transmit sensory information. However, Daniel provides no ability to reconfigure how the devices communicate depending on internal device health parameters. Therefore, the system exhibits the drawback of premature failure due to power consumption.

Another example is U.S. Publication No. 2007/0174148 to Schuler, et al. Schuler discloses a group of pallet devices, each associated with a pallet. The pallet devices are disclosed to communicate with RFID tags on assets and sensors to determine volume, weight and temperature. Each pallet device interacts with a database server through an interrogation system. Schuler discloses that one pallet device can communicate with another pallet device to determine whether or not a resource is missing. However, Schuler fails to consider power management or device health and so suffers the drawback of premature failure due to power consumption.

Another example is U.S. Publication No. 2016/0379165 to Moakley. Moakley discloses a system for tracking lost assets. Each asset is associated with an IOT device. Each IOT device communicates with an IOT gateway. The IOT gateway communicates with a centralized information system. The IOT gateways are typically mounted in transport vehicles such as trucks. The sensors periodically report to or “ping” the gateways. However, neither the IOT devices nor the gateways track or report internal health conditions of the IOT devices or the gateways. Therefore, Moakley fails to create a self-healing network. Further, the system fails to satisfactorily manage power consumption in the system as a whole, and therefore suffers the drawback of early failure.

Likewise, U.S. Publication No. 2020/01650322 to De Bokx, et al. discloses a system to be used with a group of pallets. Each pallet includes one of two types of tags, namely a “normal” tag and a “super” tag. The super tag forms a battery powered gateway through which the other tags communicate. The group of pallets must be carefully arranged before transport so that the super tag is on the outside. It must be on the outside so that it can communicate with a wireless network. Otherwise, the system fails. De Bokx further discloses that repeated periodic communication is required between the tags and the gateways thereby requiring excessive power use. The system fails to consider the internal health status of any tag during usage. Therefore, De Bokx suffers the drawback of potential loss of tracking information due to premature tag failure.

The invention is comprised of a self-constructed group of identical hubs, which extends the usable battery life of all hubs in the group by forming a self-healing network that eliminates unnecessary network traffic and assures communication integrity. The group communicates with a larger system which includes a server and various administrative devices that are used to monitor the location and status of the hubs and the palletized goods. Each hub is a stand-alone device that has a processor, memory, GPS transponder, various transceiver circuits, condition indicators, and a battery. Each hub is attached to a single pallet. The hubs are each capable of communication with the server through a variety of transceivers. However, only the hub that is determined by the group to be the best, communicates with the server at any one time.

Each hub is preferably physically encapsulated in a single plastic transport pallet. During shipment or storage, the pallets may be arranged in any order or physical location relative to the other pallets in the group. The hubs are connected to each other and the network preferably using short range radio signals, such as Wi-Fi, cellular, Bluetooth, or ultra-wideband (“UWB”).

Each hub is further comprised of a plurality of sensors capable of detecting environmental conditions, such as movement, impact, the presence of light, temperature, and humidity. The hubs also include LEDs, to indicate hub status to the user.

Each hub is assigned a “rules table” by the server upon deployment. The rules table is a set of functions including instructions, variables, operators, and/or conditions which is stored in memory. Each rule in the table is used to trigger functions of the hub based on a comparison of an internal device “dynamic” of the hub to an external “dynamic” received from another hub.

A “dynamic” is a data structure stored in local memory that records certain types of data in a predefined and specific way designed to facilitate fast retrieval and use by the processor. The data includes the current physical state of the hub, parameters from the sensors and past reporting times, as will be further described. The data structure is addressable as a single memory block which must be addressed as a unit to save memory space and promote efficient computing.

During operation, each hub periodically receives dynamics from other hubs which transmit them. A comparison of the dynamic of the receiving hub to the other dynamics from the transmitting hubs allows each hub to carry out certain functions that create a “self-healing” network. The self-healing network is important because each hub considers both its own health and the health of all other hubs in the group before establishing a network connection with the server. As a result of self-selection, only the strongest hub connects to the server at any one time. As the strongest hub loses power, other hubs can (and do) replace it as the communication hub, thereby preserving battery life of the entire group of hubs, dynamically. In this way, the battery life of the group is greatly extended. In many cases, the hubs outlive the useful life of the physical pallets. This is a surprising result that drastically increases the economic value of the tracking system as a whole.

Each hub is also assigned a security profile to assure the integrity of the messaging that establishes the self-healing network. A security profile includes a cryptographic group key and private key. The group key identifies each hub in a group. Group keys and private keys are used to encode and decode messages sent by and received from each hub and the server. In a preferred embodiment, the group key is assigned to each hub in the group by the server. Both the group key and the private key are derived from a computationally efficient random number generator. The encoding and decoding functions are preferably conducted using a one-way hash function such as SHA-1, SHA-2 or MD5.

In one preferred embodiment, the rules table causes each hub to enter a “wait” state for an extended period of time if no messages are received and/or no signal is detected by the sensors. In the wait state, each hub stops all non-essential functions in order to conserve battery life. However, when the hub detects a stimulus, such as movement, it reactivates all non-essential functions and automatically executes corresponding instructions from the rules table. For example, the hub may attempt to connect with the server, write a set of conditions to memory, or activate an outward facing status indicator such as an LED.

In another preferred embodiment of the system, a group of hubs are present in the same location, in close proximity. As each hub automatically exits a wait state, it attempts to connect with a local area network, such as a Wi-Fi access points in a warehouse, or another hub in the hub group, as will be further described. If a Wi-Fi access point is unavailable, optionally the hub may automatically engage a cellular transceiver in an attempt to communicate with the server.

In all cases, when the system is in use, at least one hub periodically attempts to report to the server. The report includes many pieces of information about the health, position and status of the collective network of hubs. For instance, a report can indicate that an asset of the group has exceeded a critical temperature, pressure tolerance, light tolerance, humidity tolerance, impact tolerance or movement tolerance. Likewise, the location of the entire group may be reported using GPS coordinates.

In another preferred embodiment, the rules table may instruct the hub to change its network connection from Wi-Fi communications to cellular communications upon the loss of a Wi-Fi signal. In this way, when a group of pallets is shipped from one location to another, it can be tracked in transit using only one GPS transponder.

In yet another embodiment, each self-healing network of hubs automatically selects a number of hubs in the group, according to a predetermined match condition, to further assure communication integrity.

1 FIG.A Referring then to, a preferred architecture of the system will be described. Unless otherwise specified, all tolerances and the use of the word “about” indicates ±20%.

100 106 108 110 112 114 116 101 104 101 104 102 Systemcomprises a plurality of hub groups such as hub groups,,,,, and. Each group is comprised of a number of identical hubs. At least one hub in each hub group is periodically in communication with network. Preferably the network is a wide area network such as the Internet, but of course can be other types of networks may be used. System servercommunicates with each hub group, and each hub, through networkto send rules tables and receive periodic reports of hub group status. System serveris also operatively connected to databaseand stores the rules tables and reports in the database.

124 104 101 104 122 120 118 124 104 101 124 104 Administrator deviceis connected to system serverthrough network. In a preferred embodiment, the administrator device monitors the status of the hubs by receiving webpages generated by system server. Likewise, each of client devices,andis in communication with administrator deviceand system serverthrough network. Each client device may receive reports and webpages from either administrator deviceor system serverupon a properly authenticated request.

Preferably, the administrator device is a smart device, such as a computer, tablet or cell phone including a web application. Similarly, each client device is a smart device such as a computer, tablet or cell phone and includes a web application. The server is preferably a pooled centralized server resource that is accessed through the internet. The database is preferably MongoDB database platform available from MongoDB Inc. of New York, NY.

1 FIG.B Referring then to, a stylized flowchart of operation of the system in use will be further described.

In general, the system is used to monitor palletized assets, such as consumer goods, while in transit to and from various warehouses or storage locations.

126 132 130 138 For example, goods can be moved to and from warehouseto warehouseby trucksand, respectively.

130 106 138 112 While in transit, truckincludes hub group. Likewise, truckcontains hub group. No set number of hub groups is required. No set number of hubs is required for a group. The hubs designate hub groups based on a predetermined number of dynamic “matches” and a predetermined RSSI signal strength of transmitting hubs. In this way, the number of hubs in a group is self-regulating, based on general parameters, as will be further described.

108 109 111 109 111 110 113 115 113 113 115 115 116 109 119 109 109 119 119 114 121 123 121 121 123 123 While in storage, pallets are also stored in hub groups. For example, hub groupincludes palletand pallet. Each pallet incorporates a hub such as hubsA andA. Likewise, hub groupincludes palletand pallet. Palletincludes hubA. Palletincludes palletA. In the same way, hub groupincludes palletand pallet. Palletincludes hubA. Palletincludes palletA. Hub groupincludes palletand pallet. Palletincludes hubA. Palletincludes hubA.

126 128 140 132 134 136 134 140 132 126 128 136 126 132 Each warehouse may include local Wi-Fi access points. For example, warehouseincludes Wi-Fi access pointsand. Warehouseincludes Wi-Fi access pointsand. In a preferred embodiment the Wi-Fi access points are located at ingress and egress points for each warehouse. For example, Wi-Fi access pointsandare located at the ingress points of warehousesand, respectively. Wi-Fi access pointsandare located at egress point of warehousesand, respectively. Each Wi-Fi access point is preferably model no. AMS-2111 Industrial 801.11b/g/n wireless LAN access point, available from Antaira Technologies, LLC of Brea, California, and properly configured to communicate with each of the hubs and the Internet.

104 104 When the hubs are located in the warehouses, in one preferred embodiment they communicate with system serverthrough one of the Wi-Fi access points. However, while in transit, one or more of the hubs communicate with system serverthrough a cellular or satellite based communications system.

2 FIG.A 200 250 254 250 254 250 222 224 222 224 250 225 225 Referring then to, a preferred external package of an example hub will be further described. External packageincludes topsealed to bottom. Both topand bottomare preferably formed from a durable plastic, such as HDPE, Teflon, or Delrin. Topincludes activation buttonand externally visible LEDs. Activation buttonis used to activate the hub, as will be further described. LEDsare used to indicate internal system status, as will be further described. Topfurther includes hole pattern. Hole patternis used to communicate external environmental conditions to various sensors, as will be further described.

2 2 FIGS.B andC Referring then to, a preferred hub will be further described.

250 262 252 262 254 250 252 262 Topincludes internal rectangular void. PC boardis positioned in voidand preferably encapsulated during manufacture by an epoxy resin. Bottomis attached to topby a permanent industrial adhesive which hermetically seals PC boardin void.

252 202 202 PC boardfurther comprises processor. In a preferred embodiment, processoris part number NRF 52840 available from Nordic Semiconductor ASA of Trondheim, Norway.

202 204 202 203 Processoris operatively connected to memory. In one embodiment, processorincludes both internal memory, and removable memory such as SIM cardwhich is installed before the unit is assembled.

202 206 208 210 202 206 208 210 206 202 Processoris also operatively connected to Bluetooth transceiver, Wi-Fi transceiver, and GSM/GPS modulethrough UART connections. Processoruses Bluetooth transceiver, Wi-Fi transceiverand GSM/GPS modulereceive and communicate various status signals to the system server and the hubs, as will be further described. Bluetooth transceiveris preferably provided in part no. NRF52840 along with processor.

In a preferred embodiment, GSM/GPS module is part number BG95-M3 available from Quectel Wireless Solutions Co., Ltd. of Shanghai, China. The GSM/GPS module provides a maximum data rate of approximately 588 KBPS down link and 1,119 KPS uplink using ultralow power consumption available from the ARM Cortex-M4 processor.

208 208 Wi-Fi transceiveris preferably part number ESP 8266 available from Espressif Systems of Shanghai, China. Wi-Fi transceiverprovides a highly integrated Wi-Fi MCU suitable for low power applications including an integrated TCP/IP protocol stack accessible by the processor.

206 208 210 260 254 Each of Bluetooth transceiver, Wi-Fi transceiverand GSM/GPS moduleare operatively connected to antenna stackwhich, preferably, is rigidly fixed to bottom.

252 212 214 216 202 225 PC boardfurther includes light sensor, pressure sensor, and temperature sensor. Each of these sensors is operatively connected to processorthrough a I2C connection and has access to external environmental conditions through hole pattern.

216 216 Temperature sensoris preferably part number ENS 210 available from ScioSense B.V. of Eindhoven, the Netherlands. Temperature sensorprovides a digital output of relative humidity and temperature.

212 212 Light sensoris preferably part number VEML6040 available from Vishay Intertechnology, Inc. of Malvern, Pennsylvania. Light sensorpreferably is an RGBW color sensor measuring the intensity of red, green, and blue ambient light condition and provides a broad spectrum photo diode for sensing low level white light.

214 Pressure sensoris part number LPS22HB available from STMicroelectronics. The pressure sensor is a piezoresistive pressure sensor, which functions as a digital output barometer, which has an absolute pressure range between 260 hPa and 1260 hPa and is capable of low power operation.

202 218 220 Processoris further connected to motion and orientation accelerometerand impact accelerometerthrough an SPI connection. The accelerometers are used to determine movement and position of the hub, as will be further described.

218 218 220 Motion and orientation accelerometeris preferably part number LIS3DH available from STMicroelectronics N.V. of Geneva, Switzerland. Motion and orientation accelerometeris a 3-axis MEMS accelerometer which preferably is set at ±2 G sensitivity and capable of measuring accelerations with output data rates from 1 Hz to 5.3 kHz including interrupt signals which are used to indicate initial start-up and free fall events. Impact accelerometeris also provided by part number LIS3DH available from STMicroelectronics.

264 264 Power is provided to the various components of the PC board by battery. In one embodiment, batteryis a rectangular lithium ion polymer battery pack rated at 4.2 V and 2200 mAh, part number 18650, available from Shenzhen Gmcell Technology Co., Ltd. of Shenzhen, China and is encapsulated in epoxy along with the PC board during manufacture.

252 205 202 205 PC boardfurther includes cellular modemoperatively connected to processorthrough a UART connection. In a preferred embodiment, cellular modemis part number NL-SWN-LTE-NRF9160-B available from Airgain, Inc. of San Diego, California.

202 222 221 224 Processoris also operatively connected to activation button, piezo electric speakerand LEDsthrough separately addressable GPIO pins.

3 FIG. 300 222 Referring then to, preferred methodof run state operation of each hub will be further described. Preferably, the instructions for the run state are stored in local memory of the processor and are available to the processor at boot up. Boot up is activated by depressing activation button.

302 At step, the method begins.

304 202 At step, processorreceives at least one rules table and, optionally, a secure group key, a brief magic number, a magic value table, private key, group key list and random number from the server and stores them in local memory, as will be further described. The rules table, secure group key, brief magic number, magic value table, private key, group key list and random number may also be transmitted to local memory through a debug UART or may be included on the SIM card.

305 At step, the processor assembles an internal dynamic, as will be further described.

306 At step, the processor broadcasts the internal dynamic preferably using the Bluetooth transceiver. The processor may also broadcast the internal dynamic using the Wi-Fi transceiver.

308 220 218 At step, the processor waits state until either a “timeout” condition or a “trigger” condition is received. In the wait state all processor functions but for the interrupt channel and the clock are placed in a dormant condition to conserve power. In a preferred embodiment, the timeout condition returns true after 24 hours. Other time periods may be specified. In a preferred embodiment, a trigger condition is an interrupt from impact accelerometeror motion orientation accelerometer, as will be further described.

310 316 312 At step, the processor polls the Bluetooth transceiver to determine whether or not a dynamic has been received from another hub. If so, the method moves to step. If not, the method moves to step.

312 306 At step, the hub reports to the server, as will be further described. The method then returns to step.

316 306 At step, the processor executes a dynamic recognition routine, as will be further described. The server then returns to step.

The run state continues until an interrupt is received from the server or from the push button, as previously described.

4 FIG.A 305 Referring then to, a preferred method of assembling and transmitting a dynamic, as described in step, will be further described.

402 At step, the method begins.

404 At step, the processor retrieves a set of internal dynamic parameters. In one embodiment, the processor retrieves the internal dynamic parameters from the battery pack, the GPS transceiver, the Wi-Fi transceiver, the cellular transceiver and each of the sensors. The data is stored in an encapsulated message format (known as the “dynamic” or “dynamic memory structure”) that is comprised of 32 bytes of payload. Preferably, the payload includes 2 bytes for a dynamic ID, and 1 byte for a value indicating the elapsed time since the last report to the server. The payload also includes 1 byte which indicates the RSSI signal strength of the hub. The payload further comprises 2 bits to indicate battery status. Preferably “00” is designated as critically low, “01” is designated as low, “10” is designated as satisfactory, and “11” is designated as high power. The payload further comprises a single bit indicating whether or not the hub has a GPS fix, reporting 1 for true, and 0 for false. Likewise, the payload comprises a Wi-Fi signal present indicator of 1 bit, reporting 1 for true, and 0 for false. The payload further comprises 1 bit to indicate whether or not the location of the hub is fixed, reporting 1 for true, and 0 for false. The payload further comprises 1 bit to indicate whether or not the hub is moving, 1 for true and 0 for false. 6 bytes of the payload are reserved for a device ID of the hub and are transmitted as a MAC address. Each payload also includes a 5 byte sequence number of the hub. The payload further comprises a group signature of 8 bytes, which is a hash based method authentication code (HMAC) group key, and 8 bytes for a device signature, which is an HMAC private key, as will be further described. 1 byte is reserved for a “brief magic” parameter, which is used to reduce search space and provide decoding efficiency, as will be further described. Other internal dynamic parameters may also be included such as longitude and latitude coordinates from the GPS transceiver. Of course, other sizes of payload may be used, as well as other encapsulating memory structure arrangements.

406 At step, the method retrieves its brief magic number from memory.

408 At step, the processor mathematically “signs” the brief magic number, creating an electronic signature for it.

e×d= N In one preferred embodiment, the digital signature is based on RSA. An RSA key pair is generated containing a module, N, that is the product of two random distinct large primes, along with integers, e and d, such that:1(mod φ())

φ is Euler's totient function; N and e are the public key of the transmitting hub; and d is the secret key of the transmitting hub. where:

m N d To sign a message, m, the transmitting hub computes a signature, a, such that:σ=(mod)

d mis a modular exponentiation operation; and m is the message, preferably the message is the brief magic number. where:

410 At step, the processor assembles the dynamic for transmission by importing the required variables and data from memory into the dynamic memory structure.

416 At step, the processor returns.

4 FIG.B Referring then to, a preferred example of code for encapsulating a dynamic memory structure will be further described.

The code “encapsulates” the data by a unique combination of “C” statements that include both the “union” instruction and the “struct” instruction. The combination is important because it allows the dynamic to be compactly stored and retrieved as a single unit that is made up of individually addressable smaller units. Of course, other parameters and variables, such as longitude and latitude coordinates may be included.

Line 5 invokes the “union” instruction to encapsulate the dynamic parameter in memory. Union is a user defined data type which allows a combination of objects of different types and sizes and allocates memory space equal to the space to hold the largest data elements included. The union instruction requires that the data structure be accessed as a whole.

As can be seen in line 6, encapsulation method also uses the “struct” user defined data type that also combines logically related data items of different types. All structure elements are stored in contiguous memory location for speed and ease of access. The “struct” instruction allows individual access to the data elements.

Lines 10 through 12 are variable designations for the sequence number of the device, humidity and temperature.

218 At lines 13 through 17, data from the motion and orientation accelerometeris packed into a single variable “orientation.”

At line 18, the extreme high (or low) temperature, which has been experienced by the temperature sensor is recorded.

At line 19, the “match” parameter is assigned a variable name of “sample count.”

At line 20, an unsigned integer memory space is assigned for the brief magic parameter.

At lines 21 through 27, the packed variable “variant7” can be seen to include the magic value, the signature of the device, the current battery level, and the current report of temperature from the temperature sensor.

At line 28, the dynamics packet format can be seen. Lines 30 and 31 include the sequence number of the device, and a unique number assigned to the dynamic.

At lines 32 through 38, a single data structure named “context” is encapsulated, which include variables, integer variables for the battery status, the GPS fix, the Wi-Fi fix, the fixed location, and the moving variables as previously described.

At lines 39 through 42, a packed data structure is assembled which includes the device signature and the group signature. These are the private and public keys, as previously described.

At line 43, at the last report time is assigned a variable name of last report time. At line 44, a variable is assigned for brief magic. The data structure is encapsulated at lines 28 through 45 and assigned a variable name “variant8.”

4 FIG.C 316 Referring then to, preferred method of dynamic recognition, as described in step, will be further described.

452 At step, the method begins.

454 At step, the processor receives a dynamic packet from one or more of the transceivers, preferably the Bluetooth transceiver.

455 At step, the processor decodes the dynamic packet cryptographically, as will be further described.

456 458 468 At step, the processor determines whether or not the packet type is authentic. In one preferred embodiment, the packet type is judged authentic if it has the appropriate ID and is the proper length, 32 bytes. Other preferred methods of authentication will be further described. If so, the processor moves to step. If not, the processor moves to step.

458 460 468 At step, the processor determines whether or not the packet is valid. In a preferred embodiment, the packet is judged valid if it has the appropriate signature and the appropriate sequence number. Other preferred methods of validation will be further described. If so, the method moves to step. If not, the method moves to step.

460 462 At step, the method isolates the packet ID. At step, the processor applies an ID mask. In a preferred embodiment, the ID mask is applied to the dynamic to remove parameters from consideration that are not necessary for the dynamic recognition process, such as sensor parameters. Use of the ID mask is important because it speeds processing and reduces memory usage.

464 465 468 At step, the processor determines whether or not the number of unique dynamics received or “matches,” exceeds a predetermined threshold. In preferred embodiment the minimum number of matches required is 10. But other numbers may be used and groups of over 1,000 matches are typical. The match parameter is important because it is used to determine whether or not the hub is among a sufficiently large group of hubs so that a self-healing network may be efficiently implemented. Groups of sufficient size are typically found in a group of pallets located in a warehouse or a group of pallets located on a truck. If so, the processor moves to step. If not, the external dynamic may be erased, and the method moves to step.

465 466 468 At step, the processor retrieves the received signal strength (“RSSI”) parameter related to the received dynamic. If the RSSI parameter is above a preset threshold, then the method moves to step. If not, the external dynamic maybe erased, and the method moves to step. In a preferred embodiment, the preset threshold is between about −70 dB and about −40 dB, indicating a signal strength of between about 60% and about 80%. In this way, the hub automatically sets the number of hubs that qualify for group status. In short, only a certain finite number of hubs can generate a sufficient RSSI signal to be included.

466 At step, the processor compares its internal dynamic parameters to the parameters in a received dynamic, in order to carry out certain functions according to a rules table, as will be further described.

468 At step, the method returns.

5 FIG.A 458 Referring then to, a preferred method of determining whether or not a packet is valid, as described in step, will be further described.

502 At step, the method begins.

504 At step, the processor retrieves the digital signature from the union statement associated with the magic number value in the dynamic memory structure.

506 e =m N At step, the processor determines whether or not the digital signature is valid. In a preferred embodiment, to verify the signature, the receiving hub verifies that the following equation is valid.σ(mod)

σ is the digital signature; e is a public key integer; m is the message, preferably the brief magic number; and N is a public key integer. where:

508 510 If the digital signature is valid, the method moves to step. If the digital signature is not valid the method moves to step.

508 At step, the processor retrieves the magic value from the received dynamic.

509 510 514 At step, the processor compares the magic value from the received dynamic to the magic value table stored memory. If the magic value from the received dynamic is not in the table, then the method moves to step. If the magic value from the received dynamic is in the magic value table, then the method moves to step.

510 516 At step, the processor sets a packet variable to “packet invalid” and moves to step.

514 516 At step, the processor sets the packet variable to “packet valid” and moves to step.

516 At step, the processor returns the packet variable.

5 5 FIGS.B andC 466 1 5 Referring to, a method of execution of an example rules table, as described in step, will be further described. In general, the processor assembles a 5 bit predicate word from 5 different comparisons of predicate data P-P. The predicate data is retrieved from the internal dynamic of the receiving hub and the internal dynamic of the transmitting hub. The predicate word is then compared to a table which specifies an individual set of instructions for the processor depending on the value of the predicate word. Of course other lengths of the predicate word and other parameters for the predicate data may be used.

550 At step, the method begins.

552 1 554 1 1 1 At step, the processor retrieves internal Pdata. At step, the processor retrieves external Pdata. In this example, internal Pdata is the battery status of the receiving hub and the external Pdata is the battery status of the transmitting hub.

556 1 1 560 558 At step, the processor determines whether or not a comparison of the internal Pdata to the external Pdata is true. In this example, the comparison is determined to be true if the numerical value of the battery status of the receiving hub is greater than the numerical value of the battery status of the transmitting hub. If the comparison returns true, the processor moves to step. If the comparison returns false, the processor moves to step.

560 1 562 At step, the processor sets the Pbit active in the predicate word and moves to step.

558 1 562 At step, the processor sets the Pbit inactive in the predicate word and moves to step.

562 2 564 2 2 2 At step, the processor retrieves the internal Pdata. At step, the processor retrieves the external Pdata. In this example, the internal Pdata is 1 if the receiving hub does has a GPS fix and 0 if not. Likewise, the external Pdata is 1 if the transmitting hub has a GPS fix and 0 if not.

566 2 2 2 At step, the processor compares the internal Pdata to the external Pdata to determine whether or not the comparison returns true. In this example, the Pcomparison returns true if the receiving hub has a GPS fix and the transmitting hub does not have a GPS fix (1,0). The comparison returns false if neither the receiving hub nor the transmitting hub have a GPS fix (0,0), if the receiving hub has no GPS fix and the transmitting hub has a GPS fix (0,1), and when both the receiving hub and the transmitting hub have a GPS fix (1,1).

570 2 572 At step, the processor sets the Pbit in the predicate word to active and moves to step.

568 2 572 At step, the processor sets the Pbit inactive in the predicate word and moves to step.

572 3 574 3 3 3 At step, the processor retrieves the internal Pdata value. At step, the processor retrieves the external Pdata value. In this example, the internal Pdata is 1 if the receiving hub has a Wi-Fi signal and 0 if not. Likewise, the external Pdata is 1 if the transmitting hub has a Wi-Fi signal and 0 if not.

576 3 3 At step, the processor makes a comparison between the internal Pdata and the external Pdata to determine whether or not the condition returns true. In this example, the comparison returns true if the receiving hub has a Wi-Fi signal and the transmitting hub does not have a Wi-Fi signal (1,0). The comparison returns false if neither the receiving hub nor the transmitting hub has a Wi-Fi signal (0,0), if the receiving hub does not have a Wi-Fi signal and the transmitting hub has a Wi-Fi signal (0,1), and when both the receiving hub and the transmitting hub have a Wi-Fi signal (1,1).

580 578 If the comparison is true, the processor moves to step. If the condition is false, the processor moves to step.

580 3 582 At step, the processor sets the Pbit active in the predicate word and moves to step.

578 3 582 At step, the processor sets the Pbit inactive in the predicate word and moves to step.

582 4 584 4 At step, the processor retrieves the internal Pdata. At step, the processor retrieves the external Pdata.

4 4 4 In this example, the internal Pdata is indicative of whether or not the receiving hub is in a fixed location. In this example, the processor determines whether or not the receiving hub is in a fixed location by retrieving a bit set in the rules table at startup. The bit is set to 1 if the hub is permanently fixed to a stationary object, like a wall. If not, the internal Pdata returns a 0. Likewise, the external Pdata is set to reflect a 1, if the transmitting hub is in a fixed location and 0 if not.

586 4 4 4 4 4 4 4 4 4 4 4 590 4 588 At step, the processor determines whether or not the Pcomparison is true. In this example, the Pcomparison returns true only if the internal Pdata is 1 and the external Pdata is 0, (1,0), indicating that the receiving hub is fixed and the transmitting hub is capable of moving. The Pcomparison returns false if the internal Pdata and the external Pdata are both 0, (0,0), indicating that neither the receiving hub nor the transmitting hub is in a fixed location, if the external Pdata is 1, indicating that the receiving hub is capable of moving, but the transmitting hub is in fixed location, (0,1), and if both the internal Pdata and the external Pdata are 1, (1,1), indicating that both the receiving hub and the transmitting hub are fixed. If the Pcomparison returns true, the method moves to step. If the Pcondition returns false, the process moves to step.

590 4 592 At step, the processor sets the Pbit in the predicate word active and moves to step.

588 4 592 At step, the processor sets the Pbit inactive in the predicate word and moves to step.

592 5 593 5 At step, the processor retrieves the internal Pdata. At step, the processor returns the internal Pdata.

5 5 5 5 5 In this example, the internal Pdata is indicative of whether or not the receiving hub is capable of moving. The internal Pdata is determined by the receiving hub by polling both the impact accelerometer and the motion accelerometer to determine if movement is present. If movement in either or both accelerometers is present, internal Pdata is set to 1. If movement is not present in either accelerometer then the internal Pdata is set to 0. Likewise, the external Pdata is set to 1 if the transmitting hub has determined it is moving and 0 if not.

594 5 5 5 5 5 5 5 5 5 5 5 595 5 596 At step, the processor makes a comparison between the internal Pdata and the external Pdata. In this example, the Pcomparison returns true if the internal Pdata and the external Pdata are both set to 1 (1,1), indicating that both the receiving hub and the transmitting hub are moving. The Pcomparison returns false if both the internal Pdata and the external Pdata are 0 (0,0), indicating that neither hub is moving, and when either the internal Pdata or the external Pdata is 0, indicating that at least one of the hubs is not moving (0,1), (1,0). If the Pcomparison returns true, then the process moves to step. If the Pcomparison returns false, processor moves to step.

595 5 597 At step, the processor sets the Pbit in the predicate word active and moves to step.

596 5 597 At step, the processor sets the Pbit inactive in the predicate word and moves to step.

597 At step, the processor compares the predicate word to the rules table to determine a function set, as will be further described.

598 At step, the processor executes the function set, as will be further described.

599 At step, the processor returns.

5 FIG.D Referring then toexample rules table will be further described. In general, each rules table comprises a series of sets of instructions, or “function sets” which correspond to different values of the predicate word. The memory may contain many different versions of the rules table and may be recalled for used by different cryptographic rules keys, as will be further described. In this way, the server can control the behavior of each group of hubs by merely choosing a different group key and sending it to the memory in each hub when each hub is initialized. This feature is important because it allows the hub to be reused with different types of assets, with different types of potential transport, environmental and error requirements. For each combination of active and inactive settings the bits of the predicate word, the function set includes an appropriate set of instructions. The function sets may include, as examples, instructions to retrieve the status of one or more sensors, activate or deactivate one or more transceivers, and to activate or deactivate warning indicators such as colored LEDs or a beeper. The instructions may also include logical operations to compare the values of variables from the sensors or transceivers and execute various functions. For example, if a certain maximum or minimum temperature has been exceeded a red LED may be activated. In another example, if battery status indicates (1,1) a green LED may be activated. In yet another embodiment, a report may be generated and transmitted for an internal error condition, such as when both the “fixed location” bit and the “moving?” bit are both set to 1, (1,1) in the predicate word, which is a condition that should never occur. Of course, many other functions sets are possible.

1 2 3 4 5 In this example, the predicate word is a 5 bit word, which indicates battery status at P, GPS fix at P, Wi-Fi at P, a fixed location at Pand a moving status at P. As can be seen in this example for most predicate word values, the function set returns a “do nothing” instruction. The “do nothing” instruction instructs the processor to take no action and return to the wait state. However, when the predicate word has value 11101, the function set requires that the processor report system status to the system server via a cellular connection. Likewise, when the predicate word has value 11110, the function set requires that the processor report system status to the system server via a Wi-Fi connection. When the predicate word takes on values 00011, 00111, 01011, 01111, 10011, 10111, and 11011, the function set requires the processor to report an error condition.

As the example rule table demonstrates, in most conditions indicated by the predicate word, the processor takes no activity and thereby conserves battery power. An exception is when each of the last 2 bits is set to 1, in which case an error condition is reported. The rules table also indicates that when the hub determines its predicate word is 11110 or 11101, then it is the “strongest” hub in the group and so will report to the server on behalf of the entire group.

6 FIG. 406 Referring then to, the preferred method of authenticating a packet, described at step, will be further described.

601 At step, the method begins.

608 At step, the processor retrieves the secure group key from memory.

610 At step, optionally, the secure group key is decoded, as will be further described.

611 At step, the processor retrieves the private key from memory.

612 614 615 614 At step, the processor determines whether or not the decoded group key is on the group key list. If not, the method moves to step. If so, the method moves to step. If not, the method moves to step.

613 At step, the processor decodes the packet with the decoded group key and the private key.

614 620 At step, the processor ignores the packet, clears it from memory, and moves to step.

615 At step, the processor retrieves the rule table for memory which corresponds to the decoded group key.

7 FIG. 700 104 Moving to, a preferred method of encoding a secure group key will be further described. In a preferred embodiment, methodis carried out at system server.

702 At step, the method begins.

704 At step, the server retrieves the known group key “G.” The known group key corresponds with at least one rules table stored in the memory of each hub.

706 At step, the server retrieves the known private “K.”

708 At step, the server picks a random number “N.”

710 At step, the server will generate a cryptographic hash function “H” using the random number and the private key.

712 At step, the server generates a secure group key “S” by using a bit wise exclusive or function of the known group key and the cryptographic hash function “H.”

714 At step, the server transmits the secure group key and the random number to the hub.

716 At step, the method returns.

8 FIG. 610 Referring then to, a preferred method of decoding a secure group key as described in stepwill be further described.

802 At step, the method begins.

804 At step, the processor retrieves the secure group key and the random number from memory.

806 At step, the server retrieves the known private “K” from memory.

808 At step, the processor generates a secure cryptographic hash function using the known private key “K” and the random number “N.”

810 At step, the group key “G” is generated by a bit wise exclusive or core function of the secure group key and the cryptographic hash function “H.”

812 At step, the processor returns the group key “G.”

9 FIG. 312 Referring then to, a preferred method of reporting as described in step, will be further described.

902 At step, the method begins.

904 At step, the processor retrieves its internal dynamic from memory.

906 908 910 At step, the processor determines whether or not a Wi-Fi signal is present. If so, the method moves to step, if not, the method moves to step.

908 916 At step, the processor sends the current dynamic to the server via the Wi-Fi transceiver. The method then moves to step.

910 912 914 At step, the processor determines whether or not a cellular signal is present. If so, the method moves to step. If not, the method moves to step.

912 916 At step, the processor sends the dynamic to the server via cellular service. The method then moves to step.

913 At step, the processor records the time that the report was sent in memory.

914 At step, the processor stores the failure of the report attempt in memory.

916 At step, the method returns.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

February 8, 2023

Publication Date

July 14, 2026

Inventors

Ian Martin
Souroush Honary
Andrew Parkins
Theodore Wlazlowski

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “System and method for dynamic asset tracking and monitoring” (US-12682315-B2). https://patentable.app/patents/US-12682315-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.