AUTOGERENCIAMENTO DE FIRMWARE E CONFIGURAÇÃO DE DISPOSITIVO

BR112025020160A2Pending Publication Date: 2026-08-04LANDIS GYR TECH INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
BR · BR
Patent Type
Applications
Current Assignee / Owner
LANDIS GYR TECH INC
Filing Date
2024-03-18
Publication Date
2026-08-04

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A method of programming a metering device (100, 300) with firmware comprising: assembling the metering device (100, 300), wherein the metering device (100, 300) comprises a memory (118, 308, 318, 332) and a processor (110, 310) executable to initiate programming of the metering device (100, 300) with the firmware, writing, to the memory (118, 308, 318, 332), a firmware database comprising a plurality of firmware images, each of the plurality of firmware images comprising a different firmware version and / or different configuration settings, receiving an input indicating which one of the plurality of firmware images from the firmware database should be used to operate the metering device (100, 300), and initiating, by the processor (110, 310), when the metering device 9100, 300) is connected to a power source and in response to the received input, operation of the metering device (100, 300) using the indicated one of the plurality of firmware images from the firmware database.
Need to check novelty before this filing date? Find Prior Art

Description

1 / 38 Firmware Self-Management and Device Configuration - Field of Technology

[001] The invention relates to a method of programming a measuring device with firmware. Fundamentals

[002] Measuring devices, such as electric meters, gas meters, water meters, etc., include firmware and / or programmable settings that control the operation of the measuring device. Measuring devices can be programmed using firmware images. Firmware images may include one or more programs, an operating system, device drivers, and / or other software that the device needs to operate and / or perform its functions in use. During manufacturing, measuring devices can be programmed by writing a firmware image to the memory of a microprocessor in the measuring device.

[003] Programming can occur throughout the manufacturing process, for example, chips can be programmed directly before being placed on a Printed Circuit Board (PCB), programming can occur once the PCB has been assembled, i.e., at the Printed Circuit Board Assembly (PCBA) level, and / or programming can occur once the measuring device has been fully assembled, for example, using communications. Petition 870250085343, dated 09 / 22 / 2025, page 21 / 68 2 / 38 optical, wired, or radio frequency (RF). Typically, a measuring device can be programmed and reprogrammed multiple times during manufacturing. For example, an initial test firmware image may be programmed into the measuring device to facilitate device testing. The measuring device may be subsequently reprogrammed with a new firmware image one or more times during manufacturing before being shipped to a customer / end-user with a final firmware image, so that the measuring device is suitable for use by the customer / end-user. The final firmware image programmed into the measuring device will depend on the customer / end-user, as not all customers will use the same firmware version, and some customers may require customized configurations.

[004] In current manufacturing processes, to program the measuring device, typically a PCBA comprising a processor and memory is placed in an accessory (such as a nail bed fastener / tester) that uses an external programming device to program the processor. This process can take about 30 seconds per measuring device and requires a dedicated step in the manufacturing process, thus increasing the manufacturing time required to produce a measuring device and requiring PCBAs to be segregated and inventoried. Petition 870250085343, dated 09 / 22 / 2025, page 22 / 68 3 / 38 based on the applied firmware version. This problem is exacerbated when producing measuring devices in large volumes. Furthermore, each externally programmed device needs to be validated to ensure the relevant firmware image is correctly programmed onto it.

[005] There is a need to program measuring devices more quickly and efficiently with the correct firmware. Summary

[006] According to the invention in a first aspect, a method is provided for programming a measuring device with firmware, wherein the method comprises: assembling the measuring device, wherein the measuring device comprises a memory and an executable processor to initiate the programming of the measuring device with firmware; writing to memory, wherein a firmware database comprises a plurality of firmware images, wherein each of the pluralities of firmware images comprises a different firmware version and / or different configurations; receiving an input indicating which of the various firmware images from the firmware database should be used to operate the measuring device; and initiating, by the processor, when the measuring device is connected to a power supply and in response to the received input, wherein the operation of the device Petition 870250085343, dated 09 / 22 / 2025, page 23 / 68 4 / 38 measurement uses the indicated plurality of firmware images from the firmware database.

[007] Optionally, the method further comprises dividing the memory into a plurality of intervals by the processor, each interval accommodating one of the plurality of firmware images, and operating the measuring device using a first firmware image stored in a first interval by default.

[008] Optionally, the received input indicates that a second firmware image stored in a second memory range should be used to operate the measuring device, and in response to the input, the processor starts the operation of the measuring device using the second firmware image.

[009] Optionally, the firmware database is written to memory during the assembly of the measuring device.

[0010] Optionally, the measuring device comprises a metrology module configured to collect and manage data relating to a utility to be monitored by the measuring device in use, and wherein the metrology module comprises the processor and memory.

[0011] Optionally, the measuring device additionally comprises an edge device, wherein the edge device comprises the memory and the processor, Petition 870250085343, dated 09 / 22 / 2025, page 24 / 68 5 / 38 and a metrology module configured to collect and manage data relating to a utility to be monitored by the measuring device in use, wherein the metrology module comprises a metrology module memory, and the method further comprises: copying, in response to input, the indicated firmware image from the edge device memory to the metrology module memory, so that one of the various firmware images is programmed into the metrology module memory; and initiating the operation of the measuring device using one of the various firmware images stored in the metrology module memory.

[0012] Optionally, the mounted measuring device additionally comprises a communication device configured to receive and transmit data.

[0013] Optionally, the method further comprises: installing the mounted measuring device in a desired location for measuring the consumption of a utility by the measuring device, wherein the installation comprises connecting the measuring device to a network; probing, by the communication device, one or more measuring devices connected to the same network as the measuring device to determine the firmware image(s) programmed for one or more measuring devices; and instructing the programming of the measuring device with an image of Petition 870250085343, dated 09 / 22 / 2025, page 25 / 68 6 / 38 firmware from the firmware database corresponding to at least one of the specified firmware image(s) programmed for one or more measuring devices.

[0014] Optionally, the method further comprises determining, by the processor, whether a firmware image programmed for one or more measuring devices is present in the firmware database.

[0015] Optionally, if it is determined that the firmware image programmed for one or more measuring devices is not present in the firmware database, the method further comprises: transmitting, via the communication device and to a server, a request for the firmware image programmed for one or more measuring devices; and receiving, via the communication device and from the server, the firmware image for programming the measuring device. Brief Description of the Drawings Figure 1 shows a schematic view of an exemplary measuring device; Figure 2 shows a flowchart describing an exemplary method for programming a measuring device with a firmware image; Figure 3 shows a schematic view of an exemplary measuring device; Figure 4 shows a flowchart that describes a method. Petition 870250085343, dated 09 / 22 / 2025, page 26 / 68 7 / 38 example of programming a measuring device with a firmware image; Figure 5 shows a schematic view of an exemplary utility metering system; and Figure 6 shows a flowchart describing an exemplary method for programming a measuring device with a firmware image. Detailed Description

[0016] This document describes a method for programming a measuring device with a firmware image to be used by the measuring device when the measuring device is installed for use by an end user. The method consists of writing a firmware database composed of a plurality of firmware images into the memory of the measuring device. Each of the firmware images in the firmware database can be different. For example, each firmware image can comprise a different firmware version and / or different configuration settings. The firmware database can be written into the memory of the measuring device during the assembly of a printed circuit board (PCB) in a printed circuit board assembly (PCBA) of the measuring device.

[0017] The method also includes determining, using the measuring device, when the device is connected. Petition 870250085343, dated 09 / 22 / 2025, page 27 / 68 8 / 38 to a power source, which of the various firmware images from the firmware database should be used to operate the measuring device. The method may also include initiating, by the measuring device, the operation of the measuring device using the determined one among the plurality of firmware images.

[0018] Figure 1 shows an exemplary measuring device 100. The measuring device 100 comprises a metrology module 102 and a communication module 104. Typically, the metrology module 102 and the communication module 104 are located / housed in the same measuring device 100, but they can be implemented on different circuit boards and connected locally. Those skilled in the art will understand that, in alternative implementations, the metrology module 102 and the communication module 104 may be located separately / in separate enclosures and connected by means of a wired connection, for example.

[0019] Metrology module 102 is configured to manage and collect data about a utility. For example, if the measuring device is an electrical measuring device in use, metrology module 102 is configured to manage and collect data related to electrical power, such as data indicating electrical power consumption. Petition 870250085343, dated 09 / 22 / 2025, page 28 / 68 9 / 38

[0020] The metrology module 102 may comprise a memory 108 and a processor 110. The memory 108 may comprise non-volatile and / or volatile memory. The memory 108 may have a computer program stored in it. The computer program may comprise instructions for executing the methods described in this document. The computer program may be loaded into the memory 108 from a non-transient, computer-readable medium on which the computer program is stored. The metrology module 102 may further include the measurement circuitry 112. The processor 110 is configured by the computer program to execute one or more functions of the measurement circuitry 112. The measurement circuitry 112 may be configured to measure the utility consumed and facilitate the storage of consumption data in the memory 108.

[0021] Each of the memory 108, the processor 110 and the measurement circuitry 112 is in data communication with the other components 108, 110, 112 of the metrology module 102, and may be in data communication with the communications module 104 and its components. The metrology module 102 may be implemented as a combination of computer hardware and software. Memory 108 stores the various executable programs / files that are implemented by the processor 110 and also provides a Petition 870250085343, dated 09 / 22 / 2025, page 29 / 68 10 / 38 storage unit for all necessary data.

[0022] The communications module 104 is configured to facilitate data communication with one or more external devices, which may include other measuring devices, controllers and / or a head end / command center system.

[0023] Communications module 104 may comprise a communications device 116. Communications device 116 may comprise a receiver and transmitter, such as an antenna and / or radio or any other device that allows wired or wireless communications (e.g., RF communication). Communications device 116 may be in data communication with other entities, such as other measuring devices, controllers, servers, and is configured to transmit and receive data accordingly.

[0024] The communications module 104 may comprise a memory 118 and a processor 120. The memory 118 may comprise non-volatile and / or volatile memory. The memory 118 may have a computer program stored therein. The computer program may comprise instructions for executing the methods described in this document. The computer program may be loaded into memory 118 from a non-transient, computer-readable medium on which the computer program is stored. The processor 120 is configured by the program of Petition 870250085343, dated 09 / 22 / 2025, page 30 / 68 11 / 38 computer to perform one or more functions of the communication device 116.

[0025] As will be observed by those skilled in the art, the measuring device 100 comprises firmware that controls the operation of the measuring device 100. Typically, this firmware is written into a memory of the measuring device 100 during the manufacture / assembly of the device. As described above, known methods of writing firmware to a device include connecting the device to a wired interface (typically this would occur at the circuit board level), such as a dedicated nail bed accessory, and using an external programming device to write the firmware to the memory 108 of the metrology module 102 of the measuring device 100 and program the processor 110.A similar process can typically be performed if the firmware needs to be updated during the manufacturing / assembly process; that is, the measuring device would be reconnected to a dedicated nail bed accessory, and an external programming device would be used to erase the previous firmware version from memory, write the new firmware version to memory 108, and program processor 110. This process adds time to the manufacturing and assembly process, which can be significant when large volumes of measuring devices are manufactured / assembled.

[0026] After the measuring device is Petition 870250085343, dated 09 / 22 / 2025, page 31 / 68 12 / 38 installed for use at the customer's location, if a different or updated firmware version is required, the different / updated firmware version is typically provided to the measuring device via an over-the-air (OTA) download transfer. That is, the different / updated firmware version is wirelessly transmitted to the installed measuring device for download transfer and programming. Again, over-the-air download transfers generally require significant time and can be prone to network instability and / or network resource issues.

[0027] A first method for programming a measuring device, such as measuring device 100, with a firmware image is described below and shown in Figure 2. The method described below allows the firmware to be programmed and changed more quickly and efficiently than is possible using the known methods described above.

[0028] 202 A firmware database comprising a plurality of firmware images is written to a measuring device memory 100. Each firmware image of the plurality of firmware images comprises a different firmware version and / or different firmware and / or configuration settings.

[0029] In this specific example, the database of Petition 870250085343, dated 09 / 22 / 2025, page 32 / 68 13 / 38 firmware is written to memory 108 of metrology module 102. However, those skilled in the art will observe that, in alternative arrangements, the firmware database may be written to substantially any device memory with available storage space to accommodate the firmware database. For example, the measuring device 100 may comprise a separate external memory, such as memory provided by a data flash chip, and the firmware database may be written to the memory of the data flash chip.

[0030] The firmware database can be written to memory 108 of measuring device 100 during the manufacturing of measuring device 100.

[0031] The firmware database can be written to memory 108 at the circuit board level. That is, the firmware database can be written to memory 108 before the metrology module chip is mounted on the printed circuit board, PCB, or alternatively, the firmware database can be written to memory 108 once the printed circuit board has been assembled (i.e., written to memory 108 once a PCBA has been formed) using a device such as a bed of nails.

[0032] The firmware database may contain firmware images for the module to function. Petition 870250085343, dated 09 / 22 / 2025, page 33 / 68 14 / 38 metrological module 102 and / or communications module 104. In this example, the firmware images are for operation of metrology module 102 and therefore the firmware database is written to memory 108 of metrology module 102; however, those skilled in the art will observe that a similar process can be applied using firmware images for the operation of communications module 104.

[0033] 204: The measuring device 100 can be configured to operate using one of the firmware images in the firmware database.

[0034] Exemplary methods comprise dividing memory 108 into a plurality of intervals. Each interval of memory 108 comprises one of several firmware images in the firmware database. Memory 108 may be divided into the plurality of intervals based on the memory space available to accommodate the firmware database and the size of each of the firmware images contained in the firmware database. For example, if there is 4 MB of storage in memory 108 to accommodate the firmware database and each firmware image is limited to 1 MB, memory 108 would be divided into four intervals, with each interval accommodating one of the 1 MB firmware images. Exemplary methods may comprise compressing the firmware images stored in memory 108.

[0035] The method may also include programming the Petition 870250085343, dated 09 / 22 / 2025, p. 34 / 68 15 / 38 measuring device 100 to operate using a first firmware image stored in a first interval of the plurality of intervals by default.

[0036] For example, a bootloader for measuring device 100, which can be stored in memory 108 and comprises the first code that is executed when measuring device 100 is powered on, can be programmed to treat memory 108 as divided into the plurality of intervals described above. The bootloader is programmed to use the first firmware image contained in the first interval of the plurality of intervals by default to operate measuring device 100.

[0037] 206: If the final firmware image to be used by measuring device 100 is the first firmware image, then no further action is required. Measuring device 100 can be installed at a customer location to measure utility consumption and will operate according to the first firmware image.

[0038] In some provisions, however, the final firmware image required to be used by measuring device 100 may differ from the first firmware image used by measuring device 100 by default. Continuing with the example above, the final firmware image required to be used by measuring device Petition 870250085343, dated 09 / 22 / 2025, page 35 / 68 16 / 38 100 could be a firmware image contained in a memory range different from the first range.

[0039] A command may be received by the measuring device 100 to operate using a firmware image different from the first firmware image. In response to the command, the measuring device may initiate an update and reboot sequence and, upon reboot, operate using the different firmware image.

[0040] For example, in response to the command, the bootloader code can be updated to specify that measuring device 100 should operate using a firmware image stored in a different memory range 108 relative to the first firmware image stored in the first memory range 108, for example, a second firmware image stored in a second memory range 108. Measuring device 100 can be controlled to reboot in response to the bootloader update, and upon reboot, measuring device 100 uses the second firmware image contained in the second memory range 108 to operate (as specified in the updated bootloader code).

[0041] The command can be issued at any point during the service life of the measuring device 100. For example, the command can be issued during the process of Petition 870250085343, dated 09 / 22 / 2025, page 36 / 68 17 / 38 manufacturing / assembly or, alternatively, the command can be issued as soon as the measuring device 100 is installed in a location to measure the consumption of a utility. The command can be issued and received by the measuring device 100 using a wired connection. For example, during the manufacturing and assembly of the measuring device 100, the measuring device 100 can be connected to an optical interface controller to calibrate and configure the measuring device 100. While the measuring device 100 is connected to the optical interface controller, the command can be issued for the measuring device 100 to operate using a firmware image different from the first firmware image. Alternatively, the command can be received by the measuring device 100 wirelessly.

[0042] This process can be repeated if you want a different firmware image.

[0043] Advantageously, as the plurality of firmware images are all written to memory 108 of metrology module 102 of measuring device 100 (or, in alternative arrangements, an alternative memory of measuring device 100), a command simply needs to be issued as described above to instruct operation based on a different firmware image that is already stored in memory 108. This eliminates the need for measuring device 100 to be repeatedly connected to a Petition 870250085343, dated 09 / 22 / 2025, page 37 / 68 18 / 38 dedicated accessory to allow firmware update and / or copying and reprogramming. The dosing device can therefore be manufactured and assembled more efficiently. In particular, a separate processing / manufacturing step is not required to facilitate the programming of new firmware. Instead, the command can be issued for the measuring device 100 to operate based on a different firmware image stored in memory at any point when the measuring device 100 is powered on and in parallel with another configuration / assembly step.

[0044] Another exemplary measuring device 300 is shown in Figure 3. Measuring device 300 comprises a metrology module 302 and a communication module 304 similar to those described above in relation to measuring device 100. As such, a description of these features is not given again in the present document and the corresponding reference numerals are used to identify them in Figure 3. Thus, 302 is the metrology module comprising a memory 308, a processor 310 and a set of measuring circuits 312, and 304 is the communication module comprising a communication device 316, a memory 318 and a processor 320.

[0045] The measuring device 300 further comprises an edge device 330, which may be an edge intelligence device. The edge device Petition 870250085343, dated 09 / 22 / 2025, page 38 / 68 19 / 38 330 is configured to perform other functionalities, which can be implemented as individual software applications 336. For example, the edge device can facilitate real-time monitoring of waveform data of measured currents and voltages to allow the determination of anomalies in the waveform data, which may be indicative of power quality problems in the network and / or problems with connections and load.

[0046] The edge device 330 may comprise a memory 332 and a processor 334. The memory 332 may comprise non-volatile memory and / or volatile memory. The memory 332 may have a computer program stored therein. The computer program may comprise instructions for executing the methods described in this document. The computer program may be loaded into the memory 332 from a non-transient, computer-readable medium on which the computer program is stored. The edge device 330 may further include at least one of a variety of applications 336 installed thereon, a controller 338, a firmware copier 340, and a firmware determinator 342. The processor 334 is configured by the computer program to execute one or more of the functions of the applications 336, the controller 338, the firmware copier 340, and the firmware determinator 342.

[0047] Each of the 332 memories, the 334 processor, Petition 870250085343, dated 09 / 22 / 2025, page 39 / 68 The 336 applications, the 338 controller, the 340 firmware copier, and the 342 firmware determiner are in data communication with the other components 332, 334, 336, 338, 340, and 342 of the edge device 330. The edge device 330 can be implemented as a combination of computer hardware and software. The memory 332 stores the various executable programs / files that are implemented by the processor 334 and also provides a storage unit for all necessary data. The edge device 330 is also in data communication with one or both of the metrology modules 302 and the communications module 304, and their components.

[0048] The edge device 330 is located in / housed within the same measuring device 300 as the metrology module 302 and the communications module 304, but is implemented on different printed circuit boards and connected locally. Those skilled in the art will understand that, in alternative implementations, the edge device 330 may be located separately / in a separate enclosure from one or both of the metrology modules 302 and the communications module 304 and connected to them via a wired / wireless connection, for example. The edge device 330 may further include a transmitter and / or receiver configured to facilitate data communication between the edge device 330 and the metrology module 304 and / or the communications module. Petition 870250085343, dated 09 / 22 / 2025, page 40 / 68 21 / 38 communications 304 and / or other entities (such as other measuring devices or servers) via wireless connection, such as via WiFi communication.

[0049] Advantageously, the 330 edge device typically has a larger amount of available memory to accommodate a firmware database than the 308 memory of the 302 metrology module. Furthermore, the 334 processor of the 330 edge device is typically faster than the 310 processor of the 302 metrology module. Therefore, for measuring devices comprising edge devices, such as the 300 measuring device, the firmware database can advantageously be stored in the 332 memory of the 330 edge device, and the relevant firmware image can be copied to the 308 memory of the 302 metrology module for programming as desired.

[0050] An additional method for programming a measuring device, such as the 300 measuring device, with a firmware image is described below and shown in Figure 4.

[0051] 402: A firmware database comprising a plurality of firmware images, similar to that described above in relation to measuring device 100, is written to a memory of measuring device 300. Each of the pluralities of firmware images contained in the firmware database comprises a version Petition 870250085343, dated 09 / 22 / 2025, page 41 / 68 22 / 38 different firmware and / or different firmware and / or configuration settings.

[0052] In this specific example, the firmware database is written to memory 332 of the 330 edge device. As mentioned above, memory 332 of the 330 edge device typically comprises a larger amount of available storage space to accommodate the firmware database.

[0053] The firmware database can be written to memory 332 of measuring device 300 during the manufacturing of measuring device 300. The firmware database can be written to memory 332 of measuring device 100 using an accessory, such as a nail bed accessory. Alternatively, the firmware database can be written to memory 330 using a wireless connection, such as a WiFi connection, which uses communication device 316.

[0054] The firmware database can be written to memory 332 at the circuit board level. That is, the firmware database can be written to memory 332 before the 330 edge device is mounted on the printed circuit board, PCB, or alternatively, the firmware database can be written to memory 332 once the printed circuit board housing the 330 edge device has been mounted (i.e., written to memory). Petition 870250085343, dated 09 / 22 / 2025, page 42 / 68 23 / 38 332 once a PCBA has been formed), similarly to that described above in step 202 of the method in relation to measuring device 100.

[0055] The firmware database may include firmware images for operation of metrology module 302 and / or firmware images for operation of communications module 304.

[0056] 404. A command is sent to the measuring device 300, indicating which of the various firmware images stored in the firmware database in memory 332 of the edge device 330 should be programmed into memory 308 of the metrology module 302.

[0057] In some methods, where the firmware database comprises firmware images for the operation of both metrology module 302 and communications module 304, the command may indicate which of several firmware images should be programmed into memory 318 of communications module 304 and / or an indication of which of several firmware images should be programmed into memory 308 of metrology module 302.

[0058] The command can be received by the measuring device 300 using a wired connection or using wireless data communication, as described above.

[0059] 406: In response to the command, the 330 edge device facilitates the copying of one of the firmware images, Petition 870250085343, dated 09 / 22 / 2025, page 43 / 68 24 / 38 of the plurality indicated in the command, to the memory indicated in the command (that is, memory 308 of metrology module 302 or memory 318 of communications module 304). Specifically, in response to the received command, controller 338 of edge device 330 controls firmware copier 340 to copy the indicated plurality of firmware images to the indicated memory.

[0060] If the command indicates that a first firmware image in the firmware database should be programmed to memory 308 of metrology module 302, and a second firmware image from the firmware database should be programmed to memory 318 of communications module 304, controller 338 controls firmware copier 340 to copy the first firmware image to memory 308 of metrology module 302, and copy the second firmware image to memory 318 of communications module 304.

[0061] For the purposes of this example, it is assumed that the command indicates that one of the pluralities of firmware images should be programmed into memory 308 of metrology module 302; however, those skilled in the art will observe that a similar process can be performed with respect to communications module 302 if the command additionally or alternatively indicates that one of the pluralities of firmware images should be programmed into memory 318 of communications module 304. Petition 870250085343, dated 09 / 22 / 2025, p. 44 / 68 25 / 38

[0062] The plurality of firmware images is stored in the relevant memory, that is, memory 308, so that, in use, the measuring device 300 operates using the plurality of firmware images.

[0063] Copying one of the multiple firmware images indicated in the command may involve storing one of the multiple firmware images in volatile memory of metrology module 302. One of the multiple firmware images may undergo validation and / or authentication. Once one of the multiple firmware images has been validated and / or authenticated, that one of the multiple firmware images is stored and programmed into memory 308 of metrology module 102 (which is or comprises non-volatile memory).

[0064] 408: The next time measuring device 300 is switched on / used, measuring device 300 can operate using the firmware image stored in memory 308 of metrology module 302 and the firmware image stored in memory 318 of communications module 104.

[0065] Similarly to the first method described in this document, advantageously, because the plurality of firmware images are all written to a memory of the measuring device 300 (in this case, memory 332 of the edge device 330), a command simply needs Petition 870250085343, dated 09 / 22 / 2025, p. 45 / 68 Command 26 / 38 will be issued as described above to instruct the programming of metrology module 302 and / or communications module 304 based on the desired firmware image. In response to this command, the desired firmware image is programmed into the relevant memory, without the need for the measuring device 300 to be repeatedly connected to a dedicated device to allow firmware rewriting and / or reprogramming. Copying the firmware image to the relevant memory can be done at any time the measuring device 300 is connected to a power source, whether during the manufacturing / assembly of the measuring device 300 or when the measuring device 300 is installed in a location to measure the consumption of a utility.

[0066] Figure 5 shows a network topography of a typical 500 utility metering system, comprising a plurality of metering devices, which may be 300 metering devices, installed at one location to meter a utility. The 500 utility metering system comprises a 502 head system, a 504 backhaul network, and a plurality of 506an collectors (or root nodes). Communication between the 502 head system and the plurality of 506a-n collectors may be facilitated by the 504 backhaul network. The 104 backhaul network may be a wired network (e.g., Ethernet or cable). Petition 870250085343, dated 09 / 22 / 2025, pp. 46 / 68 27 / 38 fiber optic cable) and / or a wireless network (e.g., a cellular network). Each 106a-n collector is in data communication with a plurality of 300a-n measuring devices. In the particular example shown in Figure 1, collector 506a is in data communication with measuring devices 300ac, collector 506b is in data communication with measuring devices 300e-f, and collector 506n is in data communication with measuring devices 300g-n. Those skilled in the art will observe that although Figure 5 shows each 506a-n collector in data communication with three measuring devices, this is only an example, and there may be any number of measuring devices in communication with a given collector. The 506a-n collectors may aggregate the data received from the respective 300a-n measuring devices and transmit the data to the network head system 502 (e.g., for billing purposes).506a-n collectors can be personal network coordinators (PANs), communication ports, routers, or any other devices capable of communicating with the 502 network head system.

[0067] In exemplary methods, the command indicating which of the firmware images in the firmware database should be programmed into memory 308 of metrology module 302 or into memory 318 of communications module 304 can be based on a search of other measuring devices. Petition 870250085343, dated 09 / 22 / 2025, page 47 / 68 28 / 38 connected to the same network as the measuring device (e.g., the same PAN) and in a determination of which firmware images are programmed in the other measuring devices, as described below with reference to Figures 5 and 6.

[0068] 602: A 300c measuring device can be installed at a location to measure the consumption of a utility. During installation, the 300c measuring device can undergo a registration and assignment process and, as a result, be assigned to collector 506a.

[0069] 604: Measuring device 300c can probe other measuring devices 300a, 300b assigned to collector 506a to determine the firmware images programmed in memories 308a, 308b of metrological modules 302a, 302b of the respective measuring devices 300a, 300b and / or the firmware images programmed in memories 318a, 318b of communication modules 304a, 304b of the respective measuring devices 300a, 300b. In alternative methods, measuring device 300c can probe other measuring devices located within a geographical boundary, or all measuring devices that have a common client ID, and / or can probe other measuring devices based on other criteria, and need not be limited to probing only those measuring devices assigned to a common collector. Petition 870250085343, dated 09 / 22 / 2025, pp. 48 / 68 29 / 38

[0070] Probing the measuring devices 300a, 300b may comprise the controller 338c of the measuring device 300c controlling the communications module 304c to transmit a query to the measuring devices 300a, 300b comprising a data request indicating which firmware image is programmed in the respective memories 308a, 308b and / or 318a, 318b of the measuring devices 300a, 300b.

[0071] 606: In response to the query, the communications module 300c receives from the measuring devices 300a, 300b, the data indicating which firmware image is programmed for the respective memories 308a, 308b and / or 318a, 318b of the measuring devices 300a, 300b.

[0072] The firmware determinator 342c can determine, based on data received from measuring devices 300a, 300b, whether the firmware image(s) programmed in the respective memories 308a, 308b and / or 318a, 318b of measuring devices 300a, 300b are stored in the firmware database of measuring device 300c. For example, the data received from measuring devices 300a, 300b may include a firmware ID or firmware version number, and the firmware determinator 342c can compare the firmware IDs / firmware version numbers received from measuring devices 300a, 300b with the firmware IDs / version numbers associated with the plurality of firmware images stored in the database. Petition 870250085343, dated 09 / 22 / 2025, pp. 49 / 68 30 / 38 firmware data from the measuring device 300c. Based on the comparison, the firmware determinator 342c determines whether a firmware image containing a matching firmware ID or firmware version number is contained in the firmware database. If a matching firmware image is identified, the firmware determinator 342c determines that the matching firmware image should be programmed into memory 308c of the metrology module 302c and / or memory 318c of the communications module 304c.

[0073] If the data received from measuring devices 300a, 300b indicates that each of the measuring devices 300a, 300b comprises a different firmware image, the firmware determinator 342c can determine which firmware image is the most recent (i.e., the newest firmware version or the firmware image that was programmed into the respective measuring device most recently). If a firmware image corresponding to the most recent firmware version is stored in the firmware database, the firmware determinator 342c determines that the most recent firmware version should be programmed into memory 306c and / or memory 318c of measuring device 300c.

[0074] Optionally, if the latest firmware version is not stored in the database of Petition 870250085343, dated 09 / 22 / 2025, pp. 50 / 68 31 / 38 firmware, the 342c firmware determiner can determine the next latest firmware version from the data received from the 300a and 300b measuring devices, and determine if the next latest firmware version is stored in the firmware database. If the next latest firmware version is stored in the firmware database, the 342c firmware determiner can determine that the next latest firmware version should be programmed into the relevant memory 306c and / or 318c of the 300c measuring device.

[0075] 608: Once the firmware determinator 342c has determined which of the firmware images stored in the firmware database in memory 332c of the edge device 330c should be programmed to memory 308c of the metrology module 302c and / or memory 318c of the communications module 304c, the edge device 330c facilitates the copying of the determined firmware image to the relevant memory 308c and / or 318c. This can occur in a manner similar to that indicated above in step 406 of the method. For example, the controller 338c of the edge device 330c controls the firmware copier 340c to copy the determined firmware image to the indicated memory.

[0076] 610: If the firmware determinator 342c determines, based on data received from measuring devices 300a, 300b, that none of the firmware images Petition 870250085343, dated 09 / 22 / 2025, pp. 51 / 68 32 / 38 programmed for the respective memories 308a, 308b and / or 318a, 318b of the measuring devices 300a, 300b is stored in the firmware database of the measuring device 300c, the controller 338c can control the communication device 316c to transmit a request to the headend system 502 to identify which firmware version should be installed on the measuring device 300c. In response to the request, the headend system 502 can identify the necessary firmware version and initiate an over-the-air download transfer of the required firmware image. The request can be transmitted to the headend system 502 via the collector 506a. The transmission can be sent via a wired network (e.g., Ethernet or fiber optic cable) and / or a wireless network (e.g., a cellular network).

[0077] A similar process can be performed if the firmware determinator 342c determines that the latest firmware version used by at least one of the measuring devices 300a, 300b is not stored in the firmware database of measuring device 300c. For example, measuring device 300a may operate using a more recent firmware version than measuring device 300b. If a firmware image corresponding to the firmware version stored in memory 308a of measuring device 300a is not in the database of Petition 870250085343, dated 09 / 22 / 2025, pages 52 / 68 33 / 38 firmware of measuring device 300c, the 338c controller can control the 316c communication device to transmit a request to the network head system 502 for an over-the-air download transfer of the firmware image stored in memory 308a or memory 318a of measuring device 300a. In some arrangements, this request can be sent even if a firmware image corresponding to the older firmware stored in measuring device 300b is stored in the firmware database of measuring device 300c.

[0078] In response to the request, the required firmware image can be transmitted by the network head system 502 and received by the measuring device 300c for programming into the relevant memory 308c, 318c of the measuring device 300c.

[0079] When the 300c measuring device is switched on / used for the next time, the 300c measuring device can operate using the firmware image stored in memory 308c of the metrology module 302c and / or the firmware image stored in memory 318c of the communications module 304c.

[0080] In other alternative arrangements, instead of probing other measuring devices 300a, 300b, when measuring device 300c is installed on a site, controller 338c can control the communication device. Petition 870250085343, dated 09 / 22 / 2025, pages 53 / 68 34 / 38 316c to transmit a request to the network head system 502 for an indication of which firmware image should be programmed into memory 308c of the metrology module 302c and / or memory 318c of the communication module 304c, respectively. In response to the request, the communication device 316c may receive a command from the network head system 302 indicating which firmware image should be programmed into one or more of the memories 308c of the meteorology module 302c and the memory 318c of the communication module 304c. If the firmware image is stored in the firmware database, the firmware copier 340c can copy the indicated firmware image to the relevant memory using the methods described above.If the firmware image is not stored in the firmware database, the 502 network head system can initiate an over-the-air download transfer of the required firmware image to facilitate storing the required firmware image in the relevant memory of the 300c measuring device.

[0081] A computer program can be configured to provide any of the methods described above. The computer program can be provided on computer-readable media. The computer program can be a computer program product. The product can comprise computer-usable storage media that is not Petition 870250085343, dated 09 / 22 / 2025, pages 54 / 68 35 / 38 transient. The computer program product may have computer-readable program code embedded in the medium configured to execute the method. The computer program product may be configured to cause at least one processor to execute part or all of the method.

[0082] Various methods and apparatus are described in this document with reference to block diagrams or flowchart illustrations of computer-implemented methods, apparatus (systems and / or devices) and / or computer program products. It is understood that a block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by computer program instructions that are executed by one or more computer circuits.These computer program instructions can be provided to a processor circuit of a general-purpose computer circuit, special-purpose computer circuit, and / or other programmable data processing circuit to produce a machine, such that the instructions, which are executed through the computer processor and / or other programmable data processing device, transform and control transistors, values ​​stored in memory locations, and other hardware components within such a circuit assembly to implement the functions / actions specified therein. Petition 870250085343, dated 09 / 22 / 2025, pages 55 / 68 36 / 38 block diagrams and / or flowchart block(s) and thus create means (functionality) and / or structure to implement the functions / actions specified in the block diagrams and / or flowchart block(s).

[0083] Computer program instructions can also be stored on computer-readable media that can direct a computer or other programmable data processing device to operate in a specific way, such that the instructions stored on the computer-readable media produce a manufactured article that includes instructions that implement the functions / actions specified in the block diagrams and / or flowchart block or blocks.

[0084] A tangible, non-transient, computer-readable medium may comprise an electronic, magnetic, optical, electromagnetic, or semiconductor data storage system, apparatus, or device. More specific examples of computer-readable media would include the following: a portable computer floppy disk, a random access memory (RAM) circuit, a read-only memory (ROM) circuit, a programmable erasable read-only memory (EPROM or Flash memory) circuit, a portable compact disc (CDROM) read-only memory, and a portable digital video disc (DVD / Blu-ray) read-only memory. Petition 870250085343, dated 09 / 22 / 2025, pages 56 / 68 37 / 38

[0085] Computer program instructions can also be loaded into a computer and / or other programmable data processing device to cause a series of operational steps to be executed on the computer and / or other programmable device to produce a computer-implemented process, such that the instructions that are executed on the computer or other programmable device provide steps for the implementation of the functions / acts specified in the block diagrams and / or flowchart block or blocks.

[0086] Consequently, the invention can be embodied in hardware and / or software (including firmware, resident software, microcode, etc.) that runs on a processor, which may be collectively referred to as a circuit assembly, a module, or variants thereof.

[0087] It should also be noted that, in some alternative implementations, the functions / actions observed in the blocks may occur out of the order observed in the flowcharts. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality / actions involved. Furthermore, the functionality of a given block in the flowcharts and / or block diagrams may be separated into several blocks, and / or the functionality of two or more blocks in the flowcharts and / or Petition 870250085343, dated 09 / 22 / 2025, pages 57 / 68 38 / 38 block diagrams can be at least partially integrated. Finally, other blocks can be added / inserted between the blocks that are illustrated.

[0088] Those skilled in the art will be able to visualize other embodiments without departing from the scope of the appended claims. Petition 870250085343, dated 09 / 22 / 2025, pp. 58 / 68

Claims

1 / 4 CLAIMS 1. A method for programming a measuring device with firmware, the method characterized in that it comprises: assembling the measuring device, the measuring device comprising a memory and an executable processor to initiate the programming of the measuring device with firmware; writing to memory a firmware database comprising a plurality of firmware images, each of the various firmware images comprising a different firmware version and / or different configuration settings; receiving an input indicating which of the various firmware images from the firmware database should be used to operate the measuring device; and initiating, by the processor, when the measuring device is connected to a power supply and in response to the received input, operating the measuring device using the indicated plurality of firmware images from the firmware database.

2. Method, according to claim 1, characterized in that it further comprises: dividing, by the processor, the memory into a plurality of intervals, each interval accommodating a plurality of firmware images, and operating the measuring device using a first firmware image stored in a first interval by default.

3. A method according to claim 2, characterized in that the received input indicates that a second firmware image stored in a second memory range should be used to operate the measuring device, and in that, in response to the input, the processor initiates the operation of the measuring device using the second firmware image.

4. A method, according to any of the preceding claims, characterized in that the firmware database is written to memory during the assembly of the measuring device.

5. A method, according to any of the preceding claims, characterized in that the measuring device comprises a metrology module configured to collect and manage data relating to a utility to be monitored by the measuring device in use, and wherein the metrology module comprises the processor and memory.

6. Method according to claim 1, characterized in that the measuring device further comprises an edge device, wherein the edge device comprises memory and a processor, Petition 870250085343, dated 22 / 09 / 2025, p. 60 / 68 3 / 4 and a metrology module configured to collect and manage data relating to a utility to be monitored by the measuring device in use, wherein the metrology module comprises a metrology module memory, wherein the method further comprises: copying, in response to input, the indicated plurality of firmware images from the memory of the edge device to the memory of the metrology module, such that the plurality of firmware images is programmed into the memory of the metrology module; and initiating the operation of the measuring device using one of several firmware images stored in the memory of the metrology module.

7. A method, according to any of the preceding claims, characterized in that the assembled measuring device additionally comprises a communication device configured to receive and transmit data.

8. Method according to claim 7, the method characterized in that it further comprises: installing the mounted measuring device in a desired location for measuring the consumption of a utility by the measuring device, wherein the installation includes connecting the measuring device to a network; probing, by the communication device, one or more measuring devices connected to the same network as the measuring device to determine the firmware image(s) programmed for one or more measuring devices; and instructing the programming of the measuring device with a firmware image from the firmware database corresponding to at least one of the determined firmware images programmed for one or more measuring devices.

9. Method according to claim 8, characterized in that it further comprises determining, by the processor, whether a firmware image programmed for one or more measuring devices is present in the firmware database.

10. Method according to claim 9, characterized in that, if it is determined that the firmware image programmed for one or more measuring devices is not present in the firmware database, the method further comprises: transmitting, via the communication device and to a server, a request for the firmware image programmed for one or more measuring devices; and receiving, via the communication device and from the server, the firmware image for programming the measuring device. Petition 870250085343, dated 22 / 09 / 2025, pp. 62 / 68