Predictive device failure analysis
Claim Score by NHIP
Abstract
An electronic device may include hardware and software configured to detect device failures in the electronic device and log a device error code for detected device failures. Device error codes may be electronically communicated over a communications link to a system external to the electronic device. A client device (e.g., a smartphone, tablet, pad, or PC) may be linked with the electronic device and may be configured to receive the communicated device error codes. The client device may be operative to communicate the received device error codes to another system (e.g., a backend system). The electronic device may link with the backend system and communicate the device error codes to the backend system. Networked computing resources in communication with the backend system may analyze the received error codes to determine whether or not to communicate a device replacement notice. A customer profile may be used as part of the analysis.

Term
Projected expiry 6 May 2035.
- Priority and filed
- Published
- Today
- Projected expiry
21 claims: 3 independent, 18 dependent
- 1Broadest claimClaim Score 83, broad(NHIP)A method, comprising:receiving, on a general purpose computer, data representing a device error code;diagnosing the data representing the device error code using the general purpose computer;determining, using the general purpose computer, whether or not to replace a device based on the diagnosing;generating data representing a device replacement notice for the device when the device is to be replaced;and transmitting the data representing the device replacement notice to an account associated with the device.
- 8A device, comprising:A controller;an input/output unit coupled with the controller;and a memory coupled with the controller, the memory including an error logging algorithm having executable instructions fixed in a non-transitory computer readable medium, the controller configured to execute instructions in the error logging algorithm to detect device error codes and to store in the memory, data representing device error codes that are detected, the controller operative to cause the input/output unit to establish a communications link, and the controller operative to cause the input/output unit to transmit the data representing the device error codes using the communications link.
- 15A method, comprising:executing, on a processing unit of a device, an error logging algorithm embodied in a non-transitory computer readable medium;determining, using the error logging algorithm, whether or not a device failure of the device has been detected;logging, in a memory coupled with the processing unit, data representing a device error code for each device failure detected;establishing, using the processing unit, a communications link with an external system the data representing the device error code;and transmitting, via the communications link, the data representing the device error code to the external system.
Independent claims3
75 paragraphs in 4 sections, as filed
FIELD
0001Embodiments of the present application relate generally to hardware, software, firmware, application programming interfaces (API's), wired and wireless communications, RF systems, wireless devices, wireless media devices, wearable devices, biometric devices, and consumer electronic (CE) devices.
BACKGROUND
0002As electronic devices continue to evolve and continue to be adopted by more users for a variety of purposes, many of those devices are configured for data communications using one or more communications mediums, such as wired and/or wireless communication, for example. However, electronic devices may fail due to a variety of failure modes, such as one or more of a hardware failure, a software failure, or a mechanical failure, for example. In some instances, failure of an electronic device may result in a customer (e.g., a user of the electronic device) calling customer service for assistance in remedying the failure.
0003A call to customer service may be costly to a manufacturer of the electronic device because each customer service call may be charged at a by-the-minute or some other rate (e.g., $0.50/minute or more). Call length (e.g., a call lasting ten minutes or more) and the number of calls made to customer service may affect an overall profit and loss (P&L) for a product. If a manufacture has a large number of electronic devices deployed to customers and a large enough percentage of those customers are likely to call customer service to resolve problems that may arise with their electronic devices, then the manufacturer may be exposed to a potential loss of profits and/or reduced profit margins that may arise from expenses due to customer service calls, in addition to other costs (e.g., replacement costs, shipping costs, logistics costs).
0004Accordingly, there is a need for systems, apparatus and methods that proactively analyze device failure and offer customers a remedy for failed devices that effectively eliminates or reduces the need for customers to call customer service.
BRIEF DESCRIPTION OF THE DRAWINGS
0005Various embodiments or examples (“examples”) are disclosed in the following detailed description and the accompanying drawings:
0006<figref idref="DRAWINGS">FIG. 1</figref> depicts one example of a block diagram of a device configured to log and transmit data representing device error codes to an external device;
0007<figref idref="DRAWINGS">FIG. 2</figref> depicts one example of a flow diagram to log and transmit device error codes on an electronic device;
0008<figref idref="DRAWINGS">FIG. 3</figref> depicts one example of a flow diagram to receive data representing device error codes and to determine whether or not to replace a device;
0009<figref idref="DRAWINGS">FIG. 4</figref> depicts examples of devices communicating logged errors to external devices;
0010<figref idref="DRAWINGS">FIG. 5</figref> depicts one example of a backend system;
0011<figref idref="DRAWINGS">FIG. 6</figref> depicts a diagram of device error codes and a table of data that may be used as part of a device replacement determination; and
0012<figref idref="DRAWINGS">FIG. 7</figref> depicts one example of a computer system.
0013Although the above-described drawings depict various examples of the invention, the invention is not limited by the depicted examples. It is to be understood that, in the drawings, like reference numerals designate like structural elements. Also, it is understood that the drawings are not necessarily to scale.
DETAILED DESCRIPTION
0014Various embodiments or examples may be implemented in numerous ways, including but not limited to implementation as a device, a wireless device, a system, a process, a method, an apparatus, a user interface, or a series of executable program instructions included on a non-transitory computer readable medium. Such as a non-transitory computer readable medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links and stored or otherwise fixed in a non-transitory computer readable medium. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
0015A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided for the purpose of example and the described techniques may be practiced according to the claims without some or all of these specific details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
0016<figref idref="DRAWINGS">FIG. 1</figref> depicts one example of a block diagram <b>100</b> of a device configured to log and transmit data representing device error codes to an external device. A device <b>110</b> (e.g., a wearable device) may include a system <b>115</b> that includes hardware (e.g., a processor, an ASIC, etc.), circuitry (e.g., a radio frequency (RF) system, discrete components), sensors (e.g., motion sensors, biometric sensors, etc.), a power supply (e.g. a re-chargeable battery, voltage regulators, etc.), memory (e.g., volatile and/or non-volatile), and other structure, such as wires and PC board traces, for example. Memory may include machine executable code <b>120</b> (e.g., an operating system—OS, algorithms for processing sensor data, etc.) accessed <b>116</b> by system <b>115</b> and configured to execute on a processor or the like in system <b>115</b>.
0017Failures in hardware and/or software components of system <b>115</b> in device <b>110</b> may be monitored by an error logging algorithm <b>121</b> that may receive <b>117</b> signals and/or data from system <b>115</b>. For example, a software failure may manifest as a hardware failure or malfunction in one or more hardware components or systems in <b>115</b>. Error logging algorithm <b>121</b> may monitor signals and/or data received <b>117</b> from system and process those signals and/or data to determine if the signals and/or data are indicative of a failure (e.g., an actual failure or a potential failure) of hardware and/or a software component(s) of system <b>115</b>, and generate a device error code specific to the failure.
0018Error logging algorithm <b>121</b> may log data representing each device error code in an error log <b>123</b> (e.g., a data store, a file, a memory). Error logging algorithm <b>121</b> may operate in conjunction with error detecting hardware in system <b>115</b> (e.g., built-in-self-test or other circuitry/hardware for self-test of device <b>110</b>). For example, during boot-up of a processor of system <b>115</b>, a boot-up error may be communicated <b>117</b> to error logging algorithm <b>121</b> and may result in generation of a device error code for a boot-up error/failure being stored in log <b>121</b> or communicated (<b>131</b>, <b>133</b>) to an external device.
0019Device error codes stored in error log <b>123</b> may be communicated <b>131</b> (e.g., using a wired and/or wireless communications link) to an external device or system, such as computing device <b>150</b> (e.g., a smartphone, tablet, pad or laptop computer). Computing device <b>150</b> may include an application APP <b>151</b> or other form of machine executable code that receives the data representing the device error codes stored in error log <b>123</b> and communicates <b>132</b> the data representing the device error codes to an external system, such as a backend system <b>190</b>, for example. In other examples, device <b>110</b> may communicate <b>133</b> the data representing the device error codes to the backend system <b>190</b> (e.g., bypass computing device <b>150</b>). Portal computing devices, such as WiFi routers or cellular communications networks may serve as communications links between one or more of the devices and/or systems depicted in <figref idref="DRAWINGS">FIG. 1</figref>.
0020In some examples, device error codes may be accumulated in log <b>123</b> and then communicated (e.g., transmitted via links <b>131</b> or <b>133</b>) to an external device or system. Communication of the accumulated device error codes may occur at a time (e.g., at 4:00 am), after a number of device error codes have been accumulated (e.g., two or more device error codes), or upon establishing a communications link with an external device or system (e.g., <b>150</b> and/or <b>190</b>). In other examples, device error codes may be communicated as they are determined by error logging algorithm <b>121</b>. For example, the above described boot-up error may be received <b>117</b> and then communicated (<b>131</b>, <b>133</b>) in real-time or near real-time by error logging algorithm <b>121</b>. Device error codes that are communicated as they occur (e.g., in real-time or near real-time) may still be logged in log <b>123</b>.
0021Backend system <b>190</b> may include or be in communication with (<b>191</b>, <b>193</b>) one or more resources, such as a computing device <b>195</b> (e.g., a server) and a data store <b>197</b> (e.g., network attached storage (NAS), hard drive (HD), solid state drive (SSD), RAID, Cloud storage, a data base, etc.). Computing device <b>195</b> and data store <b>197</b> may be in communication <b>198</b> with each other. Backend system <b>190</b> may process the data representing the device error codes and may determine, based on data extracted from the data representing the device error codes and/or data accessed from data store <b>197</b>, whether or not to generate <b>192</b> a device replacement notice <b>194</b>. The device replacement notice <b>194</b> may be an electronic message (e.g., an email, text message, SMS, Tweet, instant message, voice mail, phone call, video, or the like). In other examples, the device replacement notice <b>194</b> may be a letter, postcard or other non-electric form of communications. Device replacement notice <b>194</b> may be configured to inform a customer <b>101</b> (e.g., a user of device <b>110</b>) of an offer to replace the customer's <b>101</b> current device <b>110</b> with a replacement device. Device replacement notice <b>194</b> may be communicated <b>132</b> to computing device <b>150</b> and/or communicated <b>137</b> to device <b>110</b>. Device replacement notice <b>194</b> may be configured for presentation on a display <b>152</b> of computing device <b>150</b>, for example. Device replacement notice <b>194</b> may be communicated to a customer service data store (not shown) and the data representing the device replacement notice may be accessed from the customer service data store and may be used to initiate contact with the customer <b>101</b> regarding matters concerning a replacement device <b>110</b><i>r </i>that may be used to replace the device <b>110</b>. The customer service data store may be accessed to determine whether or not the customer <b>101</b> has taken steps to procure <b>196</b> the replacement device <b>110</b><i>r </i>(e.g., shipping instructions, e-commerce delivery instructions, retailer pick-up instructions), provide customer <b>101</b> with instructions on how to procure the replacement device <b>110</b><i>r</i>, provide customer <b>101</b> with instructions on how to return the device <b>110</b> (e.g., for failure analysis), generate a follow-up communication with the customer (e.g., an electronic message) concerning device <b>110</b> and/or replacement device <b>110</b><i>r</i>, for example.
0022Backend system <b>190</b> may receive (<b>131</b>, <b>133</b>) and process device error codes from more than one device <b>110</b> as denoted by <b>103</b> and the types of devices and any associated computing devices (e.g., <b>150</b>) need not be the same. Data representing device error codes from multiple devices that is received by backend system <b>150</b> may be processed in real-time or near real-time to determine if one or more of the multiple devices will have device replacement notices <b>194</b> generated based on an indication of device failure. A determination as to whether or not to generate the device replacement notice <b>194</b> for one or more of the devices may be based in part or in whole on historical data accessed from data store <b>197</b> and/or real-time data accessed from the multiple devices. As one example, if <b>255</b> of the devices <b>110</b> are communicating (<b>131</b>, <b>133</b>) data representing device error codes to backend system <b>150</b> and 15 of the 255 devices are reporting device error code ERR 27; Temp Sensor Failure“, backend system <b>150</b> may access (e.g., from data store <b>197</b>) historical failure data obtained from past processing of devices that are the same or similar to devices <b>110</b> and determine if ERR 27 warranted replacement of those devices, and if replacement was warranted, then generate device replacement notices <b>194</b> for the 15 devices. More to this example, if <b>35</b> of the 255 devices are reporting device error code ERR 15; Bioimpedance Sensor Intermittent Data”, and there is no historical failure data from past processing of devices that are the same or similar to devices <b>110</b>, backend system <b>150</b> may access (e.g., from data store <b>197</b>) other failure data that may be used to determine whether ERR 15 warrants replacement of those devices. Further to this example, the other failure data accessed may include data representing failures that may always warrant replacement of a device, such as an indicated failure of a sensor (e.g., a bioimpedance sensor). Accordingly, in an absence of historical failure data, backend system <b>150</b> may generate device replacement notices <b>194</b> for the 35 devices indicating the bioimpedance sensor failure (e.g., ERR 15). Device error codes may include more, less or different information than described in the above examples for ERR 27 and ERR 15.
0023Referring now to <figref idref="DRAWINGS">FIG. 2</figref> that depicts one example of a flow diagram <b>200</b> to log and transmit device error codes on a device (e.g., an electronic device of a customer). At a stage <b>202</b> error code logging on a device may be initiated. For example, an error logging algorithm (e.g., <b>121</b> of <figref idref="DRAWINGS">FIG. 1</figref>) may be executed on a processing unit (e.g., CPU, controller, ASIC, FPGA, μP, or μC) of a device (e.g., device <b>110</b>) to initiate the error logging. The error logging algorithm may be embodied in a non-transitory computer readable medium that includes program instructions configured to execute on the processing unit. A data store electronically accessible by the processing unit, such as non-volatile memory in the device, may include the error logging algorithm. In some examples, the error logging algorithm may be included in firmware for the device. In some examples, the error logging algorithm may be included in a data store internal to the processing unit (e.g., embedded memory).
0024The device may include but is not limited to a wireless device, a wearable device, a wrist-wearable device, a data capable strap band, a biometric device, a health monitoring/tracking device, a fitness monitoring/tracking device, a speaker box, a wireless speaker box, a portable device, a wired device, a headset, a wireless headset, a headphone, a wireless headphone, an earpiece, a wireless earpiece, a media device, a wireless media device, eyeglasses, a display device, a wearable display, a tablet, a pad, a laptop, a PC, a computer, a server, a media server, a data storage device, a HVAC device, an appliance, just to name a few, for example. In some examples, the device may be configured for wireless communication (e.g., Bluetooth (BT), BT Low Energy (BTLE), WiFi, WiMAX, WiFi Direct, near field communication (NFC), HackRF, AdHoc WiFi, Software defined Radio (SDR), short range RF communication, one or more varieties of IEEE 802.x, or other wireless protocols). In other examples, the device may be configured for wired communication (e.g., LAN, Ethernet, USB, Lightning, Thunderbolt, FireWire (IEEE-1394), RS-232 or other wired protocols). In another example, the device may be configured for wireless and wired communications.
0025At a stage <b>204</b> a determination may be made as to whether or not a device failure has been detected. A device failure may include but is not limited to a hardware failure (e.g., circuitry, an electronic failure, a biometric sensor failure, a bioimpedance sensor failure, a motion sensor failure, a power system failure, an electrical failure, an electrical continuity failure, etc.), a software failure, a mechanical and/or structural failure that may be detected by circuitry and/or systems of the device, just to name a few, for example. In some examples, a software failure may be detected indirectly as a hardware failure that may arise due to a software failure. If a NO branch is taken from the stage <b>204</b>, then flow <b>200</b> may transition to another stage, such as back to the stage <b>204</b>, for example. If a YES branch is taken from the stage <b>204</b>, then flow <b>200</b> may transition to a stage <b>206</b>, for example.
0026At the stage <b>206</b>, data representing a device error code for the detected device failure may be logged. Logging of the data representing device error code may include but is not limited to storing or saving detected device error codes in a data store, in a register, in a data base, in non-volatile memory, or in some other form of memory. In some example, logging of data representing device error code or codes may include transmitting the device error code(s) to an external system (e.g., <b>150</b> and/or <b>190</b> via a wired and/or wireless communications link), for example. The error logging algorithm described above in reference to the stage <b>202</b> may include data and/or have access to data, such as a look-up table, hash table, or some other form of data structure that may include data representing one or more device error codes, where data representing each device error code may be associated with one or more device failures. Data representing a device error code need not specifically identify the exact cause and/or component that gave rise to the device error code. For example, if the data representing the device error code is indicative of a power system failure, then that failure may be due to a defective power source (e.g., a battery), may be due to a defective voltage regulator or both.
0027Data representing device error codes may include formatted data and may further include other data, such as a time stamp and/or a date stamp for when the device failure that prompted the device error code occurred. Actual format and data included in a device error code may be application specific and is not limited to examples described herein. An application or other forms of machine executable instructions may be used to format data for the device error codes. For example, an application executing on a processor of a device that generates the device error codes may format data representing the device error codes into a format configured to be received and/or processed by an external system, process or device. In other examples, a device error code may be formatted by an external device or system and may be received by the external device or system as data representing un-formatted device error code(s). For example, computing device <b>150</b> and/or backend system <b>190</b> may receive (<b>131</b>, <b>133</b>) data representing un-formatted device error code(s) from device <b>110</b> and may generate data representing formatted device error code(s) from the un-formatted device error code(s). Further to the example, application <b>151</b> (e.g., as downloaded from an APP stored) on computing device <b>150</b> may access the data representing un-formatted device error code(s) and generate data representing formatted device error code(s).
0028Example formats for data representing device errors code for a detected device failure for a particular device may include but are not limited to: “ERR 5; Clock/Oscillator Failure; 07/21/2014; 11:54:05; PM; PST”; “ERR 7; BT Radio TX Failure; 07/23/2014; 12:37:47; AM; EST”, ERR 9; BI Sensor Failure; 12/24/2014; 01:29:17; AM; MST″. Here the first device error code is device error code 5 for clock or oscillator failure that occurred on Jul. 21, 2014 at eleven-fifty-four PM and five seconds, Pacific Standard Time; whereas, the second device error code is device error code 7 for a Bluetooth Radio Transmit failure that occurred on Jul. 23, 2014 at twelve-thirty-seven AM and forty-seven seconds, eastern standard time, and the third device error code 9 is for a bioimpedance sensor failure on Dec. 24, 2014 at one-twenty-nine AM and seventeen seconds, mountain standard time. Other types of hard and/or soft hardware failures such as motion sensor failures (e.g., gyroscope, accelerometer), optical sensor failures (e.g., an opto-electronic device), a display failure (e.g., LCD, LED, OLED, etc.), temperature sensor failures, power system failures (e.g., a lithium-ion battery), input/output device failure (e.g., a USB port), continuity failure (e.g., a wire or a PC board trace), and the like may be assigned appropriate device error codes. Time and/or date stamps, if included in a device error code, may include more or less time granularity, such as time of occurrence down to millisecond, microseconds, etc., for example. If device error codes include ASCII characters, then the format for the device error code may include one or more characters that may be used as field or data separators, such as the semi-colon “;” character, for example. In some examples, device error codes may include Hex-code, binary code or other coding formats. Data representing one or more device error codes may be formatted into one or more data packets that may include one or more fields such as a header, a data payload, an error correction/detection field, just to name a few, for example. Device error codes may include information specific to the device, such as serial number, model number, lot number, manufacturing date, firmware version, warranty information, operating system version, device customization data (e.g., bespoke customizations tailored for a specific customer <b>101</b>), place/location of manufacturing, software and/or hardware version numbers, etc., just to name a few. The number of device error codes that may be detected may not include all possible failure modes or mechanisms for a given device. A finite number of device error codes may be implemented to detect failures including but not limited to those that are detectable using the hardware and/or software resources of the device (e.g., device <b>110</b>), specific failures of interest to the manufacture of the device, failures that historically are desirable to detect, failures that are deemed by the manufacture to have a higher importance (e.g., a sensor failure), just to name a few. In some examples, device error codes may be updated, corrected, revised, added to, amended, deleted, combined with other device error code(s), or replaced using an update process, such as a software, firmware, OS update, or BIOS update. An application (e.g., APP <b>151</b> on device <b>150</b>) or other form of machine executable code may include revisions to device error codes (e.g., from an update of the application) and may transmit the revised device error codes to the device (e.g., device <b>110</b>) using one or more communications links (e.g., <b>131</b>). An external system (e.g., backend system <b>150</b>) may be configured to establish a communications link (e.g., <b>133</b>) with the device (e.g., device <b>110</b>) and transmit revised device error codes to the device.
0029Data representing one or more device error codes logged at the stage <b>206</b> may be stored in memory or some other data store. For example, logged device error codes may be stored in a non-volatile memory and may be accumulated in the non-volatile memory until a specific period of time has elapsed, until a number of device error code entries have accumulated, or until a signal or other trigger is generated, for example. For example, accumulated device error codes may be communicated (e.g., transmitted via a wired and/or wireless communications link) to an external device or system in response to a power-up trigger (e.g., the device is turned on or awaken from a sleep or standby state), in response to a re-boot of the device, in response to the device being coupled with a charger (e.g., to replenish a re-chargeable battery), in response to the device establishing a communications link with another device (e.g., a wired and/or wireless communications link), in response to a data download from the device (e.g., to a data store, a memory device, an account associated with the device, a web site, the Internet, the Cloud, or an external device) of other data (e.g., activity tracking data, step data from walking or running, caloric intake/output data, dietary data, geolocation data, etc.), just to name a few.
0030At a stage <b>208</b>, a determination may be made as to whether or not to transmit (e.g., communicate to another device or system) data representing one or more device error codes that were logged at the stage <b>204</b>. If a NO branch is taken from the stage <b>208</b>, then flow <b>200</b> may transition to another stage, such as back to the stage <b>204</b>, for example. If a YES branch is taken from the stage <b>208</b>, then flow <b>200</b> may transition to a stage <b>210</b>.
0031At the stage <b>210</b>, the device may establish (if not already established) a communications link (e.g., <b>131</b>, <b>133</b>) with an external device and/or system (e.g., a server, a backend system, a Cloud based system, the Internet, etc.). The communications link may be a wireless communications link, a wired communications link, or both. The wired communications link may include connecting a cable between the device (e.g., device <b>110</b>) and the external system and/or device (e.g., using a USB cable, an Ethernet cable, a sync cable, a Lightning cable, a Thunderbolt cable, a FireWire cable, etc.). The wireless communications link may include a Bluetooth paring between the device and the external device and/or system, connecting via a wireless network (e.g., a WiFi network, WiMAX network, wireless access point) using access credentials (if needed), connecting with a cellular network (e.g., 3G, 4G or other), connecting using NFC, an optical link (e.g., an IR LED, a LED), an acoustic link (e.g., via a speaker or other transducer), just to name a few, for example. In some examples, the device and the external system may already be in communication with each other using a wired and/or wireless communications link and the stage <b>210</b> may be bypassed. After the communications link has been established, flow <b>200</b> may transition from the stage <b>210</b> to another stage, such as a stage <b>212</b>.
0032At the stage <b>212</b>, data representing device error codes that have been logged by the device may be transmitted to an external system and/or device (e.g., <b>150</b> and/or <b>190</b>). The external system and/or device may process and/or analyze the data representing the device error code(s). On the other hand, the external system (e.g., system one) may communicate the data representing the device error code(s) to another system (e.g., system two) for processing and analysis. As one example, when the device transmits the data representing the device error codes to a single system (e.g., system one), then system one may be a server or other type of compute engine that receives the transmitted data representing the device error code(s) from the device.
0033As another example, when more than one system receives data representing the device error codes (e.g., system one and system two), then system one may include a client device (e.g., a smartphone, a smart watch, a tablet, a pad, a laptop, or a PC, etc.). The data representing the device error code(s) in the device may be transmitted to the client device and the client device may subsequently uses a communications link to transmit the data representing the device error code(s) to system two (e.g., a server, a backend system, etc.). The communications link between the device and the client device may be the same or may be different than the communications link between the client device and system two (e.g., a BT link between the device and the client device, and a cellular link between the client device and system two). After stage <b>212</b>, flow <b>200</b> may transition to another stage, such as a stage <b>214</b>.
0034At the stage <b>214</b> a determination may be made as to whether or not to continue logging errors on the device (e.g., device <b>110</b>). If a NO branch is taken from the stage <b>214</b>, then flow <b>200</b> may terminate. On the other hand, if a YES branch is taken from the stage <b>214</b>, then flow <b>200</b> may transition to another stage, such as back to the stage <b>204</b>, for example.
0035<figref idref="DRAWINGS">FIG. 3</figref> depicts one example of a flow diagram <b>300</b> to receive data representing device error codes (e.g., from device <b>110</b> or from device <b>150</b>) and to determine whether or not to replace a device (e.g., device <b>110</b>). At a stage <b>302</b>, a system (e.g., server <b>195</b> of backend system <b>190</b>), may receive data representing one or more device error codes (e.g., transmitted at the stage <b>212</b> of flow <b>200</b>). Hereinafter, the system or computer resource that receives and analyzes the data representing the device error code(s) will be denoted as the backend system regardless of whether or not the backend system receives the device error code(s) from a communication transmitted by the device (e.g., device <b>110</b>) or from an intermediate device, such as a client device that the device is in communication with (e.g., device <b>150</b>). The data representing the one or more device error codes received at the stage <b>302</b> may be stored in a data store (e.g., data store <b>197</b>) accessible by the backend system. Stored data representing the device error codes may be processed in some order, such as in the order received, in a first-in-first-out (FIFO) basis, or may be stored and then processed from the data store at a later time. Data representing device error codes may be processed based on a type of device error code (e.g., ERR 5 or ERR 8) or based on a type or types of devices the data representing the device error codes were received from (e.g., a data capable strapband, a wireless media device, a wireless speaker box, a headset, a wearable device, a health and fitness monitoring device, etc.). The data store may include but is not limited to a hard disc drive (HD), a solid state drive (SSD), NAS, non-volatile memory (e.g., Flash memory), DRAM, SRAM, ROM, volatile memory, system memory, etc., just to name a few, for example.
0036At a stage <b>304</b> the data representing the one or more device error codes may be diagnosed by a computing device or compute engine (e.g., server <b>197</b> of <figref idref="DRAWINGS">FIG. 1</figref>). Diagnosis of the data representing the device error code(s) may occur as the data is received (e.g., in real time or in near real-time) or with a time delay (e.g., the data representing the device error code(s) may be diagnosed every six hours or at some other time interval). Diagnosis at the stage <b>304</b> may include hardware, software or both configured to determine whether or not the data representing the one or more of the device error codes for the device, received at the stage <b>302</b>, are indicative of a defective device. Diagnosis that indicates the device is defective may not necessarily result in the device being replaced. Data accessed from a failure diagnosis database that includes data from previously diagnosed devices (e.g., other defective devices returned by customers to the manufacturer of the devices) may be used as part of the diagnosis at the stage <b>304</b>. For example, the failure diagnosis database may include data representing a severity of device error codes associated with defective devices, a likelihood that a device will fail based on device error codes from previously diagnosed devices, etc., just to name a few. The failure diagnosis database may be updated as necessary to add new data, to improve accuracy of diagnosis, to add and/or remove device error codes, and to add data for newly introduced devices, etc., for example.
0037As one example, a software glitch, error, bug or the like may manifest itself as a hardware failure that triggers generation of data representing a hardware-related device error code. Diagnosis at the stage <b>304</b> may include accessing the failure diagnosis database using the received device error code as a look-up or search key, for example, and determine that identical or similar devices with the same device error code were not replaced because a root cause of the device error code was related to a software issue rather than a hardware issue, and the software issue may be fixed by a software update instead of device replacement. As another example, diagnosis at the stage <b>304</b> may include accessing the failure diagnosis database and determining that the device error code received is associated with a low battery reserve condition on previously diagnosed devices (e.g., the device error code was due to low battery power instead of an actual hardware failure). Accordingly, instead of replacing the device, a message may be communicated to the device (e.g., <b>110</b> or <b>150</b>) instructing a user (e.g., customer <b>101</b>) to charge the battery of their device using a wall charger or the like.
0038Prior to a determination that a device requires replacement, factors other than device error codes may be used in a calculus for computing (e.g., using server <b>197</b>) whether or not to replace a device. At a stage <b>306</b>, a determination may be made as to whether or not to apply customer profiling (e.g., using customer profile data accessed by a compute engine from a data store). If a NO branch is taken from the stage <b>306</b>, then flow <b>300</b> may transition to another stage, such as a stage <b>314</b>. If a YES branch is taken from the stage <b>306</b>, then flow <b>300</b> may transition to a stage <b>308</b>.
0039At the stage <b>308</b>, data representing a customer profile may be accessed. The data representing the customer profile may be based, at least in part, on specific information on a customer (e.g., <b>101</b>) whose device (e.g., <b>110</b>) communicated the data representing the device error code(s) received at the stage <b>302</b>. In other examples, the data representing the customer profile may be based, at least in part, on a class or group of customers. The data representing the customer profile for the class or group may be anonymized data that does not include information that may reveal the identities or other personal information on the persons included in the class or group. The data representing the customer profile for the class or group may be used to determine if the device reporting the device error codes should or should not be replaced based on what action was taken for device error codes for devices of customers in the class or group.
0040The data representing the customer profile may be used to determine (e.g., using hardware and/or software) a likelihood that a customer may call customer service to resolve an issue or issues pertaining to the customer's device. A customer who is likely (e.g., greater than 50%) to call customer service to resolve issues they are having with their device may be a candidate for device replacement. The data representing the customer profile may include information on past customer service contacts by the customer for the device (e.g., <b>110</b>) and/or other devices that may be a different type of device. The data representing the customer profile may include information on how long (e.g., elapsed time in minutes) the customer interacted with customer service. For example, if customer service contacts (e.g., a phone call or Internet chat) are billed to a manufacturer of the device on a cost per unit of time basis, then past customer service contacts that were lengthy (e.g., several minutes or more) may be indicative of how much future customer service contacts may cost the manufacture. Accordingly, if the data representing the customer profile indicates a history of lengthy customer service contacts, then it may be financially advantageous to replace the customer's device before the customer attempts to contact customer service.
0041At a stage <b>310</b>, a determination may be made as to whether or not to replace the device based on the customer profiling at the stage <b>308</b>. If a YES branch is taken from stage <b>310</b>, then flow <b>300</b> may transition to another stage, such as a stage <b>314</b>. On the other hand, if a NO branch is taken from the stage <b>310</b>, then flow <b>300</b> may transition to another stage, such as a stage <b>312</b>.
0042At the stage <b>312</b>, the one or more device error codes received at the stage <b>302</b> may be logged into a database (e.g., the failure diagnosis database). As one example, the database may be the failure diagnosis database and that database may be used for future iterations of flow <b>300</b>. Data from device error codes in the database may be processed (e.g., using statistical analysis or other) to determine trends in device failures that may be used to earmark specific devices for replacement based on received device error codes, customer profiles or both. The database may be used for other purposes and is not limited to the examples described herein.
0043At the stage <b>314</b> a determination may be made as to whether or not to generate data representing a device replacement notice (e.g., an electronic message) for the device. If a NO branch is taken from the stage <b>314</b>, then flow <b>300</b> may transition to another stage, such as back to the stage <b>312</b>, for example. If a YES branch is taken from the stage <b>314</b>, then flow <b>300</b> may transition to another stage, such as a stage <b>316</b>, for example.
0044At the stage <b>316</b> one or more device replacement notices may be transmitted to a customer (e.g., the customer with the failed device). The device replacement notices may include an electronic message (e.g., an email, a text, a SMS, an instant message (IM), a tweet, a phone call and/or voice mail, a hyperlink included in an electronic message, a URI or URL included in an electronic message), just to name a few, for example. In other examples, the device replacement notice may include a mailing (e.g., postal mail, USPS, FedEx, UPS, DHL or other courier) that is delivered to an address of the customer. Backend system <b>190</b> may generate data that causes the mailing to be printed and mailed to the customer, for example.
0045Stage <b>316</b> may transition to a stage <b>318</b> where a determination may be made as to whether or not flow <b>300</b> is done (e.g., no more device error codes are being received). If a NO branch is taken from the stage <b>318</b>, then flow <b>300</b> may transition to another stage, such as back to the stage <b>312</b>, for example. If a YES branch is taken from the stage <b>318</b>, then flow <b>300</b> may terminate.
0046At the stage <b>316</b>, communicating data representing the device replacement notice to the customer may operate to prevent the customer from calling customer service to resolve a problem the customer may be having with the device and thereby reduce costs associated with a call to customer service (e.g., billing the cost on a per minute basis or some other basis). The data representing the device replacement notice may notify the customer that one or more problems have been detected with their current device and provide the customer with instructions for obtaining a replacement device. The data representing the device replacement notice may optionally include instructions for returning the defective device (e.g., returning the defective device to the manufacture for failure diagnosis). In some examples, a customer may have on file a communications preferences (e.g., from registering the device with the manufacturer) such as email addresses, phone numbers, postal address, shipping address, Twitter handle, or some other address were communications may be received. A customer preference database may include preferences for the customer and may be accessed (e.g., by server <b>197</b>) at the stage <b>316</b>.
0047Attention is now directed to <figref idref="DRAWINGS">FIG. 4</figref> where examples of devices communicating logged errors to external devices are depicted. A device <b>400</b> (e.g., a customer's device that logs device error codes) may include a controller CNTL <b>402</b> (e.g., a processor, compute engine, CPU, controller, ASIC, DSP, FPGA, μC, μP, etc.), hardware HW <b>404</b> (e.g., circuitry, data storage, transducers, a display, sensors, biometric sensors, bioimpedance sensors, optical sensors, temperature sensors, motion sensors, accelerometers, MEMS devices, communication ports, mechanical components, electrical components, etc.), software SW <b>406</b> (e.g., an operating system (OS), BIOS, firmware, error logging algorithm <b>121</b>, boot code, data base, look-up-table, hash table, etc.), a power supply PS <b>408</b> (e.g., a battery, a rechargeable battery, an AC power source, a DC power source, an AC-to-DC power source, etc.), an input/output unit I/O <b>410</b> (e.g., a RF system with one or more radios for wireless communications using one or more protocols, hardwired communications, communications with other systems in device <b>400</b>, etc.), and memory MEM <b>412</b> (e.g., non-volatile memory). MEM <b>412</b> may include data that may be used in the error logging process. The data may include but is not limited to addresses, access credentials or other data that may be necessary for establishing communications links with external devices and/or systems (e.g., at the stage <b>210</b> in flow <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref>). The data may include data representing one or more device error codes logged by error logging algorithm <b>121</b> and the data representing the one or more device error codes. One or more of the blocks <b>402</b>-<b>412</b> in device <b>400</b> may be in communications with each other via a bus <b>414</b>. Blocks <b>402</b>-<b>412</b> may generate signals, triggers or data indicative of a failure (e.g., a hardware failure, a software failure) that are logged (e.g., by error logging algorithm <b>121</b>). As one example, PS <b>408</b> may be a rechargeable battery (e.g., a lithium ion type rechargeable battery) and circuitry and/or software that monitors performance, charge state, charge time, discharge time and other battery parameters may detect that PS <b>408</b> is failing to hold a full charge after being recharged for a time that ought to result in a fully recharged battery. A signal generated by circuitry that monitors PS <b>408</b> (e.g., power watch dog circuitry coupled with PS <b>408</b>) may be received by CNTL <b>402</b> and passed as data to the error logging algorithm <b>121</b>, which in turn may log the appropriate device error code, such as “ERR 17; Battery Charge Failure; 07/24/2014; 02:25:17; AM; PST”, for example. The data representing the logged error code may be transmitted to an external device (e.g., via I/O <b>410</b>) in real time, in near real-time or may be transmitted at a later time.
0048Moving now to example <b>420</b> of <figref idref="DRAWINGS">FIG. 4</figref>, where a device <b>400</b><i>a </i>(e.g., a wireless speaker box) and a backend system <b>490</b> are in communication with each other via a wireless link <b>421</b> (e.g., a link established at the stage <b>210</b> of flow <b>200</b> of <figref idref="DRAWINGS">FIG. 2</figref>). Wireless link <b>421</b> may be established through another wireless system, such as a wireless access point, a wireless router or cellular network, for example. Device <b>400</b><i>a </i>may transmit data representing logged device error codes to backend system <b>490</b> as they occur or may accumulate one or more logged device error codes (e.g., in MEM <b>412</b>) and then transmit the accumulated device error code(s) at some future time (e.g., a day later), at some predetermined time (e.g., at 2:00 AM if there are logged device error codes in memory) or at a predetermined time interval (e.g., every 12 hours). Logged device error codes communicated over the link <b>421</b> may be included in data packets or other format. Logged device error codes may be encrypted and backend system <b>490</b> may include a key for decrypting the encrypted device error codes. Error-correcting code (ECC), hash code, compression or other manipulations of digital data may be applied to the data representing the device error codes (e.g., by SW <b>406</b> or by APP <b>151</b>, APP <b>451</b>). For example, a hashing function may be applied to the data representing the device error codes.
0049Moving down to example <b>430</b>, where two devices, <b>400</b><i>b </i>(e.g., a wearable health/fitness/activity monitor) and <b>400</b><i>c </i>(e.g., a wireless headset) are depicted in communication with a client device <b>450</b> (e.g., a smartphone, a tablet, a pad, etc.). Device <b>400</b><i>b </i>may be configured (e.g., via I/O <b>410</b>) for wired communications with external devices or systems. Here, a hard wired connection <b>433</b> (e.g., a cable) may be coupled between a communications port on device <b>400</b><i>b </i>(e.g., a micro-USB connector) and a communications port on client device <b>450</b> (e.g., a USB or sync port). Device <b>400</b><i>c </i>may be configured (e.g., via I/O <b>410</b>) for both wired <b>437</b> and wireless <b>435</b> communications with client device <b>450</b>. Wired communications <b>437</b> may be established in a manner similar to that described above for device <b>400</b><i>b</i>. Wireless communications <b>435</b> may use one or more radios in device <b>400</b><i>c </i>(e.g., BT, BTLE, NFC, WiFi, etc.) to communicate with one or more radios in client device <b>450</b>. Logged device error codes communicated over the links (<b>433</b>, <b>437</b>, <b>435</b>) may be received by client device <b>450</b> and may be communicated by the client device <b>450</b> to the backend system <b>490</b> via wireless communications link <b>431</b> (e.g., via WiFi, WiMAX, Cellular, etc.). An application (APP) <b>451</b> executing on a processing unit of client device <b>450</b> may operate to re-transmit received device error codes from one or more devices (e.g., <b>400</b><i>b</i>, <b>400</b><i>c</i>, or both) to backend system <b>490</b>. Data representing device error codes received by client device <b>450</b> may be encrypted (e.g., by APP <b>451</b>) prior to communicating the device error codes to backend system <b>490</b>). APP <b>451</b> may present menus, icons, images or other data on a display <b>452</b> of client device <b>450</b>. APP <b>451</b> may be presented by a graphical user interface (GUI) on display <b>452</b> of client device <b>450</b>. Client device <b>450</b> may communicate device error codes to backend system <b>490</b> using another wireless system (e.g., a wireless router, cellular network, etc.). Client device <b>450</b> may communicate device error codes to backend system <b>490</b> using a wired link <b>432</b> (e.g., Ethernet, LAN, USB, sync port, etc.) and the wired link may communicate with backend system <b>450</b> using another system (e.g., a router). APP <b>451</b> may be installed or otherwise downloaded to client device <b>450</b> from a location such as an application store (e.g., the App Store, the Play Store, etc.), a website, etc. In some examples, APP <b>451</b> may execute unnoticed (e.g., in a background mode) by a user of client device <b>450</b> (e.g., by the customer who owns device <b>400</b><i>b </i>and/or <b>400</b><i>c</i>).
0050In example <b>440</b>, three devices, <b>400</b><i>d</i>, <b>400</b><i>e </i>and <b>400</b><i>f </i>may wirelessly link (<b>447</b>, <b>445</b>, <b>449</b>) with client device <b>450</b> and the wireless links (<b>447</b>, <b>445</b>, <b>449</b>) may use the same or different wireless communications protocols. However, device <b>400</b><i>d </i>may also be configured to wirelessly link <b>443</b> with backend system <b>490</b>. In some examples, when device <b>400</b><i>d </i>is not within wireless communication range of client device <b>450</b>, device <b>400</b><i>d </i>may instead establish the wireless link <b>443</b> with backend system to communicate logged device error codes. In other examples, when device <b>400</b><i>d </i>is within wireless communication range of client device <b>450</b>, then link <b>447</b> is established for communication of logged device error codes. Devices <b>400</b><i>e </i>(e.g., a data capable strap band) and <b>400</b><i>f </i>(e.g., a smart watch) may be wirelessly linked with client device <b>450</b> by operation of a previous paring (e.g., BT paring) or linking with client device <b>450</b>. Device <b>400</b><i>d </i>may use the same or different wireless communications protocols for communications between client device <b>450</b> and backend system <b>490</b>.
0051APP <b>451</b> may operate to receive the data representing the device error codes from one or more devices (e.g., customer devices) and re-transmit the data representing the device error codes to the backend system <b>490</b>. In other examples, APP <b>451</b> may operate to encrypt the data representing the device error codes (even if previously encrypted by the device(s) that transmitted them) prior to communicating the now encrypted data representing the device error codes to the backend system <b>490</b>. Client device <b>450</b> may communicate the data representing the device error codes to the backend system using a data format including but not limited to packets or other data formats.
0052Examples <b>430</b> and <b>440</b> depict two or more devices (e.g., a customer having multiple devices) that may log device error codes and communicate those device error codes with client device <b>450</b> and/or with backend system <b>490</b>. Device error codes for each device that are communicated to client device <b>450</b> may be separately logged and stored in different memory locations prior to communicating the logged device error codes for each device to the backend system <b>490</b>. Software (e.g., APP <b>451</b>, SW <b>406</b>), hardware (e.g., CNTL <b>402</b>, HW <b>404</b>, I/O <b>410</b>) or both may be configured to arbitrate between each device and client device <b>450</b> to handle potential conflicts that may arise when multiple devices attempt to communicate their logged device error codes to the client device <b>450</b>. For example, devices <b>404</b><i>e </i>and <b>404</b><i>f </i>may communicate data representing the device error codes at the same time to client device <b>450</b> and client device <b>450</b> may communicate a signal or handshake to device <b>400</b><i>f </i>that commands device <b>400</b><i>f </i>to wait for a another signal or handshake to commence transmitting its data representing the device error codes. While device <b>400</b><i>f </i>is waiting, device <b>400</b><i>e </i>may transmit the data representing the device error codes to the client device <b>450</b>. In some examples, client device <b>450</b> may include hardware and/or software resources to handle communications from multiple devices at the same time, such as using different radios for wireless communications with different devices and/or using wired and wireless links for communicating with different devices. In other examples, backend system <b>490</b> may arbitrate receiving logged device error codes from multiple devices and/or multiple client devices. In yet another example, backend system <b>490</b> may include resources configured to handle receiving multiple communications of logged device error codes from multiple devices and/or multiple client devices.
0053Reference is now made to <figref idref="DRAWINGS">FIG. 5</figref> where one example <b>500</b> of a backend system. A backend system <b>490</b> may receive one or more communications <b>501</b> that include data representing device error codes transmitted by one or more devices (e.g., <b>110</b>, <b>150</b>, <b>400</b>, <b>400</b><i>a</i>-<b>400</b><i>f</i>, <b>450</b>). Backend system <b>490</b> may receive more of fewer communications <b>501</b> than depicted as denoted by <b>503</b>. Backend system <b>490</b> may have access via a network <b>591</b> to a variety of resources that may be internal to backend system <b>490</b>, external to backend system <b>490</b> or both. Communication between networked resources may be by wired and/or wireless communications over network <b>591</b>. Backend system <b>490</b> may include a firewall <b>509</b> for data security and/or to restrict access to one or more of the networked resources. Backend system <b>490</b> may access one or more networked resources including but not limited to compute engine <b>502</b>, data storage <b>504</b>, device failure diagnosis <b>520</b>, device error codes <b>522</b>, returned devices database <b>521</b>, data warehouse <b>510</b>, customer service database <b>540</b>, customer profiling <b>530</b>, and customer database <b>560</b>. Device failure diagnosis <b>520</b> and/or customer profiling <b>530</b> may be modules (e.g., implemented in hardware, software or both) that may be accessed by backend system <b>490</b> as part of the calculus in determining whether or not to replace a device. The network resources may communicate with backend system <b>490</b> and one another using wired and/or wireless communications. Compute engine <b>502</b> may include but is not limited to one or more servers, mainframes, laptops or PC's. In some examples, there may be more compute engines than depicted as denoted by <b>505</b>. Compute engine <b>502</b> may execute one or more stages of flow <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>, for example. Data storage <b>504</b> may be accessed by compute engine <b>502</b> and other resources via network <b>591</b>. Data storage <b>504</b> may include but is not limited to non-volatile memory, volatile memory, Flash memory, HDD, SSD, RAID, NAS or other forms of data storage, just to name a few, for example. In some examples, data storage <b>504</b> may include more units than depicted as denoted by <b>507</b>. Data storage <b>504</b> may include information that may be accessed for read, write or both by compute engine <b>502</b> and/or other of the networked resources via network <b>591</b>.
0054In some examples, backend system <b>490</b> may receive <b>501</b> device error codes and perform analysis (e.g., according to one or more stages of flow <b>300</b>) to determine if a particular device should be replaced based one or more of the data representing the device error codes, results from customer profiling <b>530</b>, results from customer service data base <b>540</b>, and communicate (e.g., based on customer preferences <b>571</b> or other data) an appropriate message (e.g., electronic or non-electronic) to notify the customer of an offer to replace their device.
0055Device failure diagnosis <b>520</b> may analyze data accessed from returned devices database <b>521</b> (e.g., data on defective devices returned to the manufacturer) to determine causes of failures and may create device error codes <b>522</b> that are included in and/or are accessible by an error logging algorithm (e.g., <b>121</b>) for logging error codes in a device (e.g., <b>110</b> of <figref idref="DRAWINGS">FIG. 1 or 400, 400</figref><i>a</i>-<b>400</b><i>f </i>of <figref idref="DRAWINGS">FIG. 4</figref>). Device error codes may include device error codes that may be shared among devices, device error codes that are device specific, or both. Device failure diagnosis <b>520</b> may be an iterative process where data on each batch of returned devices accessed from returned devices database <b>521</b> are diagnosed. The diagnosis may yield new failure modes, may re-confirm already known failure modes, may alter an importance placed on certain failure modes, and that information may be used to update device error codes <b>522</b> as denoted by <b>523</b>. Device error codes included in the device error codes <b>522</b> or other location (e.g., data warehouse <b>510</b>) may be accessed by backend system <b>490</b> during one or more stages of flow <b>300</b>, such as at the stage <b>304</b> where device error codes received <b>501</b> by the backend system <b>490</b> at the stage <b>302</b> are diagnosed (e.g., by compute engine <b>502</b>) at the stage <b>304</b>. Data warehouse <b>510</b> may include a copy or a version of the device error codes <b>522</b> for access by other systems via network <b>591</b>, including but not limited to customer profiling <b>530</b>, customer service database <b>540</b>, and backend system <b>490</b>, for example.
0056Customer database <b>560</b> may include information about customers and their device(s), including but not limited to customer name, postal/residence address, phone numbers, mobile phone numbers, contact information (e.g., email addresses, customer contact preferences, social and/or professional media address—Twitter handle, Facebook, etc.), device serial number, device model number, device purchase data, device seller (e.g., retail source, Internet source, etc.), customer demographic information, number of customer calls to customer service, number of calls from customer service to the customer, identify customers who have seeded devices, customer profiles, customer device use profiles, customer device purchase history, etc., just to name a few. Customer database <b>560</b> may include a profile for each customer (e.g., a customer profile) that may be analyzed as described above in reference to stages <b>306</b>-<b>314</b> of flow <b>300</b> in order to determine, along with other factors (e.g., received device error codes), whether or not to replace a device for which logged device error codes have been received (e.g., <b>501</b>) by backend system <b>490</b>. Customer database <b>560</b> may include data representing anonymized customer profiles <b>563</b>. The data representing the anonymized customer profiles <b>563</b> may be used in determining whether or not to generate a device replacement notice, based at least in part, on what action was taken for other customers from whom the anonymized was collected. For example, if data representing the anonymized customer profiles <b>563</b> indicates that anonymized customers with devices identical to the customer's device and that transmitted identical device error codes had device replacement notice generated for their devices, then that data may be used to determine that the customer's device warrants replacement.
0057Customer profiling <b>530</b> may access various resources on network <b>591</b> and may provide data to backend system <b>490</b> that may be used by the backend system <b>490</b> to determine whether or not to replace a device based on its diagnosis of received device error codes and/or customer profile as described above in reference to flow <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>. Customer profiling <b>530</b> may access data from various resources on network <b>591</b> and use that data to determine the likelihood that a customer may call customer service when that customer is having problems with their device(s). For example, a likelihood that a customer may call or otherwise contact customer service may be ranked from 0 to 1, with 1 being 100% likelihood the customer will contact customer service <b>540</b> and 0 being 0% likelihood the customer will contact customer service <b>540</b>. Even though the likelihood is greater than 50% (e.g., >0.5) or is less than 50% (e.g., <0.5), a determination to replace the device may still be made in the affirmative based on one or more other factors. Customer profiling <b>530</b> may access data representing customer service contacts (e.g., the number of times the customer has contacted customer service by phone, web site, email, etc.) for a customer (e.g., <b>101</b>) from the customer service database <b>540</b>. A device replacement notice may be generated if the data representing the customer service contacts exceeds a threshold number (e.g., 3 or more contacts with customer service).
0058Customer profiling <b>530</b> may determine a cost/benefit of proactively monitoring devices for device error codes and optionally offering customers a replacement device, versus having those customers contact customer service and the concomitant costs associated with customer contacts with a customer service department. Customer profiling <b>530</b> may also monitor data from customer database <b>560</b> and may use that data to determine if a device should be replaced based on a customer's profile (e.g., customers of seeded devices, high value customers, etc.). As one example, a journalist in technology may have received a seed device for review. Data representing device error codes from the seed device may automatically generate a device replacement notice. Data representing device error codes received from a device of a customer who has a history (e.g., as accessed from customer database <b>560</b>) of purchasing many devices from the manufacture may automatically receive a device replacement notice to foster good will between the customer and the manufacturer, for example.
0059Backend system <b>490</b>, upon determining that a device ought to be replaced, may access customer preferences <b>571</b> to determine a preferred mode of contact for the customer of the device. If the mode of contact is by one or more forms of electronic messaging, then electronic messaging <b>570</b> may be activated to generate an electronic message to be communicated <b>511</b> to the customer (e.g., in a format(s) specified in customer preferences <b>571</b>). Backend system may communicate <b>511</b> more or fewer electronic messages than depicted as denoted by <b>513</b>. As one example, customer-A may prefer email sent to an email address stored in <b>571</b> and/or <b>560</b>, customer-B may prefer a tweet to a Twitter handle address stored in <b>571</b> and/or <b>560</b>, and customer-C may prefer a text message sent to a mobile phone number stored in <b>571</b> and/or <b>560</b>. The above examples of electronic messages are non-limiting and other types of electronic messages may be generated by backend system <b>490</b>. Customer preferences <b>571</b> may include data representing anonymized customer preferences <b>573</b>. The data representing the anonymized customer preferences <b>573</b> may be used to determine, at least in part, whether or not to generate a device replacement notice based on preferences of a larger group or pool of customers. For example, if customer-A has no contact preference for receiving a device replacement notice, then data representing the anonymized customer preferences <b>573</b> may be analyzed to determine the most preferred contact preference for the larger group or pool of customers (e.g., via text, email, Tweet, etc.). If customer-A has an email address and the data representing the anonymized customer preferences <b>573</b> indicates that email is a preferred contact preference for the larger group or pool of customers, then the device replacement notice may be emailed to the customer-A.
0060In some examples, a customer may prefer a non-electronic form of contact and that preference may be included in customer preferences <b>571</b>. To that end, backend system <b>490</b> may generate <b>515</b> a mailing <b>517</b> to notify the customer that their device needs to be replaced. Examples of mailing <b>517</b> may include but are not limited to postal mail, USPS mail, DHL, FedEx, UPS, or other carrier, just to name a few. There may be more or fewer mailings <b>517</b> generated <b>515</b> by backend system <b>490</b> as denoted by <b>519</b>. In other examples, a customer may prefer a phone call and that preference may be included in customer preferences <b>571</b>. Customer service <b>540</b> may call the customer (e.g., Calls-Out <b>543</b>) to inform them that their device is in need of replacement. In yet other examples, Customer service <b>540</b> may call or contact the customer through one or more different types of communication when a customer has not responded to a prior notice of device replacement (e.g., after two weeks have passed).
0061Turning now to <figref idref="DRAWINGS">FIG. 6</figref> where a diagram <b>600</b> of device error codes and a table <b>620</b> of data that may be used as part of a device replacement determination are depicted. In diagram <b>600</b>, the three devices (<b>400</b><i>a</i>, <b>400</b><i>c</i>, and <b>400</b><i>d</i>) may have different capabilities and may have differences in hardware and/or software systems to implement those capabilities. However, each device may have device error codes and some of those device error codes may be different than those on the other devices or some of those device error codes may be the same as those on the other devices. Device <b>400</b><i>a </i>(e.g., a wireless speaker box) has device error codes <b>522</b><i>a </i>denoted by dashed circle <b>600</b><i>a</i>, device <b>400</b><i>c </i>(e.g., a wireless headset) has device error codes <b>522</b><i>c </i>denoted by circle <b>600</b><i>c</i>, and device <b>400</b><i>d </i>(e.g., wireless over-the-head headphones) has device error codes <b>522</b><i>d </i>as denoted by heavy lined circle <b>600</b><i>d</i>. Device error codes <b>522</b><i>a </i>that are exclusive to device <b>400</b><i>a </i>are denoted in an a-Only region, device error codes <b>522</b><i>c </i>that are exclusive to device <b>400</b><i>c </i>are denoted in an c-Only region, and device error codes <b>522</b><i>d </i>that are exclusive to device <b>400</b><i>d </i>are denoted in an d-Only region. On the other hand, device error codes that are common to two or more of the devices are denoted in the overlapping regions as a+c, a+d, c+d and a+c+d. For example, if all three devices include rechargeable batteries, then the above mentioned “ERR 17; Battery Charge Failure” may be the device error code that is common to all three devices (e.g., a+c+d). On the other hand, device error code “ERR 37; Left Earpiece Amplifier Failure” may be exclusive to device <b>400</b><i>d </i>(e.g., d-Only) as that device includes left and right earpieces of an over-the-head headphone, for example.
0062In table <b>620</b>, data including but not limited to: data identifying each customer (User ID), data identifying a device type (Device ID) for each device a customer has registered (e.g., with a manufacturer of the device); data identifying the number of instances (#EC) a logged error has been received by the backend system; and a number of times (#CS Contacts) the customer has contacted customer service. The #CS Contacts need not be related to a problem the customer is having with their device. Data including but not limited to User ID and Device ID may be derived from other data and/or databases, such as a database having information on customers who register their devices and as part of the registration process, the customer may enter device information, personal information, etc. Examples of information a customer may register include but are not limited to device serial number, device model number, date of purchase, where device was purchased (e.g., brick-and-mortar retailer, on-line seller, gift, etc.), and purchase price, just to name a few. Registration data may be stored in one or more of the networked resources of backend system <b>490</b> (e.g., <b>504</b>, <b>510</b>, <b>560</b>, <b>571</b>).
0063Table <b>620</b> may be stored in one or more of the networked resources of backend system <b>490</b>, such as in data warehouse <b>510</b>, for example. Table <b>620</b> may be accessed by various networked resources depicted in <figref idref="DRAWINGS">FIG. 5</figref>. Those networked resources may access table <b>620</b> as part of the determination as to whether or not to replace a device. Furthermore, resources in <figref idref="DRAWINGS">FIG. 5</figref> may update, amend, remove or otherwise operate on data included in table <b>620</b>. For example, backend system <b>490</b> may update (e.g., increment) device error code #EC 1 from 0 to 1 based on a recently received <b>501</b> device error codes logged by Device D<b>3</b> of customer U<b>1</b>. The customer service database <b>540</b> may be accessed to change the #CS Contacts from 0 to 1 for customer U<b>1</b> based on customer U<b>1</b> calling customer service (e.g., Calls-In <b>541</b>). Threshold values for the number of customer service contacts and/or number of device error code instances, when exceed, may be used to determine whether or not to generate and/or transmit a device replacement notice. For example if a device error code has 20 instances in table <b>620</b> and that exceeds a threshold of 10 instances, then a device replacement notice may be generated due to the threshold value being exceeded.
0064Referring back to flow <b>300</b> of <figref idref="DRAWINGS">FIG. 3</figref>, backend system <b>490</b> may access resources including but not limited to customer profiling <b>530</b>, data warehouse <b>510</b>, table <b>620</b> and device failure diagnosis <b>520</b> to determine whether or not to replace a customer's device at the stage <b>310</b> based on determinations from prior stages <b>304</b> and/or <b>308</b>. As one example, at the stage <b>306</b>, the NO branch may be taken to the stage <b>314</b> because at the stage <b>304</b>, diagnosis of the device error codes indicates replacement of the device is warranted and there is no need to initiate customer profiling at the stage <b>308</b>. Accordingly, when diagnosis of device error codes calls for device replacement, the stage <b>308</b> may be bypassed by taking the NO branch to the stage <b>314</b>. Device failure diagnosis <b>520</b> may tag certain device error codes (e.g., as data stored in data warehouse <b>510</b>) as being serious enough to warrant device replacement, such that in flow <b>300</b>, the stage <b>308</b> may be bypassed as described above. As one example, in table <b>620</b>, fifteen (15) #EC 10's for device ID D<b>1</b> for customer U<b>199</b> may trigger replacement of device D<b>1</b> due to the number of #EC 10's exceeding a predetermined number (e.g., ≧6). Similarly, device D<b>3</b> of customer U<b>1</b> requires replacement due to twelve (12) #EC 2's being logged for that device and 12 exceeds a maximum number of allowed errors of 5 for device error code EC 2. Device failure diagnosis <b>520</b> may use data from prior diagnosis of data accessed from returned devices database <b>521</b> to determine that device types D<b>1</b> and D<b>3</b> in the above example should be replaced due to the number of logged device error codes for EC 10 and EC 2.
0065For example, in flow <b>300</b>, if the YES branch is taken from the stage <b>306</b>, then at the stage <b>308</b>, customer profiling <b>530</b> may be initiated by backend system <b>490</b> and customer profile data may be accessed and analyzed. As one example, if a customer is likely to call customer service <b>540</b> when they are experiencing problems with their device, that tendency by the customer may be predictable based on prior calls that customer has made and stored as data representing the number of customer service contacts in customer service database <b>540</b>. In table <b>620</b>, customer U<b>0</b> has made four prior customer service contacts (e.g., #CS Contacts 4). Customer profiling <b>530</b> may use statistical and/or other data that indicates a customer who has a number of customer service contacts in the past (e.g., X customer service contacts), is likely to contact customer service in the future if they are experiencing problems with their device. In table <b>620</b>, device D<b>2</b> for customer U<b>0</b> has logged 7 EC 1's and 4 EC 25's, that data from table <b>620</b> along with the 4 prior customer service contacts may result in stage <b>310</b> taking the YES branch to stage <b>314</b> so that a replacement notification may be generated for customer U<b>0</b>.
0066In some examples, customer profiling at stage <b>308</b> may include backend system <b>490</b> accessing data from customer data base <b>560</b> and/or data warehouse <b>510</b> to determine if a customer's profile warrants device replacement based on the profile, based on the device error code diagnosis at the stage <b>306</b>, or based on both. As one example, a device may be seeded with a customer who is a member of the press, an expert, a coach, a trainer, a professional athlete, a technology reviewer, a retailer, etc. It may be desirable to replace a seeded device when device error codes are logged for that device. In some instances, the seeded device may be replaced even if the logged device error codes do not indicate a major defect in the device (e.g., the device would not be replaced based on the device error codes that were received).
0067In some examples, a customer may have a history of repeat purchases of devices and analysis of that customer's profile may indicate that device error codes logged for the customer's device warrant replacing the device as a showing of good will towards a loyal customer. In other examples, regular activity that is indicative of a consistent pattern of customer interaction with the customer's device may be a basis for replacing that device based on logged device error codes. Activities that may indicate the consistent pattern of use include but are not limited to a customer logging (e.g., uploading to a web site) step data (e.g., from walking or running), exercise activity data, diet data, calories burned data, calories consumed data, accelerometry data (e.g., from motion sensors), biometric and/or bioimpedance data (e.g., of the sympathetic nervous system (SNS)), heart rate data, respiration data, playback and/or downloading of content (e.g., music, video, games, APP's, etc.), wireless communications activity between the device and other wireless devices (e.g., a smartphone table, pad, etc.), customer screen activity on another device in communication with the device (e.g., using an APP executing on a computing device to enter exercise/dieting information), customer click-through on emails or other forms of electronic messaging that are received from a manufacturer of the device (e.g., customer clicks a link, an image or a hyperlink in an email), syncing of data between the device and another device, just to name a few, for example.
0068In yet other examples, customer demographics may be used as part of the determination as to whether or not to replace a device based on demographic information about the customer and/or logged device error codes. For example, customers over the age of forty (40) may be more likely to continue to use a device even if the device is malfunctioning. In still other examples, a customer cohort (e.g., how long a customer has been using a device) may be used as part of the determination as to whether or not to replace a device.
0069In one example, a customer may be deemed a high retention customer. The high retention customer may be a high value customer due to prolific use of the device by that customer. However, the high retention customer may stop using the device if it is broken, may not call customer service, and may give up beneficial activates associated with use of the device (e.g., exercise, dieting, sleep monitoring, relaxing to music, etc.). Although the high retention customer is not apt to call customer service it may be desirable to retain the high value customer as an advocate for the device and/or the brand it represents by replacing the device upon detection of device error codes.
0070Turning now to <figref idref="DRAWINGS">FIG. 7</figref> where one example of a computer system <b>700</b> is depicted. In some examples, computer system <b>700</b> may be used to implement circuitry, hardware, client devices, media devices, wireless devices, etc. Computer system <b>700</b> may be used to execute computer programs, applications (e.g., APP's), application programming interfaces (API's), configurations (e.g., CFG's), methods, and processes to perform the above-described techniques (e.g., execute machine readable instructions for of one or more stages of flow <b>200</b>, flow <b>300</b>). Computer system <b>700</b> may be used to implement a computing device, client device, server, a backend system, or the like as described above in reference to <figref idref="DRAWINGS">FIGS. 1, 4, 5 and 6</figref>, for example. Computer system <b>700</b> may include a bus <b>702</b> or other communication structure for communicating signals and/or information. Bus <b>702</b> may interconnect subsystems and devices, such as one or more processors <b>704</b>, system memory <b>706</b> (e.g., RAM, SRAM, DRAM, Flash Memory), storage device <b>708</b> (e.g., Flash Memory, ROM), disk drive <b>710</b> (e.g., magnetic, optical, solid state), communication interface <b>712</b> (e.g., modem, Ethernet, USB, one or more varieties of IEEE 802.11, WiFi, WiMAX, WiFi Direct, Bluetooth, Bluetooth Low Energy, NFC, Ad Hoc WiFi, HackRF, software-defined radio (SDR), WAN or other), display <b>714</b> (e.g., CRT, LCD, OLED, touch screen), one or more input devices <b>716</b> (e.g., keyboard, stylus, touch screen display), cursor control <b>718</b> (e.g., mouse, trackball, stylus), one or more peripherals <b>740</b>. Some of the elements depicted in computer system <b>700</b> may be optional, such as elements <b>714</b>-<b>718</b> and <b>740</b>, for example and computer system <b>700</b> need not include all of the elements depicted. Computer system <b>700</b> may be networked (e.g., via wired <b>720</b> and/or wireless <b>721</b>, <b>727</b> communications link) with other computer systems (not shown). Communications interface <b>712</b> may include an input/output (I/O) unit configured to transmit and/or receive signals and/or data from external sources (e.g., via <b>720</b>, <b>731</b>, <b>721</b>, <b>727</b>) and/or from internal sources of computer system <b>700</b> via bus <b>702</b>, for example.
0071According to some examples, computer system <b>700</b> performs specific operations by processor <b>704</b> executing one or more sequences of one or more instructions stored in system memory <b>706</b>. Such instructions may be read into system memory <b>706</b> from another non-transitory computer readable medium, such as storage device <b>708</b> or disk drive <b>710</b> (e.g., a HD or SSD). In some examples, circuitry may be used in place of or in combination with software instructions for implementation. The term “non-transitory computer readable medium” refers to any tangible medium that participates in providing instructions and/or data to processor <b>704</b> for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, Flash Memory, optical, magnetic, or solid state disks, such as disk drive <b>710</b>. Volatile media includes dynamic memory (e.g., DRAM), such as system memory <b>706</b>. Common forms of non-transitory computer readable media includes, for example, floppy disk, flexible disk, hard disk, non-volatile memory, Flash Memory, SSD, magnetic tape, any other magnetic medium, CD-ROM, DVD-ROM, Blu-Ray ROM, USB thumb drive, SD Card, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer may read.
0072Instructions may further be transmitted or received using a transmission medium. The term “transmission medium” may include any tangible or intangible medium that is capable of storing, encoding or carrying instructions for execution by the machine, and includes digital or analog communications signals or other intangible medium to facilitate communication of such instructions. Transmission media includes coaxial cables, copper wire, and fiber optics, wires that include bus <b>702</b> for transmitting a computer data signal. In some examples, execution of the sequences of instructions may be performed by a single computer system <b>700</b>. According to some examples, two or more computer systems <b>700</b> coupled by communication link <b>720</b> (e.g., LAN, Ethernet, PSTN, USB, wireless network, WiFi, WiMAX, WiFi Direct, Bluetooth (BT), NFC, Ad Hoc WiFi, HackRF, software-defined radio (SDR), or other) may perform the sequence of instructions in coordination with one another. Computer system <b>700</b> may transmit and receive messages, data, and instructions, including programs, (e.g., application code), through communication link <b>720</b> and communication interface <b>712</b>.
0073Received program code may be executed by processor <b>704</b> as it is received, and/or stored in a drive unit <b>710</b> (e.g., a SSD or HD) or other non-volatile storage for later execution. Computer system <b>700</b> may optionally include one or more wireless systems <b>713</b> (e.g., one or more radios) in communication with the communication interface <b>712</b> and coupled (<b>715</b>, <b>723</b>) with one or more antennas (<b>717</b>, <b>725</b>) for receiving and/or transmitting RF signals (<b>721</b>, <b>727</b>), such as from a WiFi network, BT radio, or other wireless network and/or wireless devices, for example. Examples of wireless devices include but are not limited to: a data capable strap band, wristband, wristwatch, digital watch, or wireless activity monitoring and reporting device; a smartphone; cellular phone; a tablet; a tablet computer; a pad device; a touch screen device; a touch screen computer; a laptop computer; a personal computer; a server; a personal digital assistant (PDA); a portable gaming device; a mobile electronic device; and a wireless media device, just to name a few.
0074Computer system <b>700</b> in part or whole may be used to implement one or more systems, devices, or methods that communicate with one or more external devices (e.g., external devices that transmit and/or receive electronic messages, such as device error code(s)). Wireless systems <b>713</b> may be coupled <b>731</b> with an external system, such as an external antenna or a router, for example. Computer system <b>700</b> in part or whole may be used to implement a remote server, a networked computer, a client device, a host device, a media device, or other compute engine in communication with other systems or devices as described herein. Computer system <b>700</b> in part or whole may be included in a portable device such as a smartphone, laptop, client device, host device, tablet, or pad.
0075Although the foregoing examples have been described in some detail for purposes of clarity of understanding, the above-described inventive techniques are not limited to the details provided. There are many alternative ways of implementing the above-described techniques or the present application. The disclosed examples are illustrative and not restrictive.
Contents4
9 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9
Every citation, both ways
| Document | Relation | Office | Cited during |
|---|---|---|---|
| CN116743628A | Cited by | China | Search report |
| US2022283930A1 | Cited by | United States of America | Search report |
| US10524268B2 | Cited by | United States of America | Applicant |
| US10103936B2 | Cited by | United States of America | Applicant |
| US9811818B1 | Cited by | United States of America | Search report |
| US2017091120A1 | Cited by | United States of America | Pre-grant |
| US2022365718A1 | Cited by | United States of America | Search report |
| US12136094B1 | Cited by | United States of America | Search report |
| US11595290B2 | Cited by | United States of America | Search report |
| US2023350377A1 | Cited by | United States of America | Search report |
| US11709764B2 | Cited by | United States of America | Search report |
| US2017161720A1 | Cited by | United States of America | Pre-grant |
| US2021075712A1 | Cited by | United States of America | Search report |
| US10796253B2 | Cited by | United States of America | Applicant |
| US12499450B1 | Cited by | United States of America | Applicant |
| US10296467B2 | Cited by | United States of America | Search report |
| US10055273B2 | Cited by | United States of America | Search report |
| US9704154B2 | Cited by | United States of America | Search report |
| US2017052842A1 | Cited by | United States of America | Pre-grant |
| US10678621B2 | Cited by | United States of America | Search report |
| US10439913B2 | Cited by | United States of America | Applicant |
| US10063438B2 | Cited by | United States of America | Applicant |
| US10452383B1 | Cited by | United States of America | Search report |
| US2017278133A1 | Cited by | United States of America | Search report |
| US2023306408A1 | Cited by | United States of America | Search report |
| US10334462B2 | Cited by | United States of America | Applicant |
| US12028235B2 | Cited by | United States of America | Applicant |
| US12105497B2 | Cited by | United States of America | Search report |
| US12561091B2 | Cited by | United States of America | Search report |
| US11314570B2 | Cited by | United States of America | Search report |
| CN110532122A | Cited by | China | Search report |
| US2017091120A1 | Cited by | United States of America | Search report |
| US11570313B2 | Cited by | United States of America | Search report |
| US10282118B2 | Cited by | United States of America | Search report |
2 members in 2 offices
Members2
| Document | Office | Kind | |
|---|---|---|---|
| US2016328282A1 | United States of America | A1 | |
| WO2016179571A1 | World Intellectual Property Organization (WIPO) | A1 |
26 transactions on the USPTO file
Abandoned after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Email NotificationEML_NTR | EML_NTR | |
| Mail Abandonment for Failure to Respond to Office ActionAbandonedMABN2 | MABN2 | |
| Aband. for Failure to Respond to O. A.AbandonedABN2 | ABN2 | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Mail Post CardPST_CRD | PST_CRD | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Application Is Now CompleteCOMP | COMP | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Application Is Now CompleteCOMP | COMP | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
13 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| Information on status: application discontinuationABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTIONSTCB | STCB | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS | |
| AssignmentAS | AS |
Numbers
- Publication
- 20160328282
- Application
- 14705917
Titles
- English
- PREDICTIVE DEVICE FAILURE ANALYSIS
Classification
- CPC, 5
- G06F11/0772
- G06F11/0766
- G06F11/0709
- G06F11/076
- G06F11/079
- IPC, 1
- G06F11 07