Selective firmware updates for dental devices

The described system addresses inefficiencies in dental clinic firmware updates by using a gateway to selectively deliver updates to outdated devices, optimizing network usage and reducing equipment load.

JP2026510671APending Publication Date: 2026-04-10A DEC INC
View PDF 0 Cites 1 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
A DEC INC
Filing Date
2024-03-08
Publication Date
2026-04-10

AI Technical Summary

Technical Problem

Dental clinics face inefficiencies in managing firmware updates for numerous devices, leading to unnecessary network bandwidth consumption and delayed updates due to the lack of selective update processes.

Method used

A system utilizing a gateway to communicate with an update service, which queries device firmware revisions and constructs update packages only for outdated devices, reducing the need for large image downloads and optimizing network usage.

Benefits of technology

This approach saves network bandwidth and reduces equipment burden by ensuring only necessary firmware updates are delivered, improving the efficiency of firmware update processes in dental treatment rooms.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026510671000001_ABST
    Figure 2026510671000001_ABST
Patent Text Reader

Abstract

A dental practice with multiple networked devices may only require firmware updates for a subset of the devices. In one embodiment, multiple networked devices are queried to determine the latest firmware revision for each device. The update service then constructs an update package containing only the firmware update images for the devices determined to have outdated firmware, thereby saving time and network bandwidth. Other embodiments may be described and / or claimed.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001]

[0001] The disclosed embodiments relate to firmware updates for hardware devices, and more particularly to providing selective firmware update packages for networked devices within a dental treatment room.

Background Art

[0002]

[0002] Dental clinics use a variety of specialized equipment necessary for dentists. The equipment may include adjustable chairs, dental lights, sterilizers, rotary handpieces, ultrasonic scalers, lasers, intraoral cameras, digital scanners, suction devices, and various dental instruments such as impression trays, as well as dental units, vacuum pumps, compressors, and air purifiers and other support mechanical equipment. These various devices may include both mechanical and electronic components that can be used to control and adjust the functions of various parts and other dental equipment. Moreover, the electronic components are increasingly coming to include one or more central processors such as microcontrollers that execute software.

[0003]

[0003] As is common in systems controlled by a combination of hardware and software, in the context of a microcontroller, software in the form of firmware may typically need to be updated periodically. Updates can provide fixes for identified bugs, performance improvements, expanded capabilities, and improved compatibility. The manufacturer of a given device is typically responsible for the development and distribution of firmware updates. Depending on the implementation of a given hardware, firmware updates may include binary image files that are written to non-volatile memory associated with the microcontroller or central processor.

[0004]

[0004] The background information provided herein is intended to provide an overall context for the disclosure. Unless otherwise indicated herein, the material described in this section is not prior art to the claims of this application and will not be deemed prior art by being included in this section. [Brief explanation of the drawing]

[0005]

[0005] Embodiments will be readily understood by the modes for carrying out the invention described below in conjunction with the accompanying drawings. For the sake of convenience in this explanation, similar reference figures indicate similar structural elements. Embodiments are shown in the figures of the accompanying drawings as examples, not limitations.

[0006] [Figure 1]

[0006] Figure 1 shows an exemplary networked system including a dental treatment room with updatable hardware, according to various embodiments.

[0007] [Figure 2]

[0007] Figure 2 shows a process flow for selectively updating the firmware of hardware associated with a dental treatment room, according to various embodiments.

[0008] [Figure 3]

[0008] Figure 3 is a flowchart of the operation of exemplary methods that may be performed by an update service to provide a selective firmware update image, according to various embodiments.

[0009] [Figure 4]

[0009] Figure 4 is a flowchart of the operation of an exemplary method that may be performed by a gateway communicating with an update service to provide a selective firmware update image, according to various embodiments.

[0010] [Figure 5]

[0010] Figure 5 is an exemplary computer block diagram that may be used to implement some or all of the components of the disclosed systems and methods in various embodiments.

[0011] [Figure 6]

[0011] Figure 6 is a block diagram of a computer-readable storage medium that may be used to implement some of the components of the systems or methods disclosed herein, according to various embodiments. [Modes for carrying out the invention]

[0012]

[0012] In the embodiments for carrying out the invention described below, references are made to the accompanying drawings which form part of this specification, where similar figures throughout the drawings indicate similar parts, and where the drawings illustrate possible embodiments. It should be understood that other embodiments may be used without departing from the scope of this disclosure, and that structural or logical modifications may be made. Therefore, the embodiments for carrying out the invention described below should not be construed as restrictive, and the scope of the embodiments is defined by the appended claims and equivalents of the claims.

[0013]

[0013] Aspects of the present disclosure are disclosed in the accompanying description. Alternative embodiments and equivalents of alternative embodiments of the present disclosure may be devised without departing from the spirit or scope of the present disclosure. Note that similar elements disclosed below are indicated by the same reference numerals in the drawings.

[0014]

[0014] Various actions may be described in order as multiple separate acts or actions, which is the most useful way to understand the claimed subject matter. However, the order of description should not be interpreted as meaning that these actions are necessarily dependent on an order. In particular, these actions may not be performed in the order presented. The described actions may be performed in a different order than in the described embodiments. In further embodiments, various further actions may be performed and / or the described actions may be omitted.

[0015]

[0015] For the purposes of this disclosure, the phrase "A and / or B" means (A), (B), or (A and B). For the purposes of this disclosure, the phrase "A, B, and / or C" means (A), (B), (C), (A and B), (A and C), (B and C), or (A, B, and C).

[0016]

[0016] This description may use the phrases “in one embodiment” or “in one embodiment,” which may each refer to one or more of the same or different embodiments. Furthermore, terms such as “equipment,” “includes,” and “have” as used in reference to embodiments of this disclosure are synonyms.

[0017]

[0017] In some figures, multiple elements of the same or similar type may be designated with a, b, c, etc., such as 100a, 100b, 100c. Such elements may be referred to collectively or generically by a callout number, for example, 100 only, to which a letter is added when a particular one of the elements is the subject.

[0018]

[0018] As used herein, the term “circuit” means, part of, or may include, an application-specific integrated circuit (ASIC), an electronic circuit, a processor (shared, dedicated, or group) and / or memory (shared, dedicated, or group) that runs one or more software or firmware programs, a combinational logic circuit, and / or other suitable components that provide the functions described.

[0019]

[0019] Various devices in modern dental clinics may be controlled by a microcontroller or similar processor that runs software. Such software may be considered firmware because, when targeting dedicated hardware, it is frequently written to the non-volatile memory associated with the microcontroller. Like any type of software, firmware may be updated periodically for a variety of reasons, such as bug fixes, security patches, and feature improvements. Just as microcontroller circuits are typically designed to operate on specific hardware, as opposed to general-purpose computers, firmware is similarly written specifically for a particular hardware environment. Thus, in contrast to a general-purpose operating system that can operate on an array of different hardware environments by loading the appropriate device drivers, given firmware is tied to that hardware environment.

[0020]

[0020] Due to the typical close integration between a microcontroller and its hardware environment, firmware images are often specific to a given device. A dental practice may have dozens of different devices with microcontrollers that may require updates. The update process varies, and some existing processes require going to each device individually and manually updating the firmware. To avoid this inconvenience, modern equipment increasingly supports online or network updates, which allow firmware images to be pushed to the devices over a network and the devices to be updated remotely. Firmware images may be transferred from a remote update service to the dental practice over a network.

[0021]

[0021] Firmware updates for various devices may be developed and released at different intervals. For a given clinic, it is unlikely that firmware images for all devices will be updated simultaneously. Furthermore, devices may not be updated in a timely manner each time a firmware update is released for various reasons, such as when some hardware needs to be replaced and the replacement is shipped before the release of the latest firmware. As a result, some devices in a clinic may have the latest firmware, while others may need updating. Therefore, an update service that may have an inventory list of devices for a given clinic may not know which devices actually need updating. The update service may, accordingly, generate a file containing firmware images for all devices in the clinic, regardless of whether a given device actually needs updating. In clinics with a considerable number of devices, the image size for the update package may be large, and downloading it will consume considerable time and network bandwidth. Similarly, if an update service provides images to a relatively large number of clinics, the update service may require considerable network bandwidth.

[0022]

[0022] The disclosed embodiments include a system and method for providing selective updates to devices in a dental treatment room. First, by querying the devices in the treatment room for the current firmware revision of each device, the firmware revisions can be used to determine which devices are outdated. Once determined, the update service can construct an update package containing only the firmware images for the devices determined to be outdated. This can save network bandwidth and download time, as well as reduce the burden on the equipment in the treatment room, which does not need to process excessively large update images. Other possible variations and embodiments are disclosed below.

[0023] For purposes of the present disclosure, a "dental treatment room" is a communicative association rather than a physical one, and should be understood to mean any number of devices network-connected to a given gateway, as described below, regardless of whether a given device is actually within a physical dental treatment room. A device may be located in a physical room such as a dental treatment room and / or may be located in another physical area or room such as a machine room, a cleaning / sterilization area, etc. A gateway may be located in the same or a different physical location as some or all of the associated devices. In some embodiments, a single room (such as a server room) may house multiple gateways such as some or all of the gateways for a given dental clinic. In other embodiments, a gateway may be connected to devices located in different physical locations such as different dental clinics. In still other embodiments, a dental treatment room may include multiple gateways. If multiple gateways are connected to the same set of devices, the multiple gateways can coordinate firmware updates together in any suitable manner, e.g., a subset of devices may be assigned to each gateway or each gateway may be capable of updating all devices, and updates are processed regardless of which device first contacts the update service.

[0024]

[0024] FIG. 1 shows an exemplary system 100 that supports selective updates from an update service to various devices within a dental treatment room. In the depicted embodiment, system 100 includes a gateway 102 that functions as an intermediary between various dental equipment devices 104a, 104b, and 104c (collectively, devices 104) and an update service 108.

[0025]

[0025] In an embodiment, the gateway 102 functions as a central point of communication between the dental device 104 and the update service 108. As can be seen from FIG. 1, various devices 104 communicate with the gateway 102. The gateway 102 can function as a bridge for converting and processing data from external sources such as the update service 108 and internal sources such as the devices 104. In an embodiment, the gateway 102 is involved in pushing the firmware update image received from the update service 108 to each of the devices 104. The gateway 102 can also function as an alternative to the update service 108 and can adjust the responses to inquiries that can be received from the update service 108. In some embodiments, the gateway 102 can determine which device 104 requires a firmware update, as will be described in more detail below with respect to FIG. 4.

[0026]

[0026] The gateway 102 may be implemented as a certain type of computer device 1500 (FIG. 5) that runs specialized software, as dedicated hardware, or as a combination of both. Although depicted as a single unit, in other embodiments, the gateway 102 may be implemented as several components that may include a cloud service or middleware connected via a data link 110. In some embodiments, the gateway 102 may be integrated as part of one of the devices 104. For example, the dental chair 104c may include a control interface, and the control interface or user interface may also provide the functions of the gateway 102 and function as the gateway 102. In other embodiments, the functions of the gateway 102 may be provided by an interface board within one of the devices 104.

[0027]

[0027] In addition to firmware updates, gateway 102 can further perform data collection from various devices 104, such as obtaining performance metrics, diagnostics, system status, error codes, statistical data, etc., and providing such data to remote services for subsequent digestion and distribution. Remote services can aggregate information from several different gateways 102 that may be under common control. For example, a dental practice may have multiple clinics spread across one or more specific geographical locations. Various gateways 102 can collect data from their respective connected devices 104 and provide this information to remote services, which can then provide visibility into the information to users such as clinic administrators, administrators of given locations, etc.

[0028]

[0028] As described above, various devices 104 may be located in a given physical dental treatment room or elsewhere within a dental practice or other dental treatment facility, and may be common to multiple treatment rooms. In the described embodiment, device 104a may be a machine located in a machine room, such as a vacuum pump or compressor, shared among multiple physical treatment rooms. Device 104b may be a remote workstation connected to a single physical treatment room or multiple physical treatment rooms. Device 104c may be a dental chair that forms the basis of a given physical treatment room. Furthermore, several devices 104 may be attached to the dental chair, device 104c. For example, a dental chair may include dental appliances, various electric dental instruments, dental lights, urn holders, etc., each of which may have a microcontroller implemented that accepts firmware updates. Dental appliances, electric dental instruments, dental lights, urn holders, etc., may each be considered a device 104. Other embodiments may have different, fewer, or more devices 104. Furthermore, in some embodiments, a given device 104 may communicate with multiple gateways 102. In some embodiments, a given gateway 102 may be connected to several devices, in addition to device 104, that do not support firmware updates by gateway 102, for example, devices that are not upgradable, do not use firmware, and / or require a manual or physical update process (such as using a USB stick or other physically attached storage). Device 104 should be understood to refer only to devices connected to gateway 102 that support firmware updates by gateway 102.

[0029]

[0029] As shown in Figure 1, data links 106a, 106b, and 106c (collectively, data link 106) may be established between each device 104 and the gateway 102. In embodiments, data link 106 can provide bidirectional (two-way) communication with the gateway 102. Each data link 106 may be used to exchange information with the gateway 102 such as device identification information, device firmware revision, and instructions for transferring firmware images. Data link 106 may be implemented via any suitable network technology. In some embodiments, data link 106 is established via a CAN bus, which links each of the devices 104 to the gateway 102 and / or to each other. It should be understood that Figure 1 is essentially logical and does not depict an actual topology or network configuration. In this regard, data link 106 is logically shown as a point-to-point for data exchange. The actual topology and interconnection between the devices 104 and the gateway 102 may vary depending on the requirements of a given implementation.

[0030]

[0030] With respect to the gateway 102, data link 110 may be used to exchange information including the aforementioned device identification information, firmware revision, and selective firmware image with the update service 108. It should be understood that in some embodiments, each data link 106 and / or 110 may be temporary, established and used only when necessary, and disconnected during downtime, while in other embodiments, one or more data links 106 and / or 110 may be continuously established. In some embodiments, data link 110 may be a local area network, a wide area network, and / or the internet, and the update service 108 may be accessible via the internet.

[0031]

[0031] The update service 108 may be implemented on a remotely located server or cluster of servers, or as part or all of a data center or an internet-accessible cloud service. As described herein, in embodiments, the update service 108 can determine which devices 104 in the treatment room require firmware updates and construct selective update packages, as described below with respect to Figure 3. In embodiments, the update service 108 may be owned and / or operated by the manufacturer of the dental equipment in the treatment room. Furthermore, although the system 100 is shown as having only a single update service 108, it should be understood that the system 100 may include multiple different update services, for example, if the devices 104 are provided by different manufacturers, distributors, or other parties.

[0032]

[0032] Figure 2 shows a process flow 200 for providing a selective firmware update image to the treatment room. The process flow 200 may be performed as part of an interaction between an update service, a gateway, and a treatment room device, such as the gateway 102, device 104, and update service 108 in Figure 1 above.

[0033]

[0033] In process flow 200, treatment room 202 includes a gateway 204 that communicates with devices 206a, 206b, and 206c via a local network 218. As described above with respect to Figure 1, the local network 218 may be a CAN bus or other technology suitable for a given embodiment. Treatment room 202 communicates with update service 208 via a network 212. Network 212 may be a local area network, a wide area network, the Internet, or a combination of the above. Network 212 enables gateway 204 in treatment room 202 to receive update packages 210 from update service 208. Update service 208 may include an update database 214 that can hold firmware update images along with information about the latest firmware revisions for some or all devices for which update service 208 provides firmware updates. It should be further understood that in some embodiments, the update database 214 may be located away from update service 208, and the update database 214 can be accessed via a wide area network such as the Internet or a private network. In some such embodiments, the update database 214 may be provided as an internet-accessible cloud service or as a remotely accessible service hosted by a third party.

[0034]

[0034] During operation, the update service 208 may, in some embodiments, query the gateway 204 for a list of firmware revisions for each of the devices 206 in the treatment room 202. As can be seen from the figure, the gateway 204 has firmware revision 1.1, device 206a has firmware revision 3.2, device 206b has firmware revision 1.6, and device 206c has firmware revision 2.3. These revision numbers may be provided to the update service 208 by the gateway 204 via the network 212. In other embodiments, to give a possible scenario, the update server 208 may similarly or alternatively query the gateway 204 to determine whether a particular or specific type or model of device 206 of interest is installed, for example, if a critical firmware update is available for a particular model or type of device and it is desirable to push out the update as quickly as possible. For example, the update server 208 can query the gateway 204 to determine whether a compressor is connected to the gateway 204, whether a particular model of dental chair is connected to the gateway 204, or any combination of type / manufacturer / model.

[0035]

[0035] Upon receipt, the update service 208 can look up the update database 214. As shown in Figure 2, the update database 214 includes firmware revision 216a for gateway 204 of 1.1, firmware revision 216b for device 206a of 3.3, firmware revision 216c for device 206b of 1.6, and firmware revision 216d for device 206c of 2.3. As can be seen from the figure, only device 206a is outdated. Device 206a has firmware revision 3.2, and the corresponding latest firmware revision 216b is 3.3. As a result, the update service 208 prepares a firmware update package 210 containing only firmware revision 216b, since all other devices 206a, 206c, and gateway 204 have the latest firmware revision. The update service 208 accordingly sends the update package 210 to the treatment room 202 for installation via gateway 204.

[0036]

[0036] Figure 3 shows the operation of exemplary Method 300, which may be performed by an update service such as update service 108 (Figure 1) or update service 208 (Figure 2) in various embodiments. In some embodiments, Method 300 may be performed on a system such as System 100. In embodiments, some parts of Method 300 may be performed by update service 108, and other parts of Method 300 may be performed by other components of System 100 such as gateway 102. The various operations of Method 300 may be performed in whole or in part, and may be performed in an order different from that depicted, depending on the needs of a given implementation. Depending on the details of a given embodiment, some operations may be omitted or modified (even if not explicitly shown as such), and / or additional operations may be added.

[0037]

[0037] In operation 302, the update service sends a query to a gateway, such as gateway 102 (Figure 1) or gateway 202 (Figure 2), to obtain a list of firmware revisions installed on each device, such as device 104 (Figure 1), that is communicating with the gateway over the network. The query may be in any appropriate format for signaling to the gateway. Operation 302 is not necessarily performed and is therefore shown with a dashed line, and in some embodiments, the gateway may periodically and automatically send a list of firmware revisions to the update service without requiring an initial query from the update service. In other embodiments, the query may also include a request to identify each device, for example, a model number, when the firmware revision does not uniquely identify the type or model of the device, or when the update service does not have a list of specific devices installed in the treatment room associated with the gateway. In yet another embodiment, the update service may send a query to the gateway to identify whether one or more specific device types or models of devices are installed in the treatment room, and if so, to obtain the firmware revisions of the devices.

[0038]

[0038] In operation 304, a list of firmware revisions is received from the gateway by the update service. In some embodiments, the list may include firmware revisions for all devices attached to the gateway. In other embodiments, such as when the gateway can determine which devices have older firmware revisions, the list may be a list of only the devices that require a firmware image update.

[0039]

[0039] In operation 306, in some embodiments, the update service determines which devices have an older firmware revision. The update service may look up a database that enumerates the latest firmware revisions for all devices. In some embodiments, the database may be accessed using a device identifier as a lookup, and the resulting firmware revision is compared with the firmware revision received from the gateway. In other embodiments, the update service may have a previously stored list of all devices associated with the gateway, and can use this list to determine the latest firmware revision and compare it with the list received from the gateway. As described above, in other embodiments, operation 306 may be performed at least partially by the gateway.

[0040]

[0040] In operation 308, when a device with an older firmware revision is identified, the update service constructs an update package containing only the firmware image for the older device, if either device is determined to be older. The newest device does not have an image included in the update package. The package may be in any suitable format that allows transmission within available bandwidth and can be used by the gateway to extract the firmware image. In embodiments, the firmware image is in a format suitable for the target device. Once the update package is constructed, in some embodiments, the update package is sent to the treatment room gateway in operation 310 for installation on the associated device. In other embodiments, the gateway may be provided with a resource locator (such as a URI) by the update service, and the gateway then downloads the update package from the source indicated by the resource locator.

[0041]

[0041] Figure 4 shows exemplary operation of Method 400, which may be performed by a gateway such as Gateway 102 (Figure 1) or Gateway 202 (Figure 2) according to various embodiments. In some embodiments, Method 400 may be performed on a system such as System 100. For example, some parts of Method 400 may be performed by components of System 100, such as Update Service 108 and / or Gateway 102, depending on the details of a given implementation. Various operations of Method 400 may be performed in whole or in part, and may be performed in a different order than that described, depending on the needs of a given implementation. Depending on the details of a given embodiment, some operations may be omitted or modified (even if not explicitly shown as such), and / or additional operations may be added.

[0042]

[0042] In operation 402, the gateway receives a query from an update service, such as update service 108 or 208, requesting a list of firmware revisions for some or all devices connected to the gateway. How the query is structured depends on the details of a given implementation. In some embodiments, the gateway may simply repeat or broadcast the request from the update service to all devices across the network and then relay the response to the update service. As described above with respect to method 300, in some embodiments, the query may also include a request for a device identifier, such as to determine the device model. Furthermore, in some embodiments, operation 402 may be omitted, such as when the gateway initiates an update request, and the gateway may simply send a list of firmware revisions without first receiving a query from the update service. In other embodiments, a middleware service or application may coordinate requests between the gateway and the update service, including receiving an update request from the gateway, receiving an update package from the update service, and providing the gateway with the update package or the location of the package. In yet another embodiment, a user, such as a staff member or administrator of a dental clinic, may manually start or request the gateway to initiate a request and update of device firmware.

[0043]

[0043] In operation 404, the gateway may discover devices attached to the gateway via the network and proceed to query each device to determine the firmware revision of each device. Operation 404 may be unnecessary depending on the embodiment and is therefore represented by a dashed line. In some embodiments, the gateway may already be aware of all devices attached to the network, or may query to determine whether any devices have been added or removed. The query may also request each device to provide an identifier indicating the device model, serial number, and / or any other relevant identification information, if such information is required and / or the gateway does not store such information. The query to determine the firmware revision may be made in response to receiving a query from the update service in operation 402, or it may be made on a scheduled or ad-hoc basis without first receiving a query from the update service.

[0044]

[0044] In operation 406, the gateway sends a list of firmware revisions to the update service. In some embodiments, a complete list of firmware revisions for all devices may be sent to the update service. In other embodiments, the gateway may have access to a list of the latest firmware revisions, which may be stored locally on the gateway or available via a remote server such as the update service. If so, the gateway may be able to compare the firmware revision from each device with the list of the latest firmware revisions to determine which devices are outdated. The gateway may then send a list of only the outdated devices to the update service.

[0045]

[0045] In operation 408, the gateway receives an update package from the update service that contains only firmware update images for devices with older firmware revisions. Upon receipt, in operation 410, the gateway pushes the update images to the older devices. The mechanism by which the gateway updates each older device depends on the details of a given implementation, including the capabilities of the gateway and how specific devices must be updated.

[0046]

[0046] Figure 5 shows an exemplary computer device 1500 that may be used by the apparatus and / or methods described herein in various embodiments. As shown, the computer device 1500 may include several components, such as one or more processors 1504 (one is shown) and at least one communication chip 1506. In various embodiments, one or more processors 1504 may each include one or more processor cores. In various embodiments, one or more processors 1504 may include hardware accelerators to complement one or more processor cores. In various embodiments, at least one communication chip 1506 may be physically and electrically coupled to one or more processors 1504. In further implementations, the communication chip 1506 may be part of one or more processors 1504. In various embodiments, the computer device 1500 may include a printed circuit board (PCB) 1502. In these embodiments, one or more processors 1504 and the communication chip 1506 may be arranged on the PCB 1502. In alternative embodiments, various components may be joined without using PCB1502.

[0047]

[0047] Depending on the application of the computer device 1500, the computer device 1500 may include other components that can be physically and electrically coupled to the PCB 1502. Other components may include, but are not limited to, a memory controller 1526, volatile memory (e.g., dynamic random access memory (DRAM) 1520), non-volatile memory such as read-only memory (ROM) 1524, flash memory 1522, a storage device 1554 (e.g., a hard disk drive (HDD)), an I / O controller 1541, a digital signal processor (not shown), a cryptographic processor (not shown), a graphics processor 1530, one or more antennas 1528, a display, a touchscreen display 1532, a touchscreen controller 1546, a battery 1536, an audio codec (not shown), a video codec (not shown), a Global Positioning System (GPS) device 1540, a compass 1542, an accelerometer (not shown), a gyroscope (not shown), a depth sensor 1548, a speaker 1550, a camera 1552, and a mass storage device (not shown) (such as a hard disk drive, solid state drive, compact disc (CD), or digital versatile disc (DVD)).

[0048]

[0048] In some embodiments, one or more processors 1504, flash memory 1522, and / or storage device 1554 may include associated firmware (not shown) that stores programming instructions configured to enable the computer device 1500 to practice all or selected aspects of the system 100, process flow 200, method 300, and / or method 400 described herein in response to the execution of programming instructions by one or more processors 1504. In various embodiments, these aspects may be implemented using hardware separate from one or more processors 1504, flash memory 1522, or storage device 1554, either as an addition or alternative.

[0049]

[0049] The communication chip 1506 can enable wired and / or wireless communication for data transfer to and from the computer device 1500. The term “wireless” and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communication channels, etc., that can communicate data via the use of modulated electromagnetic radiation through a non-solid medium. The term does not mean that the device in question does not include any wiring, however, in some embodiments the device in question may not include any wiring. The communication chip 1506 may implement any of several wireless standards or protocols, including, but not limited to, IEEE 802.20, Long-Term Evolution (LTE), LTE-A, General-Purpose Packet Radio Service (GPRS), Evolution Data Optimized (Ev-DO), Advanced High-Speed ​​Packet Access (HSPA+), Advanced High-Speed ​​Downlink Packet Access (HSDPA+), Advanced High-Speed ​​Uplink Packet Access (HSUPA+), Global System for Mobile Communications (GSM), Enhanced Data Rate for GSM Evolution (EDGE), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Digital Extended Cordless Telecommunications (DECT), Worldwide Interoperability for Microwave Access (WiMAX), Bluetooth, their derivatives, and any other wireless protocols designated as 3G, 4G, 5G, and later. The computer device 1500 may contain multiple communication chips 1506. For example, the first communication chip 1506 may be dedicated to shorter-range wireless communication such as Wi-Fi and Bluetooth, while the second communication chip 1506 may be dedicated to longer-range wireless communication such as GPS, EDGE, GPRS, CDMA, WiMAX, LTE, and Ev-DO.

[0050]

[0050] In various implementations, the computer device 1500 may be a laptop, netbook, notebook, ultrabook, smartphone, computer tablet, personal digital assistant (PDA), desktop computer, smart glasses, headset, or server. In further implementations, the computer device 1500 may be any other electronic device that processes data.

[0051]

[0051] As will be understood by those skilled in the art, the Disclosure may be embodied as a method or a computer program product. Thus, in addition to being embodied in hardware as set forth above, the Disclosure may take the form of entirely software embodiments (including firmware, resident software, microcode, etc.), or embodiments that combine software and hardware embodiments, all of which may be commonly referred to as “circuits,” “modules,” or “systems.” Furthermore, the Disclosure may take the form of a computer program product embodied in any tangible or non-temporary medium of representation having computer-usable program code embodied in the medium.

[0052]

[0052] Figure 6 shows an exemplary computer-readable non-temporary storage medium that may be suitable for use in storing instructions that cause a device to implement a selected aspect of the Disclosure in response to the execution of instructions by the device. As shown, the non-temporary computer-readable storage medium 1602 may contain several programming instructions 1604. The programming instructions 1604 may be configured to enable a device, for example, a computer 1500, to implement a system 100, process flow 200, method 300, and / or method 400 (or aspects thereof) as described herein in response to the execution of the programming instructions. In an alternative embodiment, the programming instructions 1604 may instead be located on multiple computer-readable non-temporary storage mediums 1602. In yet another embodiment, the programming instructions 1604 may be located on a computer-readable temporary storage medium 1602 such as signals.

[0053]

[0053] Any combination of one or more computer-usable or computer-readable media may be used. Computer-usable or computer-readable media may be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, devices, or propagation media. More specific examples (non-exclusive list) of computer-readable media may include, but are not limited to, electrical connections with one or more wires, portable computer diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fibers, portable compact disk read-only memory (CD-ROM), optical storage devices, transmission media such as those supporting the Internet or intranet, or magnetic storage devices. Note that computer-usable or computer-readable media may also be paper or another suitable medium on which a program is printed, since a program may be electronically captured, for example, via an optical scan of paper or other medium, then compiled, interpreted, or otherwise processed in an appropriate manner as needed, and then stored in computer memory. In the context of this document, a computer-usable or computer-readable medium can be any medium that contains, stores, communicates, propagates, or transmits a program for use by or in connection with an instruction execution system, apparatus, or device. A computer-usable medium may contain propagating data signals having embodied computer-usable program code in the baseband or as part of a carrier wave. Computer-usable program code may be transmitted using any suitable medium, including, but not limited to, wireless, wired, fiber optic cables, RF, etc.

[0054]

[0054] Computer program code for performing the operations of the Disclosure may be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java, Smalltalk, C++, and Objective-C; platform and / or scripting environments such as React-Native, ClojureScript, and NativeScript; and / or conventional procedural programming languages ​​such as the "C" programming language or similar programming languages. The program code may run entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be to an external computer (for example, via the Internet using an Internet Service Provider).

[0055]

[0055] This disclosure is described with reference to flowcharts and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this disclosure. It will be understood that each block in a flowchart and / or block diagram, as well as combinations of blocks within a flowchart and / or block diagram, can be implemented by computer program instructions. These computer program instructions may be provided to a general-purpose computer, a dedicated computer, or a processor of another programmable data processing device to manufacture a machine such that instructions executed via the processor of the computer or other programmable data processing device create means for performing a function / operation specified in one or more blocks of a flowchart and / or block diagram.

[0056]

[0056] These computer program instructions may also be stored on a computer-readable medium, which can instruct a computer or other programmable data processing device to function in a particular way to produce a product that includes instruction means to perform a function / operation specified in one or more blocks of a flowchart and / or block diagram.

[0057]

[0057] Computer program instructions may also be loaded into a computer or other programmable data processing device to generate a computer implementation process that provides a process for the instructions to be executed on the computer or other programmable device to perform a function / operation specified in one or more blocks of a flowchart and / or block diagram, so that a series of operation steps are executed on the computer or other programmable device.

[0058]

[0058] It will be apparent to those skilled in the art that various modifications and variations can be made to the disclosed embodiments of the disclosed devices and related methods without departing from the spirit or scope of this disclosure. Accordingly, this disclosure is intended to encompass modifications and variations of the embodiments disclosed above, insofar as the modifications and variations fall within the scope of any claims and their equivalents.

Claims

1. A method for providing selective firmware updates to multiple devices in a dental treatment room, The update service includes the step of receiving firmware revision instructions for each of the multiple devices connected via the network within the dental treatment room, The update service includes the step of determining which of the multiple devices does not have the latest firmware revision, The update service includes the step of building an update package that includes a firmware update image only for the devices among the multiple devices that do not have the latest firmware revision, The update service includes the steps of sending the update package to the dental treatment room and Methods that include...

2. The step of determining which devices do not have the latest firmware revision is, The process of receiving the identifier of each of the plurality of devices along with the firmware revision instruction, A step of determining the latest firmware revision for each of the plurality of devices by querying a database having the identifier for each of the plurality of devices, A step of comparing the latest firmware revision for each of the plurality of devices with the received firmware revision instruction for each of the plurality of devices. The method according to claim 1, including the method described in claim 1.

3. The step of receiving firmware revision instructions for each of the plurality of devices connected via the network in the dental treatment room, The update service includes the step of querying the gateway to determine whether one or more devices of a specific type or model are connected to the gateway, The update service includes the steps of requesting the firmware revision instructions for each of the specific types or models of devices that may have been provided by the gateway in response to the inquiry. The method according to claim 1, further comprising:

4. The method according to claim 1, further comprising the step of querying each of the devices in the dental treatment room to request the firmware revision instructions for each of the devices.

5. The method according to claim 4, wherein the step of querying each of the plurality of devices in the dental treatment room includes the step of sending the query to a gateway connected to the plurality of devices by the network.

6. The method according to claim 1, wherein the step of transmitting the update package to the dental treatment room includes the step of transmitting the update package to a gateway connected to the plurality of devices by the network.

7. A computer-readable medium (CRM) containing instructions for selectively updating the firmware of multiple devices in a dental treatment room, wherein when the instructions are executed by the device, In order to determine the firmware revision for each of the aforementioned multiple devices, query each of the multiple devices connected to the network, The update service transmits the firmware revision for at least a subset of the multiple devices, Receiving an update package from the aforementioned update service that includes a firmware update image for only the devices among the multiple devices that do not have the latest firmware revision. A computer-readable medium (CRM) that causes the device to perform the above-mentioned action.

8. The computer-readable medium (CRM) according to claim 7, wherein the instruction further causes the device to transmit the identifier of each of the plurality of devices to the update service.

9. The instruction further causes the device to determine, based on the firmware revision for each of the plurality of devices, which of the plurality of devices does not have the latest firmware revision. The instruction causing the device to transmit the firmware revision for at least a subset of the plurality of devices causes the device to transmit the firmware revision only to devices that do not have the latest firmware revision. The computer-readable medium (CRM) according to claim 7.

10. The computer-readable medium (CRM) according to claim 7, wherein the instruction causes the device to transmit the firmware revision for each of the devices in the plurality of devices.

11. The computer-readable medium (CRM) according to claim 7, wherein the instruction causes the device to update the firmware of the device in the plurality of devices that have received the update image.

12. The computer-readable medium (CRM) according to claim 7, wherein the device is a gateway.

13. The computer-readable medium (CRM) according to claim 7, wherein the instruction further causes the device to detect the plurality of devices connected to the network.

14. Multiple devices, A gateway that communicates with each of the aforementioned multiple devices via the network. A dental treatment room equipped with, The aforementioned gateway The update service receives firmware revisions for at least a subset of the aforementioned multiple devices, The update service receives an update package containing a firmware update image for only the devices among the multiple devices that do not have the latest firmware revision. A dental treatment room that is adapted to this.

15. The dental treatment room according to claim 14, wherein the gateway is adapted to transmit firmware revisions for each of the plurality of devices.

16. The dental clinic according to claim 15, wherein the gateway is adapted to receive queries from the update service requesting the firmware revision instructions for each of the plurality of devices.

17. The aforementioned gateway In order to determine the firmware revision, query each device in the plurality of devices, Based on the firmware revision for each of the plurality of devices, it is determined which of the plurality of devices does not have the latest firmware revision. Send the firmware revision only to the devices among the multiple devices that do not have the latest firmware revision. A dental treatment room according to claim 14, which is adapted to such a configuration.

18. The dental treatment room according to claim 14, wherein the gateway is adapted to update the firmware of the devices in the plurality of devices that have received an update image.

19. The dental treatment room according to claim 14, wherein the gateway is adapted to transmit the identifier of each of the plurality of devices to the update service.

20. The dental treatment room according to claim 14, wherein the plurality of devices communicate with the gateway via a CAN bus.

21. The dental treatment room according to claim 14, wherein the gateway is adapted to detect the plurality of devices connected to the network.

Citation Information

Cited By

  • Methods and systems for securely modifying hardware components of electronic systems

    US20250384135A1