Multi-function device communities for troubleshooting and maintenance

A multi-function device (MFD) is disclosed. For example, the MFD includes, a communication interface to establish a communication session with other MFDs within a community of MFDs, a processor, and a non-transitory computer readable medium storing instructions, which when executed by the processor, cause the processor to determine a feature of the MFD is operating incorrectly, transmit a help message to the other MFDs within the community of MFDs, receive a configuration file for the feature that is operating incorrectly from a second MFD within the community of MFDs that has a health status of fully operational, upload the configuration file, determine the feature is operating correctly after the configuration file is uploaded, and update a health status of the MFD to fully operational.

The present disclosure relates generally to multi-function devices (MFDs) and relates more particularly to MFD communities for troubleshooting and maintenance.

BACKGROUND

Multi-function devices (MFDs) are electronic devices that can perform a variety of different functions. For example, MFDs can print, scan, copy, fax, email scanned documents, transmit scanned documents to a network storage account, and the like. The MFDs can be customized to provide custom user interfaces, store custom workflows for different print jobs, and the like.

MFDs are complicated devices that run on complex software. The MFDs may have hundreds of settings that range from settings associated with how the software operates, communication settings for network communications, print job parameters, and the like.

SUMMARY

According to aspects illustrated herein, there are provided a multi-function device (MFD) and a method for troubleshooting an MFD via another MFD in a community of MFDs. One disclosed feature of the embodiments is an MFD that comprises a communication interface to establish a communication session with other MFDs within a community of MFDs, a processor, and a non-transitory computer readable medium storing instructions, which when executed by the processor, cause the processor to determine a feature of the MFD is operating incorrectly, transmit a help message to the other MFDs within the community of MFDs, receive a configuration file for the feature that is operating incorrectly from a second MFD within the community of MFDs that has a health status of fully operational, upload the configuration file, determine the feature is operating correctly after the configuration file is uploaded, and update a health status of the MFD to fully operational.

Another disclosed feature is an MFD comprising a communication interface to establish a communication session with other MFDs within a community of MFDs, a processor, and a non-transitory computer readable medium storing instructions, which when executed by the processor, cause the processor to monitor a health status of the other MFDs within the community of MFDs, determine the health status of a second MFD within the community of MFDs is partially operational, determine a feature of the second MFD that is operating incorrectly, generate a configuration file for the feature of the second MFD that is operating incorrectly, and transmit the configuration file to the second MFD.

Another disclosed feature is a method for troubleshooting an MFD via another MFD in a community of MFDs. The method executed by a processor of the enterprise owned MFD comprises monitoring a health status of other MFDs within a community of MFDs, determining the health status of a second MFD within the community of MFDs is partially operational, determining a feature of the second MFD that is operating incorrectly, generating a configuration file for the feature of the second MFD that is operating incorrectly, and transmitting the configuration file to the second MFD.

DETAILED DESCRIPTION

The present disclosure broadly discloses MFD communities for troubleshooting and maintenance and methods for performing the same. As discussed above, MFDs are complicated devices that run on complex software. The MFDs may have hundreds of settings that range from settings associated with how the software operates, communication settings for network communications, print job parameters, and the like.

When an MFD malfunctions, the customer may have to call a service provider or manufacturer of the MFD to repair the MFD. This may take time for a technician to arrive on site, troubleshoot the problem, and fix the MFD. This can cause significant downtime for the customer using the MFD, as well as the manufacturer to have enough technicians ready to deploy when errors occur.

The present disclosure leverages MFD communities that can allow MFDs within the community to help troubleshoot and/or perform maintenance on each other. For example, when an MFD has an error or a feature is not operating correctly, other MFDs within the MFD community can offer to help via configuration files. The configuration files can be associated with the feature that is not operating correctly with the latest configuration or settings of components and software used by the feature.

As a result, the service provider can reduce costs associated with hiring technicians and the number of times a technician has to travel to a customer site. In addition, the customers who use the MFDs may have downtime reduced as the MFDs may be able to correct errors or malfunctions before the customer notices.

FIG.1illustrates an example network100of the present disclosure. The network100may include a community104of multi-function devices (MFDs)1021to102n(hereinafter also referred to individually as an MFD102or collectively as MFDs102). The network100may also include an internet protocol (IP) network106. The IP network106may include an application server (AS)108and a database (DB)110. The IP network106may be managed and operated by a manufacturer or service provider of the MFDs102.

In one embodiment, the DB110may store various updates to firmware, applications, operating system software, communication device settings, network settings, and the like for the MFDs102. The AS108may periodically push the updates to one of the MFDs102. As discussed in further detail below, one of the MFDs102may be designated as a “parent” MFD that periodically receives updates to all of the software and settings on the parent MFD. The parent MFD may have the most up to date software and settings for all of the features on the MFD. The parent MFD may push configuration files of the settings for various features that can be used by the other MFDs102within the community104for troubleshooting and/or maintenance.

In one embodiment, the network100may also include an IP network112that includes an AS114and DB116. The AS114and the DB116may be part of remote services that can be accessed by the MFDs102. For example, the remote services may include a cloud storage provider. The MFDs102may scan documents to the AS114that can be saved in the DB116. The MFDs102may also retrieve documents stored in the DB116via the AS114to print or email as attachments.

In one embodiment, the community104may include the MFDs102. Within an enterprise location or building there may be several communities of MFDs102. The communities104may have an equal number of MFDs102or may have different numbers of MFDs102.

In one embodiment, a community104of MFDs102may be defined as a group of MFDs102that are within a common network. For example, the common network may be a WiFi network within the enterprise location. In one embodiment, the community104may be further defined to be a particular subnet within the WiFi network.

In one embodiment, the community104of MFDs102may be defined as a group of MFDs102that are within a user defined boundary and that are within range of one another via a local communication interface. For example, the community104may include MFDs102that are within near field communications (NFC) radio reception of one another or Bluetooth radio reception of one another. As discussed in further detail below, one of the features of the MFDs102that may malfunction could include a network communication interface or an ability to access the Internet. In such a case, the MFDs102within the community104may be able to communicate with one another via NFC or Bluetooth.

In one embodiment, the community104of MFDs102may be defined by those MFDs that are directly connected to one another. For example, the MFDs1021to102nmay be directly connected to one another via a wired Ethernet connection. Thus, even if wireless communication to the remote services hosted by the IP network112fails, the MFDs102may be able to troubleshoot one another via the direct wired Ethernet connection.

It should be noted that the network100has been simplified for ease of explanation and may include other devices and components that are not shown. For example, the network100may include gateways, switches, routers, firewalls, access points, access networks, and the like.

FIG.2illustrates a block diagram of an example MFD102illustrated inFIG.1. In one embodiment, the MFD102may include a processor202, a memory204, and a communication interface212. The processor202may be communicatively coupled to the memory204, and the communication interface212. The processor202may control operation of the communication interface212and may receive and/or transmit information (e.g., updates, configuration files, and the like) via the communication interface212.

In one embodiment, the communication interface212may be to establish a communication path between the other MFDs102within the community104and/or the AS108via the IP network106. For example, the communication interface212may be a wireless or wired communication interface. For example, the communication interface212may be a WiFi radio, an Ethernet connection, a fax over IP connection that uses an RJ-111 connection, a cellular radio, and the like.

In one embodiment, the communication interface212may also include a local communication interface that allows the MFDs102to communicate with other MFDs102within the community104even if the ability of the communication interface212to reach the IP network106fails. For example, the MFD1022may be unable to reach the remote services in the IP network112. However, the MFD1022may still communicate with the MFDs1021and102nvia local communication interfaces such as NFC, Bluetooth Radio, or a directly wired Ethernet connection to MFDs1021and102n.

In one embodiment, the memory204may be any type of non-transitory computer readable medium. For example, the memory204may be a hard disk drive, a solid state drive, a random access memory, a read only memory, and the like. The memory204may store instructions206that are executed by the processor202to perform the functions described herein. For example, the instructions may cause the processor202to perform operations described inFIGS.3and4or the method500illustrated inFIG.5, and discussed in further detail below.

In one embodiment, the memory204may also store a configuration file generator208and a health status210. In one embodiment, the configuration file generator208may generate a configuration file for a feature or features that may be operating incorrectly on another MFD102. For example, the configuration file generator may generate a file that includes the current settings of an MFD102where the feature is operating correctly. The configuration file can then be generated to another MFD102where the feature is operating incorrectly to fix the issue, as discussed in further detail below.

For example, if the feature that is operating incorrectly is a communication feature, the configuration file may include various settings, values, configurations, a latest version of software for the feature, and the like. For example, if the communication feature is ability to access the Internet, the configuration file may include various settings for a particular Wi-Fi network, proxy settings for the communications interface212, port assignments for the communications interface212, and the like.

In one embodiment, the health status210may indicate whether the MFD102is experiencing an error or malfunction. The health status210may be a descriptor or may have a numerical value. For example, the descriptor may include “fully operational,” “partially operational,” and “not operational”. The descriptor may apply to each feature or to the overall operation of the MFD102.

For example, the features may include access to remote services, access to the Internet via the wireless communication interface, image quality, ability to update applications, and the like. The descriptor may be associated with each feature for the health status210. For example, access to remote services may be partially operational, access to the Internet may be fully operational, ability to update applications may be not operational, and the like.

In one embodiment, the descriptor may apply to the overall operation of the MFD102. For example, if the MFD102is not operational, none of the features may be operating correctly. If the MFD102is partially operational, then some of the features may be operating correctly and other features may be operating incorrectly. The MFD102may track which features are operating incorrectly so that the MFD102can notify other MFDs102of which features are operating incorrectly when broadcasting a help message, as described below.

The health status may also be a numerical value, as noted above. For example, values of 0 and 1 may be used to indicate fully operational or not fully operational. In another example, values of 0, 1, and 2 may be used to indicate fully operational, partially operational, and not operational. Similar to the descriptors, the numerical values can be applied to each feature or to the overall operational status of the MFD102.

In one embodiment, the health status may be an active fault or status code on the MFD102. For example, the MFDs102may be pre-programmed with fault or status codes that can represent a specific error or fault that is occurring. The fault or status codes can also indicate a severity of the fault that is occurring.

It should be noted that the MFD102has been simplified for ease of explanation inFIG.2and may include other components that are not shown. For example, the MFD102may also include a paper tray, an optical scanner, one or more printheads (e.g., for printing fluid or toner), a digital front end, one or more finishing modules, and the like.

The MFDs102within a community104may be able to push configuration files to help other MFDs102within the community104or to request help to receive a configuration file from another MFD102within the community104.FIG.3illustrates an example where an MFD1022broadcasts a help message302to receive a configuration file304for troubleshooting a feature that is operating incorrectly. Although three MFDs1021,1022, and1023are illustrated inFIG.3, it should be noted that the community104may include any number of MFDs102.

In one embodiment, the MFD1022may determine that a feature is operating incorrectly. For example, the feature may be a communication operation, such as ab ability to access a remote service feature. The MFD1022may not be able to send data or receive updates from the AS114in the IP network112.

In response, the MFD1022may generate a help message302that can be transmitted or broadcasted to all other MFDs1021and1023that are part of the community104. In one embodiment, the help message302may include an identification of the feature that is operating incorrectly and an identification of the MFD1022. The identification of the feature may allow the other MFDs1021and1023to generate the correct configuration file with the settings for that feature.

The identification of the MFD1022may allow the other MFDs1021and1023to transmit the configuration file to the correct MFD. For example, the identification of the MFD1022may include an IP address of the MFD1022, a media access control (MAC) identification number of the MFD1022, a name of the MFD1022(e.g., hallway printer, accounting printer, and the like), or any other type of identification that can be used to route the configuration file304back to the MFD1022.

The MFDs1021and1023may receive the help message302. If the MFDs1021and1023have fully operational health statuses, the MFDs1021and1023may generate a configuration file304and transmit the configuration file304back to the MFD1022in response to the help message302.

In one embodiment, if both MFDs1021and1023have a fully operational health status, both MFDs1021and1023may generate the configuration file304and transmit the configuration file304to the MFD1022. In one embodiment, the MFD1022may upload any one of the configuration files304that are received to troubleshoot the feature that is operating incorrectly.

In one embodiment, the MFD1021may be designated as the “parent MFD,” as described above. For example, the MFD1021may be in periodic communication with the AS108in the IP network106. The AS108may push periodic updates to the MFD1021to ensure that all of the software and/or settings for the features on the MFD1021are updated with the latest versions. Thus, in one embodiment, the MFD1022may prioritize the configuration file304received from the parent MFD1021. In other words, if both the MFD1021and1023were to send a configuration file304, the MFD1022may upload the configuration file304received from the parent MFD1021.

The MFD1022may upload the configuration file304and may determine that the feature is operating correctly again. The MFD1022may update its own health status to fully operational. In one embodiment, the MFD1022may broadcast a message or notification to all other MFDs1021and1023in the community104indicating that the issue causing the feature to operate incorrectly has been corrected.

FIG.4illustrates an example where the MFD1021pushes or publishes a configuration file402. Although three MFDs1021,1022, and1023are illustrated inFIG.4, it should be noted that the community104may include any number of MFDs102.

As described above, one of the MFDs102may be designated as a parent MFD. InFIG.4, the MFD1021may be designated as the parent MFD. As the parent MFD, the MFD1021may receive periodic updates from the AS108, as described above. Thus, the MFD1021may have the most up to date settings, values, and configurations for the various features on the MFDs102. The MFD1021may be responsible for periodically monitoring the health status210of the other MFDs1022and1023in the community104.

The MFD1023may change the health status210from fully operational to partially operational, as shown inFIG.4. The MFD1021may detect this change. The MFD1021may communicate with the MFD1023to determine which features are operating incorrectly. The MFD1021may generate a configuration file402for those features that are operating incorrectly and may transmit the configuration file402to the MFD1023. The MFD1023may upload the configuration file402to address the issues with those features that are operating incorrectly. If the configuration file402corrects the issues, the MFD1023may update the health status210back to fully operational.

In one embodiment, the monitoring performed by the MFD1021may be optional. For example, the MFD1021may simply publish all of the settings and configurations for all features in one or more configuration files402. In other words, the MFD1021may publish the configuration files402without solicitation or a request for help from any of the MFDs1022and1023within the community104. Rather, the MFD1021may push the configuration files402to the other MFDs1022and1023. The MFDs1022and1023may store the configuration files402with a time stamp. Thus, as additional configuration files402are pushed by the MFD1021, the MFDs1022and1023may keep the most current configuration file402and may discard previously received configuration files402.

When a feature fails on the MFDs1022or1023, the MFDs1022or1023may then upload the stored configuration files402from the MFD1021. As a result, the MFDs1022or1023may receive and upload the configuration file402to address features that operate incorrectly without having to send the help message302, as illustrated inFIG.3and discussed above.

As a result, the MFDs102within the community104may be able to troubleshoot and/or maintain each other. Thus, the amount of times a technician is dispatched may be reduced to save costs and expenses for the service provider or manufacturer of the MFDs102.

FIG.5illustrates a flow chart of an example method500for troubleshooting an MFD via another MFD in a community of MFDs of the present disclosure. In one embodiment, the method500may be performed by any of the MFDs102described above or by an apparatus such as the apparatus600illustrated inFIG.6and discussed below.

In one embodiment, the method500begins at block502. At block504, the method500monitors a health status of other MFDs within a community of MFDs. For example, the MFDs may monitor each other's health statuses. In one embodiment, only those MFDs with a fully operational health status may perform the monitoring. In another embodiment, the MFD that is designated as the parent MFD may perform the monitoring.

At block506, the method500determines that the health status of a second MFD within the community of MFDs is partially operational. For example, the health status of one of the MFDs in the community that is being monitored may have been degraded. Thus, the health status may be degraded to any level such as partially operational, not operational, and the like, from a health status of fully operational.

At block508, the method500determines a feature of the second MFD that is operating incorrectly. For example, the MFD may communicate with the second MFD to determine which feature is operating incorrectly.

The feature may be any feature associated with the second MFD. For example, the feature may be a communication feature. The communication feature may be an ability to access remote service features, an ability to access the Internet, an ability to access application updates, an ability to access email document attachments, an ability to access print settings for a particular image quality, and the like.

At block510, the method500generates a configuration file for the feature of the second MFD that is operating incorrectly. The configuration file may include all of the settings, values, configurations, and the like associated with the feature identified by the second MFD that is operating incorrectly. For example, if the feature is a communication feature, the configuration file may include particular proxy settings, transmission control protocol/Internet protocol (TCP/IP) settings, port configurations, updated driver versions for the communication interface, and the like.

The configuration file may be an executable file that can be launched by the second MFD. The configuration file may automatically change the settings, values, or configurations associated with the feature in the second MFD when executed to match the settings, values, or configurations contained in the configuration file.

At block512, the method500transmits the configuration file to the second MFD. For example, the configuration file may be transmitted over the Internet (e.g., a WiFi network). However, if the second MFD is experiencing network connectivity problems, then the configuration file may be transmitted over a local communication interface (e.g., via NFC or Bluetooth), as described above.

The second MFD may upload the configuration file and determine if the configuration file fixed the errors in the feature that was operating incorrectly. If the feature is corrected, the second MFD may update its health status back to fully operational.

In one embodiment, the MFD may also request help from other MFDs within the community. For example, the MFD may determine that a respective feature of the MFD is operating incorrectly.

In response to determining that a respective feature of the MFD is operating incorrectly, the MFD may transmit or broadcast a help message to the other MFDs within the community of MFDs. The help message may indicate that the respective feature of the MFD is operating incorrectly. The help message may include an identification of the feature that is operating incorrectly and an identification of the MFD to receive the configuration file.

The MFD may receive a respective configuration file for the respective feature of the MFD that is operating incorrectly from a third MFD within the community of MFDs that has a health status of fully operational. For example, the third MFD within the community may have a health status of fully operational. The third MFD may generate a configuration file for the respective feature and may transmit the configuration file to the MFD based on the identification information of the MFD received in the help message.

The MFD may upload the respective configuration file. For example, the configuration file may change the settings, values, or configurations associated with the feature that is operating incorrectly.

The MFD may determine that the respective feature is operating correctly after the respective configuration file is uploaded. For example, the MFD may have full access again to the remote feature services that it did not have access to before the configuration file was uploaded.

The MFD may update a health status of the MFD to fully operational. The MFD may also transmit a notification back to the third MFD to indicate that the configuration file addressed the issue with the respective feature.

Thus, the MFD may not only push or publish configuration files to troubleshoot other MFDs within the community of MFDs, but the MFD may also request help from the other MFDs to fix features that are malfunctioning on itself. As a result, the ability of the MFDs within the community of MFDs to troubleshoot each other may minimize the need to send customer service experts or technicians to resolve some malfunctions or errors. At block514, the method500ends.

FIG.6depicts a high-level block diagram of a computer that is dedicated to perform the functions described herein. As depicted inFIG.6, the computer600comprises one or more hardware processor elements602(e.g., a central processing unit (CPU), a microprocessor, or a multi-core processor), a memory604, e.g., random access memory (RAM) and/or read only memory (ROM), a module605for troubleshooting an MFD via another MFD in a community of MFDs, and various input/output devices606(e.g., storage devices, including but not limited to, a tape drive, a floppy drive, a hard disk drive or a compact disk drive, a receiver, a transmitter, a speaker, a display, a speech synthesizer, an output port, an input port and a user input device (such as a keyboard, a keypad, a mouse, a microphone and the like)). Although only one processor element is shown, it should be noted that the computer may employ a plurality of processor elements.