TECHNICAL FIELD

The present subject matter relates to techniques and equipment to update nodal device programming, e.g. firmware or other software, over a nodal wireless network.

BACKGROUND

In recent years, nodal wireless networks have been deployed for a variety of monitoring, control and communication purposes. Non-limiting examples of such networks include routed mesh networks and flooding wireless networks. The wireless enabled nodes or nodal devices of such wireless networks typically are intelligent in that each nodal device includes processor-based electronics to control communications and other functions of the nodal device. Typically, the processor and thus the node is configured by programming (e.g. software including executable instructions and/or related data), which often takes the form of firmware.

The nodes of such a wireless packet data communication network occasionally require distribution of firmware (FW) or other software updates. Various approaches to software distribution have been developed and/or deployed. One approach to deliver firmware changes or revisions required that a technician or other individual having a mobile device physically approach each wireless nodal device and initiate an upload of the firmware update from the mobile device via a radio frequency (RF) connection with the respective wireless enabled nodal device. Such an approach is manually intensive and may require an unacceptable amount of time. More automated techniques have been developed.

For example, an Over-The-Air (OTA) update of nodal device programming may initially be delivered via point-to-point connections between a controller and some number of wireless enabled nodes. Thereafter, delivery of the OTA update from one nodal device to another nodal device is triggered based on an update command. In a specific example, a mesh procedure for distribution of the firmware update is triggered based on an update command that is delivered via mesh networking between the wireless enabled nodes. Upon receipt of the update command, each wireless enabled node determines whether or not the respective node has previously received and stored the revision of the firmware. Upon determination that the respective wireless enabled node has stored the revision of the firmware, that node identifies a number of ‘neighbor’ nodes located proximate the respective wireless enabled node as having not yet received and stored the revision of the firmware. For each respective one of the identified number of proximate wireless enabled nodes: the previously updated node (a) establishes a communications connection of the respective updated node with the respective identified neighboring wireless enabled node; and (b) delivers, via the established connection, the revision of firmware to the respective identified neighboring wireless enabled node. Because the update command is delivered via mesh networking, all of the wireless enabled nodes may see the update command. However, due to structure of the update command and associated detection process in the wireless enabled nodes that receive the command, only those nodes that have previously received the update will prompt their neighbors to be updated. Each time the update command is sent via mesh networking, the number of updated wireless enabled nodes increases. Thus, after sending the update command only a limited number of times, all of the wireless enabled nodes will have received the firmware update without requiring significant manual intervention. This automated firmware distribution approach is relatively effective where the wireless enabled nodes are substantially the same and all utilize the same firmware and/or substantially the same updates thereof.

For a nodal network or system having wireless enabled nodes of different types, e.g. with different radio circuits, processors, memories, sensors or controlled equipment, the different node types require different firmware updates. An automated system example may include wireless enabled nodes forming a mesh and an update manager. The wireless enabled nodes are queried to determine existing hardware versions and/or functionalities. The query is sent via the wireless mesh network. An Over-The-Air (OTA) firmware update communication load includes multiple different wireless enabled node type device firmware images, where each image corresponds to one of the existing hardware versions and/or functionalities of the wireless enabled nodes reported to the manager in response to the query. The update, including the appropriate images, is delivered via point-to-point connections between the update manager and some number of the wireless enabled nodes and/or between wireless enabled nodes, using a procedure similar to that outlined in the preceding paragraph. Upon receipt, individual wireless enabled nodes determine whether a device firmware image is needed and/or which of the firmware images is appropriate and loads only the appropriate image for future use. Transmission of a firmware load for a particular network or system installation, with multiple images, however, may be time consuming and/or utilize excessive bandwidth.

SUMMARY

Hence, there is still a need for further improvement in technologies for updates of software or other programming in a network of wireless enabled nodes. Selective updating of programming in the examples entails exchanges between a controller and one or more wireless enabled node devices.

A system, for example, includes a wireless enabled computing device configured as an update controller and wireless enabled nodes configured into a nodal wireless network with the wireless enabled computing device. The wireless enabled computing device includes a device processor, software storage, and a device radio frequency transceiver. Each respective wireless enabled node includes a node radio frequency transceiver, a node processor, memory, and software stored in the memory for execution by the node processor to implement operations of the respective wireless enabled node. At least one of the wireless enabled nodes is a node of a first type configured to execute stored software of a corresponding first type. At least one other of the wireless enabled nodes is a node of second type different from the first type of wireless enabled node and configured to execute stored software of a corresponding second type different from the first type software.

The device processor configures the wireless enabled computing device to obtain a software update intended for each node of the first wireless enabled node type and send an announcement of availability of that software update, through the wireless nodal network to the wireless enabled nodes. The announcement includes an identifier of the first type of wireless enabled node. The wireless enabled computing device is also configured to receive a packet request from the wireless enabled node of the first type through the wireless nodal network, sent in response to the announcement including the identifier of the first type of wireless enabled node. In response to the received packet request, the wireless enabled computing device sends a number of packets from the wireless enabled computing device through the wireless nodal network to the wireless enabled nodes. Each packet contains the identifier of the first type of wireless enabled node; and various ones of the packets contain different portions of the software update. The respective node processor of the wireless enabled node of the first type configures the wireless enabled node of the first type to accumulate the portions of the software update from received packets to obtain a complete copy of the software update, based on recognition of the identifier of the first type of wireless enabled node in the packets, and to install the complete copy of the software update for future execution. The respective node processor of the wireless enabled node of the second type configures the second type wireless enabled node to discard the received packets including the portions of the software update, based on recognition of the identifier of the first type of wireless enabled node in the received packets.

A method, for example, includes steps of obtaining a software update intended for a first one of a plurality of different types of wireless enabled nodes deployed in a wireless nodal network and operating a wireless enabled computing device to send an announcement of availability of the software update through the wireless nodal network to the wireless enabled nodes. The announcement includes an identifier of the first type of wireless enabled node. The wireless enabled computing device receives a packet request from at least one of the wireless enabled nodes deployed in the wireless nodal network. The packet request has been sent in response to the announcement, based on a determination responsive to the identifier in the announcement that the at least one of the wireless enabled nodes is of the first type. In response to the received packet request, the wireless enabled computing device sends a number of packets through the wireless nodal network to the wireless enabled nodes. Each packet contains the identifier of the first type of wireless enabled node; and various ones of the packets contain different portions of the software update. The method also includes receiving the transmitted packets through the wireless nodal network at the wireless enabled nodes. Based on recognition of the identifier of the first type of wireless enabled node in the packets, each respective wireless enabled node of the first type: (a) accumulates the portions of the software update from received packets to obtain a complete copy of the software update, and (b) installs the complete copy of the software update for future execution. Another wireless enabled node, particularly a node of a second type different from the first type of wireless enabled node, discards the received packets including the portions of the software update, responsive to recognition of the identifier of the first type of wireless enabled node in the received packets.

Additional objects, advantages and novel features of the examples will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The objects and advantages of the present subject matter may be realized and attained by means of the methodologies, instrumentalities and combinations particularly pointed out in the appended claims.

