Firmware and configuration device self-management

By pre-loading a firmware database on measuring devices and allowing processors to select the appropriate image upon power-up, the method addresses inefficiencies in current programming methods, enhancing manufacturing speed and flexibility.

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

Patent Information

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

AI Technical Summary

Technical Problem

Current manufacturing processes for programming measuring devices, such as electric, gas, and water meters, are inefficient and time-consuming due to the need for dedicated programming steps and verification of firmware versions, especially in mass production scenarios.

Method used

A method involving writing a firmware database containing multiple firmware images to the device's memory during assembly, allowing the processor to select and operate using the appropriate image upon connection to power, eliminating the need for repeated reprogramming by issuing commands wirelessly or via a wired connection.

Benefits of technology

This approach significantly reduces manufacturing time and enhances efficiency by allowing firmware updates without requiring separate programming fixtures, thus streamlining the production process and enabling flexible firmware management.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026511558000001_ABST
    Figure 2026511558000001_ABST
Patent Text Reader

Abstract

A method for programming firmware into measuring devices (100, 300), comprising the step of assembling the measuring devices (100, 300), wherein the measuring devices (100, 300) include memories (118, 308, 318, 332) and executable processors (110, 310) for initiating firmware programming of the measuring devices (100, 300), and writing a firmware database containing multiple firmware images into the memories (118, 308, 318, 332). Each of the multiple firmware images contains a different firmware version and / or different configuration settings; it receives input from a firmware database indicating which of the multiple firmware images should be used to operate the measuring instrument (100, 300); and the processor (110, 310), in response to the received input, starts the operation of the measuring instrument (100, 300) using the designated firmware image from the firmware database when the measuring instrument (100, 300) is connected to a power supply.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method of programming a measuring device using firmware.

Background Art

[0002] Measuring devices such as electric meters, gas meters, and water meters include firmware for controlling the operation of the measuring device and programmable configuration settings. The measuring device can be programmed using a firmware image. The firmware image can include one or more programs, operating systems, device drivers, and other software necessary for the device to operate and execute the functions in use. During manufacturing, the measuring device can be programmed by writing a firmware image into the memory of the microprocessor of the measuring device.

[0003] Programming can be performed throughout the manufacturing process. For example, the chip may be directly programmed before being placed on a printed circuit board (PCB), and programming can be performed after the PCB is assembled, i.e., at the printed circuit board assembly (PCBA) level, and / or after the measuring device is fully assembled using, for example, optical, wired, or radio frequency (RF) communication. Usually, the measuring device can be programmed and reprogrammed multiple times during manufacturing. For example, an initial test firmware image can be programmed into the measuring device to facilitate testing of the device. The measuring device can be reprogrammed one or more times with a new firmware image in the measuring device before being shipped to the customer / end-user together with the final firmware image so that the customer / end-user can use it. The final firmware image programmed into the measuring device varies depending on the customer / end-user because not all customers use the same version of firmware and some customers require customized configuration settings.

[0004] In current manufacturing processes, to program measuring instruments, a PCBA (Printed Computer Absorbent Device) containing the processor and memory is typically placed in a fixture (such as a bed of nails fixture / tester) that uses an external programming device to program the processor. This process can take approximately 30 seconds per measuring instrument, requiring a dedicated step in the manufacturing process, increasing the manufacturing time required to produce measuring instruments, and necessitating the separation and inventory management of PCBAs based on the applied firmware version. This problem is further exacerbated when measuring instruments are mass-produced. In addition, each external programming device needs to be verified to ensure that the associated firmware image is correctly programmed.

[0005] The correct firmware needs to be programmed into the measuring device more quickly and efficiently. [Overview of the Initiative]

[0006] According to a first aspect of the present invention, a method for programming firmware into a measuring device is provided, and the method is The assembly of a measuring device, wherein the measuring device comprises a memory and an executable processor for initiating the programming of the firmware of the measuring device. Writing a firmware database containing multiple firmware images to the memory, wherein each of the multiple firmware images has a different firmware version and / or different configuration settings, The process involves receiving an input from the firmware database indicating which of the multiple firmware images should be used for the operation of the measuring device, The processor, when the measuring device is connected to a power supply, responds to the received input by using a specified one of the multiple firmware images from the firmware database to start the operation of the measuring device. A method for providing this.

[0007] Optionally, the method further comprises the processor dividing the memory into a plurality of slots, housing one of the plurality of firmware images in each slot, and operating the measuring device using the first firmware image stored in the first slot by default.

[0008] Optionally, the received input indicates that the measuring device needs to be operated using a second firmware image stored in a second slot of the memory, and the processor, in response to the input, starts operating the measuring device using the second firmware image.

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

[0010] Optionally, the measuring device includes a measuring module configured to collect and manage data related to a utility monitored by the measuring device during use, the measuring module comprising the processor and the memory.

[0011] Optionally, the measurement device further comprises an edge device including the memory and the processor, and a measurement module configured to collect and manage data related to utilities monitored by the measurement device during use, wherein the measurement module includes a measurement module memory, and the method further comprises In response to the input, copy one of the specified firmware images from the memory of the edge device to the instrument module memory, such that one of the firmware images is programmed into the instrument module memory. The operation of the measuring device is started using one of the plurality of firmware images stored in the measurement module memory, It is equipped with.

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

[0013] As an option, the above method further, Installing the assembled measuring device at a desired location to measure the amount of utility consumed by the measuring device, the installation including connecting the measuring device to a network, The communication device polls one or more measuring devices connected to the same network as the measuring device, and determines the firmware image programmed into one or more measuring devices. To instruct one or more measuring devices to program the measuring device with a firmware image from the firmware database that corresponds to at least one of the determined firmware images programmed into the measuring device, It is equipped with.

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

[0015] Optionally, if it is determined that the firmware image programmed for one or more of the measuring devices does not exist in the firmware database, The above method further, The communication device transmits a request for the firmware image programmed in one or more measuring devices to the server. The communication device receives the firmware image for programming the measuring device from the server, It is equipped with. [Brief explanation of the drawing]

[0016] [Figure 1] FIG. 1 shows a schematic diagram of an exemplary measuring device. [Figure 2] FIG. 2 shows a flowchart outlining an exemplary method of programming a firmware image into a measuring device. [Figure 3] FIG. 3 shows a schematic diagram of an exemplary measuring device. [Figure 4] FIG. 4 shows a flowchart showing an overview of an exemplary method of programming a firmware image into a measuring device. [Figure 5] FIG. 5 shows a schematic diagram of an exemplary utility measurement system. [Figure 6] FIG. 6 shows a flowchart outlining an exemplary method of programming a firmware image into a measuring device. **DETAILED DESCRIPTION OF THE INVENTION**

[0017] Disclosed herein is a method of programming a measuring device with a firmware image used by the measuring device when the measuring device is installed for use by an end user. The method comprises writing a firmware database comprising a plurality of firmware images to a memory of the measuring device. The firmware images of the firmware database may each be different. For example, each firmware image may comprise a different firmware version and / or different configuration settings. The firmware database may be written to the memory of the measuring device while assembling a printed circuit board (PCB) into a printed circuit board assembly (PCBA) of the measuring device.

[0018] The method further comprises determining, when the device is connected to a power supply, which of the plurality of firmware images in the firmware database the measuring device needs to use to operate the measuring device. The method may further comprise the measuring device starting the operation of the measuring device using one of the determined ones of the plurality of firmware images.

[0019] FIG. 1 shows an example of a measuring device 100. The measuring device 100 comprises a measurement module 102 and a communication module 104. Usually, the measurement module 102 and the communication module 104 are arranged / accommodated within the same measuring device 100, but may be implemented on different circuit boards and locally connected. One skilled in the art will understand that in alternative embodiments, the measurement module 102 and the communication module 104 may be arranged separately / in separate housings and connected, for example, via a wired connection.

[0020] The measurement module 102 is configured to manage and collect data regarding utilities. For example, when the measuring device is an electrical measuring device, in use, the measurement module 102 is configured to manage and collect data related to electricity, such as data indicating power consumption.

[0021] The measurement module 102 may comprise a memory 108 and a processor 110. The memory 108 may comprise non-volatile memory and / or volatile memory. A computer program may be stored in the memory 108. The computer program may comprise instructions for executing the methods disclosed herein. The computer program may be loaded into the memory 108 from a non-transitory computer-readable medium in which the computer program is stored. The measurement module 102 may further comprise a measurement circuit 112. The processor 110 is configured to execute one or more functions of the measurement circuit 112 by means of the computer program. The measurement circuit 112 may be configured to measure the consumed utility and store the consumption data in the memory 108.

[0022] Each of the memory 108, processor 110, and measurement circuit 112 communicates data with other components 108, 110, and 112 of the measurement module 102, and may also communicate data with the communication module 104 and its components. The measurement module 102 can be implemented as a combination of computer hardware and software. The memory 108 stores various programs / executable files executed by the processor 110 and also provides a storage unit for necessary data.

[0023] The communication module 104 is configured to facilitate data communication with one or more external devices, which may include other measuring instruments, controllers, and / or headend systems / command centers.

[0024] The communication module 104 may include a communication device 116. The communication device 116 may include an antenna and / or a receiver and transmitter such as a radio, or other devices that enable wired or wireless communication (e.g., RF communication). The communication device 116 may communicate data with other entities such as other measuring devices, controllers, and servers, and may be configured to send and receive data accordingly.

[0025] The communication module 104 may include a memory 118 and a processor 120. The memory 118 may include non-volatile memory and / or volatile memory. A computer program may be stored in the memory 118. The computer program may include instructions for performing the methods disclosed herein. The computer program may be loaded into the memory 118 from a non-temporary computer-readable medium on which the computer program is stored. The processor 120 is configured by the computer program to perform one or more functions of the communication device 116.

[0026] As those skilled in the art will understand, the measuring device 100 includes firmware that controls the operation of the measuring device 100. Typically, such firmware is written to the memory of the measuring device 100 during the manufacturing / assembly of the device. As outlined above, known methods for writing firmware to a device consist of connecting the device to a wired interface (usually at the circuit board level), such as a dedicated nail bed fixture, and using an external programming device to write the firmware to the memory 108 of the measuring module 102 of the measuring device 100 and program the processor 110. If it is necessary to upgrade the firmware during the manufacturing / assembly process, a similar process is usually performed. That is, the measuring device is reconnected to the dedicated nail bed fixture, and the previous firmware version is erased from memory using an external programming device, the new firmware version is written to memory 108, and the processor 110 is programmed. This process adds time to the manufacturing and assembly process, which can have a significant impact in the case of mass production / assembly of measuring devices.

[0027] If a different or updated version of firmware is required after the instrument has been installed for use at a customer site, the different or updated version of firmware is typically provided to the instrument via over-the-air (OTA) download. That is, the different / updated version of firmware is transmitted wirelessly to the installed instrument for download and programming. Again, over-the-air downloads typically take a considerable amount of time and are prone to network instability and resource issues.

[0028] The following describes the first method for programming a measuring device (such as measuring device 100) using a firmware image, outlined in Figure 2. This method allows for faster and more efficient programming and modification of firmware than the known methods outlined above.

[0029] (Step 202) A firmware database containing multiple firmware images is written to the memory of the measuring device 100. Each of the multiple firmware images consists of a different firmware version and / or different firmware and / or configuration settings.

[0030] In this particular example, the firmware database is written to the memory 108 of the measurement module 102. However, those skilled in the art will understand that in alternative configurations, the firmware database can be written to substantially any memory of the device that has available storage space to accommodate the firmware database. For example, the measurement device 100 may have separate external memory, such as memory provided by a data flash chip, and the firmware database may be written to the data flash chip memory.

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

[0032] 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 instrumentation module chip is assembled on the printed circuit board (PCB), or it can be written to memory 108 after the printed circuit board has been assembled using fixtures such as a bed of nail fixture (i.e., written to memory 108 after the PCBA is formed).

[0033] The firmware database may contain firmware images that operate the measurement module 102 and / or the communication module 104. In this example, the firmware image is responsible for operating the measurement module 102, and therefore the firmware database is written to the memory 108 of the measurement module 102; however, those skilled in the art will understand that a similar process can be applied using a firmware image to operate the communication module 104.

[0034] (Step 204) The measuring device 100 may be configured to operate using one of the firmware images in the firmware database.

[0035] An exemplary method is to divide memory 108 into multiple slots. Each slot of memory 108 constitutes one of several firmware images in the firmware database. Memory 108 can be divided into multiple slots based on the memory space available to accommodate the firmware database and the size of each firmware image contained within the firmware database. For example, if there is 4MB of storage in memory 108 to accommodate the firmware database and each firmware image is limited to 1MB, then memory 108 can be divided into four slots, each accommodating one 1MB firmware image. An exemplary method is to compress the firmware images stored in memory 108.

[0036] This method may further involve programming the measuring device 100 to operate using a first firmware image that is stored by default in the first of several slots.

[0037] For example, the bootloader of the measuring device 100, which contains the initial code stored in memory 108 and executed when the measuring device 100 is powered on, can be programmed to divide and handle memory 108 into the multiple slots described above. The bootloader is programmed to use the initial firmware image contained in the first slot of the multiple slots by default in order to operate the measuring device 100.

[0038] (Step 206) If the final firmware image required for use with the measuring device 100 is the initial firmware image, no further action is necessary. The measuring device 100 is installed at the customer site to measure utility consumption and operates according to the initial firmware image.

[0039] However, in some cases, the final firmware image that needs to be used by the measuring device 100 may differ from the initial firmware image that the measuring device 100 uses by default. Continuing the above example, the final firmware image that needs to be used by the measuring device 100 may be a firmware image located in a memory slot different from the first slot.

[0040] The measuring device 100 may receive a command to operate using a firmware image different from the initial firmware image. In response to the command, the measuring device may initiate an update and restart sequence, and may operate using a different firmware image upon restart.

[0041] For example, in response to a command, the bootloader code may be updated to specify that the instrument 100 should operate using a firmware image stored in a different slot of memory 108 than the first firmware image stored in the first slot of memory 108, for example, a second firmware image stored in the second slot of memory 108. The instrument 100 may be controlled to restart in response to the bootloader update, and upon restart, the instrument 100 will operate using a second firmware image contained in the second slot of memory 108 (as specified in the updated bootloader code).

[0042] This command can be issued at any time during the lifetime of the measuring device. For example, the command may be issued during the manufacturing / assembly process, or after the measuring device 100 has been installed in the field to measure utility consumption. 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 may be connected to an optical interface controller to adjust and configure it. While the measuring device 100 is connected to the optical interface controller, a command may be issued to the measuring device 100 to operate using a firmware image different from the initial firmware image. Alternatively, the command may be received wirelessly by the measuring device 100.

[0043] If further different firmware images are needed, this process can be repeated.

[0044] Advantageously, since all multiple firmware images are written to the memory 108 of the measurement module 102 of the measuring device 100 (or the alternative memory of the measuring device 100 in an alternative configuration), instructing operation based on another firmware image already stored in memory 108 only requires issuing a command as described above. This eliminates the need to repeatedly mount the measuring device 100 in a dedicated fixture for reflashing, copying, or reprogramming the firmware. Therefore, the measuring device can be manufactured and assembled more efficiently. In particular, no separate processing / manufacturing step is required to facilitate the programming of new firmware. Rather, a command can be issued to cause the measuring device 100 to operate based on another firmware image stored in memory.

[0045] As yet another example, measuring device 300 is shown in Figure 3. Measuring device 300 consists of a measuring module 302 and a communication module 304, similar to those described above with respect to measuring device 100. Therefore, these functions will not be described again here. They are identified in Figure 3 using their corresponding reference numbers. Thus, 302 is a measuring module including a memory 308, a processor 310, and a measuring circuit 312, and 304 is a communication module including a communication device 316, a memory 318, and a processor 320.

[0046] The measuring device 300 further comprises an edge device 330, which may be an edge intelligence device. The edge device 330 is configured to perform further functions that can be implemented as a separate software application 336. For example, the edge device can monitor the measured current and voltage waveform data in real time to determine anomalies in the waveform data. Anomalies in the waveform data may indicate power quality problems or connection and load problems in the grid.

[0047] The edge device 330 may include memory 332 and a processor 334. Memory 332 may include non-volatile memory and / or volatile memory. A computer program may be stored in memory 332. The computer program may include instructions for performing the methods disclosed herein. The computer program may be loaded into memory 332 from a non-temporary computer-readable medium on which the computer program is stored. The edge device 330 may further include at least one of a plurality of applications 336 installed thereon, a controller 338, a firmware copy device 340, and a firmware determination device 342. The processor 334 is configured by the computer program to perform one or more functions of the application 336, the controller 338, the firmware copy device 340, and the firmware determination device 342.

[0048] Each of the components of the edge device 330—memory 332, processor 334, application 336, controller 338, firmware copy device 340, and firmware determination device 342—communicates data 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. Memory 332 stores various programs / executable files executed by the processor 334 and also provides a storage unit for necessary data. The edge device 330 further communicates data with one or both of the measurement module 302 and the communication module 304, and their components.

[0049] The edge device 330 is located / housed within the same instrumentation 300 as the instrumentation module 302 and the communication module 304, but is mounted on a different printed circuit board and locally connected. Those skilled in the art will understand that in alternative embodiments, the edge device 330 may be located separately / in a separate housing from one or both of the instrumentation module 302 and the communication module 304 and connected, for example, via a wired / wireless connection. The edge device 330 may further comprise a transmitter and / or receiver configured to facilitate data communication between the edge device 330 and the instrumentation module 304 and / or the communication module 304 and / or other entities (such as other instrumentation devices or servers) via a wireless connection such as Wi-Fi® communication.

[0050] Advantageously, the edge device 330 typically has a larger memory capacity available to accommodate the firmware database than the memory 308 of the measurement module 302. A more detailed method for programming the measurement device (such as the measurement device 300) with a firmware image is described below and outlined in Figure 4. Therefore, for measurement devices equipped with edge devices such as the measurement device 300, it is advantageous to store the firmware database in the memory 332 of the edge device 330, and the associated firmware image can be copied to the memory 308 of the measurement module 302 for programming as needed.

[0051] A more detailed method for programming measuring devices (such as measuring device 300) using a firmware image is described below, and an overview is shown in Figure 4.

[0052] (Step 402) A firmware database containing multiple firmware images, similar to that described for the measuring device 100 above, is written to the memory of the measuring device 300. Each of the multiple firmware images included in the firmware database has a different firmware version and / or different firmware and / or configuration settings.

[0053] In this particular example, the firmware database is written to memory 332 of the edge device 330. As mentioned earlier, memory 332 of the edge device 330 typically has ample storage space available to accommodate the firmware database.

[0054] The firmware database may be written to the memory 332 of the measuring device 300 during its manufacture. The firmware database may also be written to the memory 332 of the measuring device 100 using a fastener such as a nail bed fastener. Alternatively, the firmware database may be written to the memory 330 using a wireless connection such as a Wi-Fi connection via a communication device 316.

[0055] 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 edge device 330 is assembled on the printed circuit board (PCB), or it can be written to memory 332 after the printed circuit board housing the edge device 330 has been assembled (i.e., after the PCBA has been formed), in the same manner as outlined in step 202 of the method above with respect to the measuring device 100.

[0056] The firmware database may include firmware images for operating the measurement module 302 and / or firmware images for operating the communication module 304.

[0057] (Step 404) A command is sent to the measuring device 300 indicating which of the multiple firmware images stored in the firmware database in the memory 332 of the edge device 330 should be programmed into the memory 308 of the measuring module 302.

[0058] In some cases, if the firmware database contains firmware images for the operation of both the measurement module 302 and the communication module 304, the command may indicate which of the multiple firmware images should be programmed into the memory 318 of the communication module 304, and / or which of the multiple firmware images should be programmed into the memory 308 of the measurement module 302.

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

[0060] (Step 406) The edge device 330 facilitates the copying of one of several firmware images specified in a command to a memory specified in the command (i.e., memory 308 of the measurement module 302 or memory 318 of the communication module 304) in response to a command. Specifically, the controller 338 of the edge device 330 controls the firmware copy device 340 in response to a received command to copy one of the specified firmware images to the specified memory.

[0061] If the command indicates that the first firmware image in the firmware database should be programmed into the memory 308 of the measurement module 302 and the second firmware image in the firmware database should be programmed into the memory 318 of the communication module 304, the controller 338 controls the firmware copy device 340 to copy the first firmware image into the memory 308 of the measurement module 302 and the second firmware image into the memory 318 of the communication module 304.

[0062] In this example, if the command indicates that one of several firmware images needs to be programmed into the memory 318 of the communication module 304, a skilled technician would understand that a similar process can be performed for the communication module 302.

[0063] One of the multiple firmware images is stored in the associated memory, i.e., memory 308, and when in use, the measuring device 300 operates using one of the multiple firmware images.

[0064] Copying one of several firmware images specified in a command may involve storing one of the firmware images in the volatile memory of the measurement module 302. One of the firmware images may be verified and / or certified. Once one of the firmware images is verified and / or certified, it is stored and programmed in the memory 308 (which is non-volatile memory or contains non-volatile memory) of the measurement module 102.

[0065] (Step 408) The next time the measuring device 300 is powered on / used, the measuring device 300 may operate using the firmware image stored in the memory 308 of the measuring module 302 and the firmware image stored in the memory 318 of the communication module 104.

[0066] Similar to the first method disclosed herein, since multiple firmware images are all written to the memory of the measuring device 300 (in this case, the memory 332 of the edge device 330), there is an advantage that to instruct the programming of the measuring module 302 and / or the communication module 304 based on the desired firmware image, only a command as outlined above needs to be issued. In response to this command, the required firmware image is programmed into the associated memory, eliminating the need to repeatedly connect the measuring device 300 to a dedicated fixture for firmware reflashing and reprogramming. The copying of the firmware image to the associated memory can be performed at any time the measuring device is connected to power, such as after the measuring device 300 has been installed in the field to measure utility consumption.

[0067] Figure 5 shows a network topography of a typical utility measurement system 500, which consists of multiple measuring devices (which may be measuring devices 300) installed in the field to measure utility. The utility measurement system 500 comprises a headend system 502, a backhaul network 504, and multiple collectors 506a-n (or root nodes). Communication between the headend system 502 and the multiple collectors 506a-n can be facilitated by the backhaul network 504. The backhaul network 504 can be a wired network (e.g., Ethernet or fiber optic cable) and / or a wireless network (e.g., a cellular network). Each collector 106a-n communicates data with multiple measuring devices 300a-n. In the specific example shown in Figure 1, collector 506a communicates data with measuring devices 300a-c, collector 506b communicates data with measuring devices 300e-f, and collector 506n communicates data with measuring devices 300g-n. Those skilled in the art will understand that while Figure 5 shows each collector 506a-n communicating with three measuring devices, this is merely an example, and any number of measuring devices can communicate with a particular collector. Each collector 506a-n can aggregate the data received from each measuring device 300a-n and transmit that data to the headend system 502 (for example, for billing purposes). Each collector 506a-n is a personal area network (PAN) coordinator, gateway, router, or other device capable of communicating with the headend system 502.

[0068] In an exemplary method, a command indicating which firmware image in the firmware database to program into the memory 308 of the measurement module 302 or the memory 318 of the communication module 304 may be based on polling other measurement devices connected to the same network (e.g., the same PAN) as the measurement device and determining which firmware images are programmed into those other measurement devices, as described below with reference to Figures 5 and 6.

[0069] (Step 602) The measuring device 300c may be installed on-site to measure the consumption of utilities. During installation, the measuring device 300c may perform a registration and assignment process and consequently be assigned to the collector 506a.

[0070] (Step 604) The measuring device 300c may poll other measuring devices 300a, 300b assigned to the collector 506a to determine the firmware images programmed into the memories 308a, 308b of the measuring modules 302a, 302b of each measuring device 300a, 300b and / or the firmware images programmed into the memories 318a, 318b of the communication modules 304a, 304b of each measuring device D300a, 300b. Alternatively, the measuring device 300c may poll other measuring devices within the geographical area of ​​a threshold, or all measuring devices including a common customer ID, and / or other measuring devices based on other criteria, and is not limited to polling only measuring devices assigned to a common collector.

[0071] Polling the measuring devices 300a and 300b may involve the controller 338c of measuring device 300c controlling the communication module 304c to send queries to the measuring devices 300a and 300b that include a request for data indicating which firmware images are programmed into the respective memories 308a, 308b and / or 318a, 318b of measuring devices 300a and 300b.

[0072] (Step 606) In response to the inquiry, the communication module 300c receives data from the measuring devices 300a and 300b indicating which firmware images are programmed into the respective memories 308a, 308b, and / or 318a and 318b of the measuring devices 300a and 300b.

[0073] The firmware determination device 342c may determine, based on data received from the measuring devices 300a and 300b, whether the firmware images programmed into the respective memories 308a, 308b, and / or 318a, 318b of the measuring devices 300a and 300b are stored in the firmware database of the measuring device 300c. For example, the data received from the measuring devices 300a and 300b may include a firmware ID or firmware version number, and the firmware determination device 342c may compare the received firmware ID / firmware version number from the measuring devices 300a and 300b with the firmware ID / version number associated with multiple firmware images stored in the firmware database of the measuring device 300c. Based on the comparison, the firmware determination device 342c determines whether a firmware image containing a matching firmware ID or firmware version number is included in the firmware database. If a matching firmware image is identified, the firmware determination device 342c determines that the matching firmware image should be programmed into the memory 308c of the measurement module 302c and / or the memory 318c of the communication module 304c.

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

[0075] Optionally, if the latest firmware version is not stored in the firmware database, the firmware determination device 342c then determines the latest firmware version from the data received from the measuring devices 300a and 300b, and then determines whether the latest firmware version is stored in the firmware database. If the latest firmware version is stored in the firmware database, the firmware determination device 342c may then determine that the latest firmware version needs to be programmed into the associated memories 306c and / or 318c of the measuring device 300c.

[0076] (Step 608) When the firmware determination device 342c determines which firmware image stored in the firmware database in the memory 332c of the edge device 330c to program into the memory 308c of the measurement module 302c and / or the memory 318c of the communication module 304c, the edge device 330c facilitates copying the determined firmware image to the associated memory 308c and / or 318c. This can occur in a manner similar to that described above in method step 406. For example, the controller 338c of the edge device 330c controls the firmware copy device 340c to copy the determined firmware image to the specified memory.

[0077] (Step 610) If the firmware determination device 342c determines, based on data received from the measuring devices 300a and 300b, that none of the firmware images programmed into the respective memories 308a, 308b, and / or 318a, 318b of the measuring devices 300a and 300b are stored in the firmware database of the measuring device 300c, the controller 338c may control the communication device 316c to send a request to the headend system 502 to identify which firmware version needs to be installed on the measuring device 300c. In response to the request, the headend system 502 may identify the required firmware version and initiate a wireless download of the required firmware image. The request may be sent to the headend system 502 via the collector 506a. The transmission may be made via a wired network (e.g., Ethernet or fiber optic cable) and / or a wireless network (e.g., a cellular network).

[0078] A similar process may be performed if the firmware determination device 342c determines that the latest firmware version used by at least one of the measurement devices 300a, 300b is not stored in the firmware database of measurement device 300c. For example, measurement device 300a may operate using a newer firmware version than measurement device 300b. If a firmware image corresponding to the firmware version stored in memory 308a or memory 318a of measurement device 300a does not exist in the firmware database of measurement device 300c, the controller 338c may control the communication device 316c to send a request to the headend system 502 for a wireless download of the firmware image stored in memory 308a or memory 318a of measurement device 300a. In some configurations, this request may also be sent even if a firmware image corresponding to an older firmware stored in measurement device 300b is stored in the firmware database of measurement device 300c.

[0079] Upon request, the necessary firmware image may be transmitted by the headend system 502, received by the measuring device 300c, and programmed into the associated memories 308c and 318c of the measuring device 300c.

[0080] The next time the measuring device 300c is powered on / used, the measuring device 300c may operate using the firmware image stored in the memory 308c of the measuring module 302c and / or the firmware image stored in the memory 318c of the communication module 304c.

[0081] In yet another configuration, if instrument 300c is installed at the site instead of polling other measuring devices 300a, 300b, controller 338c may control communication device 316c to send a request to headend system 502 indicating which firmware image should be programmed into memory 308c of measuring module 302c and / or memory 318c of communication module 304c. In response to the request, communication device 316c may receive a command from headend system 302 indicating which firmware image to program into one or more of memory 308c of measuring module 302c and memory 318c of communication module 304c. If the firmware image is stored in the firmware database, firmware copy device 340c may copy the specified firmware image to the associated memory using the method described above. If the firmware image is not stored in the firmware database, headend system 502 may initiate a wireless download of the required firmware image so that it can be stored in the associated memory of measuring device 300c.

[0082] A computer program may be configured to provide any of the methods described above. A computer program may be provided on a computer-readable medium. A computer program may be a computer program product. A product may include a non-temporary computer-usable storage medium. A computer program product may have computer-readable program code embedded in a medium configured to perform the method. A computer program product may be configured to cause at least one processor to perform some or all of the method.

[0083] This specification describes various methods and apparatuses with reference to block diagrams or flowcharts of computer implementation methods, apparatuses (systems and / or devices) and / or computer program products. It is understood that blocks in block diagrams and / or flowcharts, and combinations of blocks within block diagrams and / or flowcharts, can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions are provided to processor circuits of general-purpose computer circuits, dedicated computer circuits, and / or other programmable data processing circuits, so that instructions executed via the computer's processor and / or other programmable data processing device can translate and control transistors, values ​​stored in memory locations, and other hardware components in such circuits to perform the functions / operations specified in the block diagrams and / or flowchart blocks, thereby generating a machine such that the instructions create means (functionality) and / or structures for performing the functions / operations specified in the block diagrams and / or flowchart blocks.

[0084] Computer program instructions can also be stored in a computer-readable medium that can instruct a computer or other programmable data processing device to function in a particular way, and as a result, instructions stored in a computer-readable medium can generate a product containing instructions that implement the functions / operations specified in block diagrams and / or flowchart blocks.

[0085] Tangible, non-temporary computer-readable media may include electronic, magnetic, optical, electromagnetic, or semiconductor data storage systems, apparatus, or devices. More specific examples of computer-readable media include portable computer diskettes, random-access memory (RAM) circuits, read-only memory (ROM) circuits, erasable programmable read-only memory (EPROM or flash memory) circuits, portable compact disc read-only memory (CD-ROM), and portable digital video disc read-only memory (DVD / Blu-ray®).

[0086] Computer program instructions are loaded into a computer and / or other programmable data processing device, and a series of operational steps are executed on the computer and / or other programmable device to generate a computer implementation process, where the instructions executed on the computer or other programmable device provide steps for implementing the functions / operations specified in the block diagram and / or flowchart blocks.

[0087] Therefore, the present invention can be implemented in hardware and / or software (including firmware, resident software, microcode, etc.) that runs on a processor, and these can be collectively referred to as “circuits,” “modules,” or variations thereof.

[0088] Furthermore, it should be noted that in some alternative implementations, the functions / operations described within a block may occur in a different order than those described in the flowchart. For example, two consecutively displayed blocks may actually be executed almost simultaneously, and depending on the related functions / operations, blocks may be executed in reverse order. In addition, the functionality of a particular block in a flowchart and / or block diagram may be split into multiple blocks, and the functionality of two or more blocks in a flowchart and / or block diagram may be at least partially integrated. Finally, other blocks may be added / inserted between the illustrated blocks.

[0089] Those skilled in the art will be able to conceive of other embodiments without departing from the scope of the attached claims.

Claims

1. A method for programming the firmware of a measuring device, The aforementioned method, The assembly of the measuring device, wherein the measuring device comprises a memory and a processor executable for initiating the programming of the firmware of the measuring device. Writing a firmware database containing multiple firmware images to the memory, wherein each of the multiple firmware images has a different firmware version and / or different configuration settings. The process involves receiving an input from the firmware database indicating which of the multiple firmware images should be used for the operation of the measuring device, The processor, when the measuring device is connected to a power supply, responds to the received input by using a specified one of the multiple firmware images from the firmware database to start the operation of the measuring device. A method for providing this.

2. The processor divides the memory into multiple slots, and each slot accommodates one of the multiple firmware images. The measuring device is operated using the first firmware image stored in the first slot by default, The method according to claim 1, further comprising:

3. The received input indicates that the second firmware image stored in the second slot of the memory should be used to operate the measuring device. The processor, in response to the input, starts the operation of the measuring device using the second firmware image. The method according to claim 2.

4. The firmware database is written to the memory during the assembly of the measuring device. The method according to any one of claims 1 to 3.

5. The measuring device comprises a measuring module configured to collect and manage data relating to utilities that the measuring device monitors during use. The measurement module comprises the processor and the memory. The method according to any one of claims 1 to 4.

6. The measurement device further comprises an edge device having the memory and the processor, and a measurement module configured to collect and manage data relating to utilities monitored by the measurement device during use, wherein the measurement module includes a measurement module memory. The aforementioned method, In response to an input, one of the specified firmware images is copied from the edge device's memory to the measurement module memory, and one of the firmware images is programmed into the measurement module memory. The operation of the measuring device is started using one of the plurality of firmware images stored in the measurement module memory, The method according to claim 1, further comprising:

7. The assembled measuring device further comprises a communication device configured to receive and transmit data. The method according to any one of claims 1 to 6.

8. The aforementioned method, The assembled measuring device is to be installed in a desired location to measure the amount of utility consumed by the measuring device, and the installation includes connecting the measuring device to a network. The communication device polls one or more of the measuring devices connected to the same network as the measuring device, and determines the firmware image programmed into one or more of the measuring devices. To instruct one or more of the measuring devices to program the measuring device with a firmware image from the firmware database that corresponds to at least one of the determined firmware images programmed into the measuring device, The method according to claim 7, further comprising:

9. The aforementioned method, The processor determines whether one or more of the firmware images programmed for the measuring devices exist in the firmware database. The method according to claim 8, further comprising:

10. If it is determined that the firmware image programmed into one or more of the aforementioned measuring devices does not exist in the firmware database, The aforementioned method, The communication device transmits a request for the firmware image programmed in one or more measuring devices to the server. The communication device and the server receive a firmware image for programming the measuring device, The method according to claim 9, further comprising: