Detecting a malfunctioning device using sensors

Various embodiments are related to apparatuses and methods for detecting a malfunctioning device using a sensor. An electronic device, such as a card reader, can be coupled to a mobile device, such as a smartphone. The smartphone has an integrated sensor, such as a motion sensor. An application can run on the smartphone and can use the sensor to determine the status of the electronic device, for example using the motion sensor to determine that the card reader has a status of malfunctioning. The application can determine that the card reader is malfunctioning by analyzing the motion sensor data to detect movements indicating multiple card swipes. If the card reader did not read any data during the card swipes, the application can deduce that the card reader is malfunctioning. The application can cause a replacement card reader to be sent to replace the malfunctioning card reader.

BACKGROUND

People use a multitude of electronic devices. Some of these electronic devices can be attached to devices such as smart phones, for example an iPhone, or tablets, for example an iPad. One example of such an electronic device is a card reader. A card reader can read credit cards or ATM cards. Some card readers are made such that the card reader needs to be attached to a device such as a smart phone or tablet in order to process a payment made using the card reader.

These electronic devices occasionally fail. When an electronic device fails, and if the electronic device is covered by a warranty or a replacement plan, some users will take prompt action to replace the electronic device. Other users may not take prompt action. For example, the user may be busy and may not have the time to obtain a replacement electronic device. Or the user may not consider the electronic device to be very important, so the user may decide that replacing the electronic device is not worth the time it would take. For these users, it may take quite a while to replace the electronic device, assuming that it is replaced at all.

The drawings are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be expanded or reduced to help improve the understanding of the embodiments of the present invention. Similarly, some components and/or operations may be separated into different blocks or combined into a single block for the purposes of discussion of some of the embodiments of the present invention. Moreover, while the invention is amenable to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and are described in detail below. The intention, however, is not to limit the invention to the particular embodiments described. On the contrary, the invention is intended to cover all modifications, equivalents, and alternatives falling within the scope of the invention as defined by the appended claims.

DETAILED DESCRIPTION

This application discloses technology related to detecting a malfunctioning device using sensors. An electronic device, such as a card reader, can be attached to a mobile device, such as a smart phone. The smart phone has an integrated motion sensor. An application can run on the smart phone can use the motion sensor to determine, for example, when the electronic device has malfunctioned or is about to malfunction. The application can determine that the card reader has malfunctioned by analyzing motion sensor data to detect movements indicating multiple card swipes. If the card reader did not read any data from the card during any of the multiple card swipes, the application can determine that the card reader is malfunctioning. The application can cause a replacement card reader to be sent to replace the malfunctioning card reader.

Applications exist where a company generates revenue from the use of an electronic device connected to a mobile device. For example, a payment processing company can generate revenue when a user uses an electronic device, such as a card reader, in combination with a mobile device, such as a smart phone, to receive a payment. If the card reader fails, the user may not be able to process a payment made using a credit card, and the payment processing company can lose revenue due to the lost payment due to the malfunctioning card reader.

Such a company is negatively financially impacted when the electronic device fails, and the company is motivated to rapidly replace the defective electronic device. For example, the previously discussed payment processing company can lose revenue due to lost payment transactions when a card reader fails, so the payment processing company is motivated to rapidly replace the malfunctioning card reader. The payment processing company is unsatisfied waiting for the user to report the defective card reader, as the user may take a significant amount of time to file the report, or may even choose to not file a report. The payment processing company, and other companies with similar concerns, would like to detect when an electronic device malfunctions, so that the company can proactively replace the malfunctioning device.

Many mobile devices, such as smart phones and tablets, include integrated sensors such as motion sensors. An application running on the smart phone can utilize the motion sensors to determine the physical movement of the smart phone. For example, the smart phone can be physically connected to a card reader such that the card reader and the smart phone move in unison. A user can perform a card swipe to read, for example, a credit card using the card reader. The physical motion of swiping the card through the card reader causes the smart phone to move in a distinct fashion. The distinctive fashion of motion can include, for example, the motion and acceleration that occurs during the card swipe, as well as the vibrations that occur during the card swipe. The application running on the smart phone can use motion data from the motion sensor to determine that the phone has moved in a way indicative of a card swipe.

The application can further communicate with the electronic device, such as the card reader. During a successful card swipe of a credit card, the card reader reads data from the magnetic stripe of the credit card. The application can determine from the card read data that a successful card swipe occurred.

The application, using the data from the motion sensors, can determine that the motion sensor data indicates that a card swipe occurred. Combining the detection of a card swipe with data from the card reader, the application can determine that the card reader did not successfully read the data from the swiped card. For example, the application using the motion sensor data can determine that a card swipe occurred. The application can also use the communications from the card reader to determine if the associated card read was successful.

When the motion sensor data indicates that a card swipe has occurred, but no data was received from the card reader, the application can determine that the card swipe was unsuccessful. Based on this result, or combined with data from other card swipes, the application can determine that the card reader is malfunctioning. The application can cause a replacement card reader to be sent to replace the malfunctioning card reader.

Terminology

The phrases “in some embodiments,” “according to various embodiments,” “in the embodiments shown,” “in one embodiment,” “in other embodiments,” and the like generally mean the particular feature, structure, or characteristic following the phrase is included in at least one embodiment of the present invention, and may be included in more than one embodiment of the present invention. In addition, such phrases do not necessarily refer to the same embodiments or to different embodiments.

The term “module” refers broadly to software stored on non-transitory storage medium (e.g., volatile or non-volatile memory for a computing device), hardware, or firmware (or any combination thereof) components. Modules are typically functional components that can generate useful data or other output using specified input(s). A module may or may not be self-contained. An application program (also called an “application”) may include one or more modules, or a module can include one or more application programs.

FIG. 1is a flow chart illustrating exemplary operations of a method for detecting a malfunctioning card reader. The following description ofFIG. 1will be described using the system illustrated inFIG. 2, and will refer to labels of that figure. This is a non-limiting example and is done with the intent of making the description ofFIG. 1easier to understand. It is noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 1can be carried out by computer system220. Computer system220can be computer system700ofFIG. 7.

Step105includes determining a heuristic that indicates that a card reader is malfunctioning. Steps110and115are one set of steps that can perform the determination of step105. An example of a heuristic that indicates that a card reader is malfunctioning is a combination of motion sensor data indicating multiple card swipes, and associated card read data from or associated with the card swipes indicating that none of the associated card reads were successful. The card reader can be physically coupled to the mobile device such that the two devices move in unison during the card swipe, and the motion sensor can be integrated in the mobile device. A second example of a heuristic that indicates that a card reader is malfunctioning is a first set of motion sensor data and associated card read data indicating multiple card swipes in a predetermined time period and no successful card read in the predetermined time period.

A card swipe is when a user swipes a card through a card reader. An example of a card swipe is when user225swipes card215through card reader210. The card swipe motion causes the magnetic stripe of card215to pass through card reader210such that card reader210can read the data from the magnetic stripe. A card read is when a card reader, such as card reader210, reads data from the magnetic stripe of a card, such as card215, during a card swipe. For example, when card215is swiped through card reader210, card reader210can read the data of the magnetic stripe of card215. Card read data is the data from a card read. For example, card read data can be the data generated by card reader210during or associated with a swipe of card215through card reader210by user225. The card read data can include the data read from the magnetic stripe of card215, as well as other information or data. For example, the card read data can include information as to whether or not the card read was successful, time and date information, information related to the purpose for which the card swipe is happening (for example, information such as a sales price for a purchase transaction, when the card swipe is to pay for the purchase transaction).

Step110includes receiving, from multiple mobile devices, motion sensor data and card read data from multiple card reader card swipes. Using the example ofFIG. 2, card reader210can be directly and physically coupled to mobile device205, a smart phone in this example, such that card reader210and mobile device205move in unison. Mobile device205can include a motion sensor, which can be integrated, and which indicates motion by generating data that characterizes the motion. For example, the motion sensor can generate data representing an acceleration vector for the motion sensor, which indicates an acceleration of the motion sensor along that vector. When user225swipes card215through card reader210, both card reader210and mobile device205can move in unison. The card swipe motion causes the magnetic stripe of card215to pass through card reader210such that card reader210can read the data from the magnetic stripe.

As discussed above related to step105, an example of a heuristic indicating a card reader malfunction is a combination of motion sensor data indicating multiple card swipes, and associated card read data indicating that none of the associated card reads were successful. A method of detecting a card swipe may be needed to determine this heuristic.

In some cases, a card swipe can be detected by a card reader performing a card read. Card reader210can send a notification of a successful or failed card read, the notification serving the additional purpose of indicating that a card swipe occurred. In some cases, such as when card reader210is malfunctioning such that it does not indicate that a card swipe occurred, or when card reader210does not send a notification of a card read, an additional method of detecting a card swipe can be needed.

To determine a heuristic that indicates that a card reader is malfunctioning, an additional method of detecting a card swipe (i.e., a card swipe detect method) may be needed. The card swipe detect method can be based on motion sensor data. When a user does a card swipe, the card swipe can have a distinctive motion pattern. The distinctive motion pattern can include, for example, the motion and acceleration that occurs during the card swipe, as well as the vibrations that occur during the card swipe. Motion sensor data from multiple card reader card swipes, along with the associated card read data, can be collected. For example, motion sensor and card read data from a number of card swipes by a number of different users using a number of different card readers, each card reader coupled to a different mobile device, can be collected. As a second example, motion sensor and card read data from a number of card swipes by one user using one card reader coupled to one mobile device can be collected. The collected data can be analyzed to determine the characteristics of the distinctive motion pattern associated with a card swipe.

As an example of the collected data, user225can perform a card swipe by swiping card215through card reader210. Card reader210can send a notification of a successful or unsuccessful card read, thereby notifying a software application running on mobile device205of a card swipe. The software application can collect the motion sensor and card read data from or associated with the card swipe. Mobile device205can send this motion sensor and card read data to, for example, computer system220. Similar data can be collected from a number of card swipes by a number of users using a number of card readers. Step110can include computer system220receiving, from multiple mobile devices, motion sensor data and card read data from multiple card reader card swipes.

Step115includes determining the heuristic based at least in part on the motion sensor data and the card read data. Step115can occur after step110. Using the example ofFIG. 2, the motion sensor and card read data can be the data received by computer system220during step110. As discussed above related to step105, an example of a heuristic is a combination of motion sensor data indicating multiple card swipes, and associated card read data indicating that none of the associated card reads were successful.

As part of determining the heuristic, a card swipe detect method as discussed above related to step110can be determined. The motion sensor and card read data received during step110can be analyzed to determine characteristics or heuristics of a distinctive motion pattern associated with a card swipe. As discussed above, the distinctive motion pattern can include, in addition to the motion and acceleration that occurs during the card swipe, the vibrations that occur during the card swipe. The card read data can be used to determine that a card swipe occurred, and the associated motion sensor data can be analyzed to determine the characteristics or heuristics of the card swipe motion. Step115can include computer system220determining the heuristic based at least in part on the motion sensor data and the card read data.

Step120includes receiving, from a first mobile device, card swipe motion sensor data and associated card read data from a card swipe of a first card reader coupled to the first mobile device. Step120can occur after any of step105-115. Using the example ofFIG. 2, card reader210can be directly and physically coupled to mobile device205, a smart phone in this example, such that the two components can move in unison. Mobile device205can include a motion sensor, which can be integrated. When user225swipes card215through card reader210, both card reader210and mobile device205can move in unison. The card swipe motion sensor data is the data generated by mobile device205's integrated motion sensor during or associated with the card swipe of card215through card reader210. The associated card read data is the data generated by card reader210from or associated with the card swipe.

The associated card read data can further be no data. For example, a card swipe can be detected based on the motion sensor data. Due to a bad card reader, there may be no card read data from the card read associated with the card swipe. In such a case, there would be motion sensor data indicating a card swipe, and the associated card read data would be no data, indicating that no card read occurred. Step120can include computer system220receiving, from mobile device205, card swipe motion sensor data and associated card read data from user225's swipe of card215using card reader210, which is coupled to mobile device205.

Step125includes determining that the card swipe motion sensor data and the associated card read data indicate that the first card reader is malfunctioning based at least in part on the heuristic. Step125can occur after step120. Using the example ofFIG. 2, computer system220can determine that the first card reader is malfunctioning. The heuristic can be, for example, that multiple card swipe were detected, but there was no associated successful card read. The card swipe motion sensor data can be analyzed to determine that a card swipe occurred. The card read data associated with the card swipe can be analyzed to determine that the card read associated with the card swipe was unsuccessful. Step125can include computer system220determining that the card swipe motion sensor data, which can indicate that a card swipe occurred, and the associated card read data, which can indicates that the associated card read was bad, indicate that card reader210is malfunctioning based at least in part on the heuristic

Step130includes causing a replacement card reader to be sent to an address associated with the first mobile device. Using the example ofFIG. 2, computer system220can have access to a customer database that associates identifying information from mobile devices to customers, and that associates customers to their addresses. Computer system220can receive identifying information, such as a mobile identification number (MIN) or a mobile subscription identification number (MSIN), from mobile device205. Computer system220can execute one or more database lookup commands to determine the user associated with mobile device205, such as user225, and to determine the address associated with user225. Step130can include computer system220, having determined that card reader210is malfunctioning or is about to malfunction, causing a new card reader to be shipped to the address associated with user225.

FIG. 2is a diagram illustrating components of or associated with a method for detecting a malfunctioning card reader.FIG. 3includes mobile device205, card reader210, card215, computer system220, and user225. Examples of mobile devices, such as mobile device205, include smart phones such as an iPhone, tablets such as an iPad, portable media devices such as an iPod, wearable devices such as Google Glass or Samsung Smartwatch, or a laptop or other portable computer. Card reader210can be an electronic device. Computer system220can be computer system700ofFIG. 7. In various embodiments, card215can be a magnetic stripe card, a smart card, a proximity card, a re-programmable magnetic stripe card, a card containing a quick response (QR) code, a card containing a bar code, a credit card, charge card, an ATM card, a debit card, a pre-paid credit card, a pre-paid debit card, a gift card, a stored value card, and a fleet card, among others. A financial transaction card can be card215, among other cards.

FIG. 3is a flow chart illustrating exemplary operations of a method for determining a heuristic that indicates a status of an electronic device. The following description ofFIG. 3will be described using the system illustrated inFIG. 2, and will refer to labels of that figure. This is a non-limiting example and is done with the intent of making the description ofFIG. 3easier to understand. It is noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 3can be carried out by computer system220.

Step305includes receiving, from a mobile device coupled to the electronic device, motion sensor data associated with a use of the electronic device involving motion of the mobile device, and from a motion sensor that is integrated in the mobile device and that indicates movement of the mobile device. Using the example ofFIG. 2, mobile device205can be the mobile device. Mobile device205can include a motion sensor, which can be integrated, and which can indicate motion by generating data that characterizes the motion. For example, the motion sensor can generate data representing an acceleration vector for the motion sensor, which indicates an acceleration of the motion sensor along that vector. Card reader210can be the electronic device. Mobile device205can be directly and physically coupled to card reader210such that mobile device205and card reader210move in unison.

The use of the electronic device involving motion of the mobile device can be a card swipe of card215through card reader210by user225. The card swipe induces motion in mobile device205due to the physical coupling between card reader210and mobile device205. The motion sensor data can be the data generated by mobile device205's motion sensor during or associated with the card swipe. Step305can include computer system220receiving, from mobile device205which is coupled to card reader210, motion sensor data associated with a use of card reader210involving motion of mobile device205, from a motion sensor that is integrated in mobile device205and that indicates movement of mobile device205. The use can be a card swipe of card215through card reader210by user225.

Step310includes receiving, from the mobile device, electronic device data associated with the use of the electronic device. Step310can occur before or after step305. Using the example ofFIG. 2, the mobile device can be mobile device205and the electronic device can be card reader210. The electronic device data can be the data generated by card reader210during or associated with the card swipe referred to in step305. The use of the electronic device can be the use of card reader210during the card swipe referred to in step305. The electronic device data can include the data read by card reader210from the magnetic stripe of card215, as well as other information or data. For example, the electronic device data can include information as to whether or not the card read was successful, time and date information, information related to the purpose for which the card swipe is happening (for example, information such as the sales price related to a purchase transaction, when the card swipe is for paying for the purchase transaction). Step310can include computer system220receiving, from mobile device205, card read data associated with the use of card reader210, the use being the card swipe referred to in step305.

Step315includes determining a heuristic that indicates a status of the electronic device based at least in part on the motion sensor data and the electronic device data. Step315can occur after both steps305and310. Using the example ofFIG. 2, the electronic device can be card reader210. The motion sensor data can be the motion sensor data of step305. The electronic device data can be the electronic device data of step310. A heuristic that indicates a status of the electronic device can be, for example, a heuristic that indicates that card reader210is malfunctioning, as discussed in step125ofFIG. 1. The status can be, for example, malfunctioning or will soon malfunction. Will soon malfunction can be defined, for example, as a probability above a predetermined threshold that the electronic device will malfunction within a certain predetermined time frame.

As discussed in step105ofFIG. 1, an example of a heuristic that indicates a status of the electronic device based at least in part on the motion sensor data and the electronic device data can be a combination of motion sensor data indicating multiple card swipes, and associated card read data from or associated with the card swipes indicating that none of the associated card reads were successful. A second example of such a heuristic can be a first set of motion sensor data and associated card read data indicating multiple card swipes in a predetermined time period and no successful card read in the predetermined time period.

The determination of these example heuristics is based at least in part on the motion sensor data because the motion sensor data can be used to determine the characteristics of heuristics of a distinctive motion pattern associated with a card swipe, as is discussed in step115ofFIG. 1. The determination of these example heuristics is based at least in part on the electronic device data because the electronic device data can be used to determine that a card swipe occurred, as is discussed in step115ofFIG. 1. Step315can include computer system220determining a heuristic that indicates a status of the electronic device based at least in part on the motion sensor data and the electronic device data.

FIG. 4is a flow chart illustrating exemplary operations of a first method for determining a status of an electronic device. The following description ofFIG. 4will be described using the system illustrated inFIG. 2, and will refer to labels of that figure. This is a non-limiting example and is done with the intent of making the description ofFIG. 4easier to understand. It is noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 4can be carried out by computer system220.

Step405includes receiving, from a mobile device coupled to an electronic device, motion sensor data associated with a use of the electronic device involving motion of the mobile device, and from a motion sensor that is integrated in the mobile device and that indicates movement of the mobile device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. Mobile device205can be directly and physically coupled to card reader210such that mobile device205and card reader210move in unison.

In some embodiments, other sensors may replace or be in addition to the motion sensor. The other sensors can be integrated in the mobile device and can indicate the movement of the mobile device or some other physical manifestation of the mobile device. The sensors can include a camera, a microphone, an audio sensor, an accelerometer, a pressure sensor, a location sensor, a global positioning system (GPS) sensor, a temperature sensor, a humidity sensor, a magnetic field sensor, an electric field sensor, a light sensor, an infrared light sensor, and a proximity sensor, among other sensors. Some example may be helpful. A camera can indicate motion by the scene of the picture changing. A microphone can indicate motion by sounds of objects changing. For example, a microphone can indicate motion of an approaching train by the change in the sound of the train whistle as the train passes. A humidity sensor can indicate a change in the dampness of the device, with higher humidity indicating a more damp device. A proximity sensor can indicate motion of the mobile device by indicating a change in proximity to a stable object. These are just a couple of non-limiting examples as to how the sensors can indicate some physical manifestation of the mobile device.

Mobile device205can include an integrated motion sensor, which can indicate and characterize movement of mobile device205. The motion sensor can indicate movement of mobile device205by sending data that characterizes the movement of the motion sensor. For example, the motion sensor can send motion sensor data that characterizes an acceleration of the motion sensor in a certain direction, or a rotation around a certain axis of rotation. The motion sensor is integrated in mobile device205, which causes the two devices to move in unison. An indication or characterization of movement of the motion sensor will also be an indication or characterization of movement of mobile device205, because the two devices move in unison.

The use of the electronic device involving motion of the mobile device can be a card swipe of card215through card reader210by user225. The motion sensor data can be the data generated by mobile device205's motion sensor during or associated with the card swipe. Step405can include computer system220receiving, from mobile device205coupled to card reader210, motion sensor data associated with the use of card reader210involving motion, the use being a card swipe of card215through card reader210by user225. The motion sensor data can be from the motion sensor that is integrated in mobile device205. The motion sensor can indicate movement of mobile device205.

Step410includes receiving, from the mobile device, electronic device data associated with the use of the electronic device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. The use of the electronic device can be a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe of step405. The electronic device data can include the data read from the magnetic stripe of card215, as well as other information or data. For example, the electronic device data can include information as to whether or not the card read was successful, time and date information, information related to the purpose for which the card swipe is happening (for example, information such as the sales price related to a purchase transaction, when the card swipe is to pay for the purchase transaction). Step410can include computer system220receiving, from mobile device205, card read data associated with the card swipe of card215through card reader210by user225.

Step415includes accessing a heuristic that indicates the status of the electronic device. Using the example ofFIG. 2, the electronic device can be card reader210. One or more heuristics can be stored on a storage device, such as a storage device accessible by computer system220. The heuristics can be stored, for example, in a database, or can be stored inside of a computer program, such as in one or more computer program modules. One example of a heuristic can be that multiple card swipes were detected, such as multiple card swipes of card215through card reader210by user225, but there was no associated successful card read, such as by card reader210. The heuristic can include data related to detecting the card swipe, such as by detecting the distinctive physical motion associated with swiping the card through the card reader. The distinctive physical motion can include, for example, the motion and acceleration that occurs during the card swipe, as well as the vibrations that occur during the card swipe. The status that is indicated by this heuristic is that card reader210may be malfunctioning, or may malfunction soon. Step415can include computer system220accessing a heuristic, such as multiple card swipes being detected with no associated successful card read, that indicates a status, such as malfunctioning or soon to malfunction, of an electronics device, such as card reader210.

A second example of a heuristic can be that a signature was detected, but there was no associated signature sent or received. The heuristic can include the distinctive physical motion associated with a person signing a signature. The distinctive physical motion can include, for example, the motion and acceleration, as well as the vibration, that occurs when a person provides a signature. The status that can be indicated by this heuristic is that a touch screen or electronic pad used to capture the signature may be malfunctioning, or may malfunction soon.

Step420includes determining that the motion sensor data and the electronic device data indicate the status based at least in part on the heuristic. Using the example ofFIG. 2, the motion sensor data can be the data generated by mobile device205's integrated motion sensor during a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe (i.e., the card read data). One example of a heuristic can be that multiple card swipes were detected, such as multiple card swipes of card215through card reader210by user225, but there was no associated successful card read, such as by card reader210.

The motion sensor data can indicate that a card swipe occurred. The card read data can indicate that there was no successful card read during or associated with the card swipe. The card read data can be no data. For example, when card reader210is malfunctioning such that it sends no data during a card swipe, then the card reader sending no data can indicate that there was no successful card read during the card swipe. Step420can include computer system220determining that the motion sensor data, which can indicate that multiple card swipes occurred, and the electronic device data, which can indicate that there was no successful card read during or associated with the card swipe, indicate a status, which is that card reader210is malfunctioning or is about to malfunction, based at least in part on the heuristic.

Step425includes causing, when the determination indicates that the status is malfunctioning, a replacement electronic device to be sent to an address associated with the mobile device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. In step420, computer system220determined that card reader210(the electronic device) is malfunctioning or is about to malfunction. Computer system220can have access to a customer database that associates identifying information from mobile devices with customers, and that associates customers with addresses. Computer system220can receive identifying information, such as a mobile identification number (MIN) or a mobile subscription identification number (MSIN), from mobile device205. Computer system220can execute one or more database lookup commands to determine the user associated with mobile device205, such as user225, and to determine the address associated with user225. Step425can include computer system220, when the determination of step420indicates the status that card reader210is malfunctioning or is about to malfunction, causing a card reader to replace card reader210to be sent to an address associated with mobile device205.

FIG. 5is a flow chart illustrating exemplary operations of a second method for determining a status of an electronic device. The following description ofFIG. 5will be described using the system illustrated inFIG. 2, and will refer to labels of that figure. This is a non-limiting example and is done with the intent of making the description ofFIG. 5easier to understand. It is noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 5can be carried out by mobile device205.

Step505includes sending, to a computer system, motion sensor data associated with a use of the electronic device involving motion of the mobile device, and from a motion sensor that is integrated in the mobile device and that indicates movement of the mobile device, the mobile device coupled to the electronic device. Using the example ofFIG. 2, the computer system can be computer system220. The mobile device can be mobile device205. The electronic device can be card reader210. Mobile device205can be directly and physically coupled to card reader210such that mobile device205and card reader210move in unison. Mobile device205can include an integrated motion sensor, which can indicate and characterize movement of mobile device205. The motion sensor can indicate movement of mobile device205by sending data that characterizes the movement. For example, the motion sensor can send data that characterizes an acceleration in a certain direction of the motion sensor, or a rotation around a certain axis of rotation.

The use of the electronic device involving motion of the mobile device can be a card swipe of card215through card reader210by user225. The motion sensor data can be the data generated by mobile device205's motion sensor during the card swipe. Step505can include mobile device205sending, to computer system220, motion sensor data associated with the use of card reader210involving motion, the use being a card swipe of card215through card reader210by user225. The motion sensor data can be from the motion sensor that is integrated in mobile device205. The motion sensor can indicate movement of mobile device205. Mobile device205can be coupled to card reader210.

Step510includes sending, to the computer system, electronic device data associated with the use of the electronic device. Using the example ofFIG. 2, the computer system can be computer system220. The mobile device can be mobile device205. The electronic device can be card reader210. The use of the electronic device can be a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe. The electronic device data can include the data read from the magnetic stripe of card215, as well as other information or data. For example, the card read data can include information as to whether or not the card read was successful, time and date information, information related to the purpose for which the card swipe is happening (for example, information such as the sales price related to a purchase transaction, when the card swipe is for paying for the purchase transaction). Step510can include mobile device205sending, to computer system220, card read data associated with the card swipe of card215through card reader210by user225.

Step515includes causing the computer system to access a heuristic that indicates the status of the electronic device. Using the example ofFIG. 2, the electronic device can be card reader210. One or more heuristics can be stored on a storage device, such as a storage device accessible by computer system220. The heuristics can be stored, for example, in a database, or can be stored inside of a computer program, such as in one or more modules of the computer program. One example of a heuristic can be that multiple card swipe were detected, such as card swipes of card215through card reader210by user225, but there was no associated successful card read, such as of card215by card reader210. The status that is indicated by this heuristic is that card reader210may be malfunctioning, or may malfunction soon. Step515can include mobile device205causing computer system220to access a heuristic that indicates a status that card reader210may be malfunction, or may malfunction soon. Mobile device205can cause this by sending card read data associated with the use of card reader210to computer system220, because the act of sending the data can cause computer system220to receive the data, which can cause a software program running on computer system220to access the heuristic.

Step520includes causing the computer system to determine that the motion sensor data and the electronic device data indicate the status based at least in part on the heuristic. Using the example ofFIG. 2, the motion sensor data can be the data generated by mobile device205's integrated motion sensor during a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe. One example of a heuristic can be that multiple card swipes were detected, such as multiple card swipes of card215through card reader210by user225, but there was no associated successful card read, such as of card215by card reader210.

The motion sensor data can indicate that multiple card swipes occurred. The card read data can indicate that there was no successful card read for any of the card swipes. The card read data can be no data. For example, when card reader210is malfunctioning such that it sends no data during a card swipe, then the card reader sending no data can indicate that there was no successful card read during the card swipe. Step520can include mobile device205causing computer system220to determine that the motion sensor data, which can indicates that multiple card swipes occurred, and the electronic device data, which can indicate that there was no successful card for any of the card swipes, indicate the status, which is that card reader210is malfunctioning or is about to malfunction, based at least in part on the heuristic.

Step525includes causing the computer system, when the computer system determines that the indicated status is malfunctioning, to cause a replacement electronic device to be sent to an address associated with the mobile device. In some embodiments, a replacement electronic device can be caused to be sent when the status is about to malfunction. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. In step520, mobile device205can cause computer system220to determine that card reader210(the electronic device) is malfunctioning or is about to malfunction.

Computer system220can have access to a customer database that associates identifying information from mobile devices with customers, and that associates customers with their addresses. Computer system220can receive identifying information, such as a mobile identification number (MIN) or a mobile subscription identification number (MSIN) from mobile device205. Computer system220can execute one or more database lookup commands to determine the user associated with mobile device205, such as user225, and to determine the address associated with user225, the address also being associated with mobile device205. Mobile device205, when the determination of step520indicates the status that card reader210is malfunctioning or is about to malfunction, can cause computer system220to cause a replacement card reader to be sent to an address associated with mobile device205.

FIG. 6is a flow chart illustrating exemplary operations of a third method for determining a status of an electronic device. The following description ofFIG. 6will be described using the system illustrated inFIG. 2, and will refer to labels of that figure. This is a non-limiting example and is done with the intent of making the description ofFIG. 6easier to understand. It is noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 6can be carried out by computer system220. It is also noteworthy that, in some embodiments, including the embodiment ofFIG. 2, all steps of the method ofFIG. 6can be carried out by mobile device205.

Step605includes receiving motion sensor data associated with a use of the electronic device involving motion of a mobile device, and from a motion sensor that is integrated in the mobile device and that indicates movement of the mobile device, the mobile device coupled to the electronic device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. The motion sensor that is integrated in the mobile device can be mobile device205's integrated motion sensor, the integration such that the integrated motion sensor and mobile device205can move in unison. Mobile device205can be directly and physically coupled to card reader210, such that mobile device205and card reader210move in unison.

The integrated motion sensor can indicate and characterize movement of mobile device205by sending data that characterizes the movement of the integrated motion sensor. For example, the integrated motion sensor can send motion sensor data that characterizes an acceleration of the integrated motion sensor in a certain direction, or a rotation around a certain axis of rotation. Because the integrated motion sensor and mobile device205move in unison, an indication or characterization of movement of the integrated motion sensor will also indicate or characterize movement of mobile device205.

The use of the electronic device involving motion of the mobile device can be a card swipe of card215through card reader210by user225. The motion sensor data can be the data generated by mobile device205's integrated motion sensor during or associated with the card swipe. Step605can include in some embodiments computer system220receiving, and in some embodiments mobile device205receiving, motion sensor data associated with a use of card reader210involving motion of mobile device205. The motion sensor data can be from mobile device205's integrated motion sensor. The integrated motion sensor can indicate movement of mobile device205.

Step610includes receiving electronic device data associated with the use of the electronic device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. The use of the electronic device can be a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe of step605. The electronic device data can include the data read from the magnetic stripe of card215, as well as other information or data. Step610can include in some embodiments computer system220receiving, and in some embodiments mobile device205receiving, card read data associated with the card swipe of card215through card reader210by user225.

Step615includes accessing a heuristic that indicates the status of the electronic device. Using the example ofFIG. 2, the electronic device can be card reader210. One or more heuristics can be stored on a storage device, such as a storage device accessible in some embodiments by computer system220, and in some embodiments by mobile device205. The heuristics can be stored, for example, in a database, or can be stored inside of a computer program, such as in one or more modules of the computer program. One example of a heuristic can be that multiple card swipes were detected, such as multiple card swipes of card215through card reader210by user225, but there was no associated successful card read, such as by card reader210. The status that is indicated by this heuristic is that card reader210may be malfunctioning, or may malfunction soon. Step615can include in some embodiments computer system220accessing, and in some embodiments mobile device205accessing, a heuristic, such as multiple card swipes being detected with no associated successful card read, that indicates a status, such as malfunctioning or soon to malfunction, of an electronics device, such as card reader210.

Step620includes determining that the motion sensor data and the electronic device data indicate the status based at least in part on the heuristic. Using the example ofFIG. 2, the motion sensor data can be the data generated by mobile device205's integrated motion sensor during a card swipe of card215through card reader210by user225. The electronic device data can be the data generated by card reader210during or associated with the card swipe (i.e., the card read data). One example of a heuristic can be that multiple card swipes were detected, such as multiple card swipes of card215through card reader210by user225, but there was no associated successful card read, such as by card reader210.

The motion sensor data can indicate the multiple card swipes occurred. The card read data can indicate that there was no successful card read during or associated with the card swipe. The card read data can be no data. For example, when card reader210is malfunctioning such that it sends no data during a card swipe, then the card reader sending no data can indicate that there was no successful card read during the card swipe. Step620can include in some embodiments computer system220determining, and in some embodiments mobile device205determining, that the motion sensor data, which indicates that a card swipe occurred, and the electronic device data, which indicates that there was no successful card read during or associated with the card swipe, indicate a status, which is that card reader210is malfunctioning or is about to malfunction, based at least in part on the heuristic.

Step625includes causing, when the determination indicates that the status is malfunctioning, a replacement electronic device to be sent to an address associated with the mobile device. Using the example ofFIG. 2, the mobile device can be mobile device205. The electronic device can be card reader210. In step620, computer system220or mobile device205determined that card reader210(the electronic device) is malfunctioning or is about to malfunction. Thus, the determination of step625is the determination of step620that card reader210is malfunctioning or is about to malfunction. In some embodiments, mobile device205can cause a replacement electronic device to be sent to an address associated with the mobile device by sending a message to a computer system, such as computer system220, notifying a software program running on the computer system to send the replacement electronic device.

A computer system, such as computer system220, can have access to a customer database that associates identifying information from mobile devices with customers, and that associates customers with addresses. Computer system220can receive identifying information, such as a mobile identification number (MIN) or a mobile subscription identification number (MSIN), from mobile device205. A computer system, such as computer system220, can execute one or more database lookup commands to determine the user associated with mobile device205, such as user225, and to determine the address associated with user225. Computer system220can cause a replacement electronic device to be sent to the address associated with the user, the user and the address further associated with mobile device205. Mobile device205can cause a replacement electronic device to be sent to an address associated with mobile device205by notifying a computer system, such as computer system220, to send a replacement electronic device.

In some embodiments, step625can include computer system220, when the determination of step620indicates the status that card reader210is malfunctioning or is about to malfunction, causing a card reader to replace card reader210to be sent to an address associated with mobile device205. In some embodiments, step625can include mobile device205, when the determination of step620indicates the status that card reader210is malfunctioning or is about to malfunction, causing a card reader to replace card reader210to be sent to an address associated with mobile device205.

FIG. 7is a diagrammatic representation of a machine in the example form of a computer system within which a set of instructions, for causing the machine to perform any one or more of the methodologies or modules discussed herein, may be executed. In the example ofFIG. 7, the computer system700includes a processor, memory, non-volatile memory, and an interface device. Various common components (e.g., cache memory) are omitted for illustrative simplicity. The computer system700is intended to illustrate a hardware device on which any of the components depicted in the examples ofFIGS. 1-6(and any other components described in this specification) can be implemented. The computer system700can be of any applicable known or convenient type. The components of the computer system700can be coupled together via a bus or through some other known or convenient device.

The processor may be, for example, a conventional microprocessor such as an Intel Core microprocessor or an Intel Itanium microprocessor or a Motorola power PC microprocessor or a SPARC architecture processor. One of skill in the relevant art will recognize that the terms “machine-readable (storage) medium” or “computer-readable (storage) medium” include any type of device that is accessible by the processor.

The memory is coupled to the processor by, for example, a bus. The memory can include, by way of example but not limitation, random access memory (RAM), such as dynamic RAM (DRAM) or static RAM (SRAM). The memory can be local, remote, or distributed.

The bus also couples the processor to the non-volatile memory and drive unit. The non-volatile memory cane be a magnetic floppy or hard disk, a magnetic-optical disk, an optical disk, a flash memory such as NAND flash memory or NOR flash memory, a read-only memory (ROM) such as a CD-ROM, a programmable read-only memory such as EPROM or EEPROM, a magnetic or optical card, or another form of storage for large amounts of data. Some of this data is often written, by a direct memory access process, into memory during execution of software in the computer700. The non-volatile storage can be local, remote, or distributed. The non-volatile memory is optional because systems can be created with all applicable data available in memory. A typical computer system will usually include at least a processor, memory, and a device (e.g., a bus) coupling the memory to the processor.

The bus also couples the processor to the network interface device. The interface can include one or more of a modem or network interface. A person of ordinary skill will appreciate that a modem or network interface can be considered to be part of the computer system700. The interface can include an analog modem, ISDN modem, cable modem, token ring interface, satellite transmission interface (e.g., “direct PC”), Wi-Fi interface, or other interfaces for coupling a computer system to other computer systems. The interface can include one or more input and/or output devices. The I/O devices can include, by way of example but not limitation, a keyboard, a mouse or other pointing device, disk drives, printers, a scanner, and other input and/or output devices, including a display device. The display device can include, by way of example but not limitation, a cathode ray tube (CRT), liquid crystal display (LCD), or some other applicable known or convenient display device. For simplicity, this disclosure assumes that controllers of any devices not depicted in the example ofFIG. 7reside in the interface.

The computer system can have one Bus or multiple Buses. A bus can include for example, a system bus, a Peripheral Component Interconnect (PCI) bus or PCI-Express bus, a HyperTransport or industry standard architecture (ISA) bus, a small computer system interface (SCSI) bus, a universal serial bus (USB, USB 2.0, USB 3.0), IIC (I2C) bus, an Institute of Electrical and Electronics Engineers (IEEE) standard 1394 bus, also called “Firewire,” a QuickPath Interconnect bus, a ThunderBolt interconnect bus, a DisplayPort interconnect bus or its companion standards Mini DisplayPort (mDP), Direct Drive Monitor (DDM), Embedded DisplayPort (eDP), Internal DisplayPort (iDP), Portable Digital Media Interface (PDMI), Wireless DisplayPort (wDP), and Mobility DisplayPort (MyDP), an HDMI interconnect bus, a DVI bus.

The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or constructing more specialized apparatus to perform the methods of some embodiments may prove more convenient. The required structure for a variety of these systems will appear from the description below. In addition, the techniques are not described with reference to any particular programming language, and various embodiments may thus be implemented using a variety of programming languages.

The machine may be a server computer, a client computer, a personal computer (PC), a laptop computer, a tablet, a set-top box (STB), a personal digital assistant (PDA), a cellular telephone, an iPhone, a Blackberry, a smart phone, a processor, a telephone, a web appliance, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine.

A person having ordinary skill in the art will appreciate that there are various other ways to implement the described functionality. The scope of this disclosure also includes embodiments implementing the described functionality in these various other ways. Accordingly, the scope of the present disclosure is intended to embrace all such alternatives, modifications, and variations as fall within the scope of the claims, together with all equivalents thereof.

Numerous specific details are set forth in order to provide a thorough understanding of embodiments of the present invention. One skilled in the art will appreciate that embodiments of the present invention may be practiced without some of these specific details. In other instances, well-known structures and devices are shown in block diagram form.