Firmware management

Information

  • Patent Grant
  • 9195454
  • Patent Number
    9,195,454
  • Date Filed
    Monday, November 24, 2014
    11 years ago
  • Date Issued
    Tuesday, November 24, 2015
    10 years ago
Abstract
Aspects of the subject disclosure provide a card reader for receiving payment card information at a mobile point-of-sale terminal. In some implementations, a reader of the subject technology can include a memory, a conditioning module and a 3.5 mm audio plug including an audio bus that is configured for insertion into a headphone port of a host device, such as a smart phone or tablet computer. Implementations of the subject technology also include a microprocessor configured to perform operations for determining whether a newer firmware version is available for the card reader or whether a download of such a firmware needs to be completed, and in response to determining such a download is needed, performing a download of the firmware via the audio plug during periods of inactivity.
Description
BACKGROUND

The proliferation of mobile computing devices (such as smart phones and tablet computers, etc.), has spurned development of various attachable hardware devices to provide expanded functionality. One such example is an attachable magnetic card reader device, used for reading credit or debit card information to facilitate the receipt and processing of payments. Some such reader devices can be physically and communicatively coupled to an associated mobile device using a standard 3.5 mm audio plug when inserted into the headphone port of the mobile device (e.g., smart phone). For conventional card reader devices, only unidirectional (reader device to mobile device) communication is typically supported. As such, conventional card reader devices often lack the ability to receive information from the mobile computing device, including instructions for implementing software or firmware updates.





BRIEF DESCRIPTION OF THE DRAWINGS

Certain features of the subject technology are set forth in the appended claims. However, the accompanying drawings, which are included to provide further understanding, illustrate disclosed aspects and together with the description serve to explain the principles of the subject technology. In the drawings:



FIG. 1 illustrates a conceptual block diagram of hardware components used to facilitate incremental firmware updates for a reader device;



FIG. 2 illustrates an example process for selection of firmwares for use and updates thereof can be implemented;



FIGS. 3A and 3B illustrate front and side views of an example card reader device, including a 3.5 mm audio plug; and



FIG. 4 depicts a conceptual environment in which a reader device of the subject technology can be used to facilitate a financial transaction between a buyer and a merchant.





DETAILED DESCRIPTION

The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the technology can be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description, which includes specific details for the purpose of providing a more thorough understanding of the subject technology. However, it will be clear that the subject technology is not limited to the specific details set forth herein and may be practiced without these specific details. In some instances, structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology.


As noted above, conventional card reader devices are generally restricted to unidirectional communication over audio connections and are only capable of sending signals to a host computing device. Accordingly, once such card reader devices are manufactured, there is generally no means to update the functionality of the card reader device without disassembling the card reader device and replacing components therein. In some conventional card reader device implementations, these card reader devices can include a processor and memory storing firmware for causing the processor to control operation of the card reader device. In these cases, even though the processor could theoretically be configured to perform additional functions by updating the software or firmware stored in the memory of the card reader device, conventional card reader device implementations do not provide any means to facilitate such updating.


In particular, since the audio ports of conventional card reader devices are generally configured for unidirectional communications from the reader to a host computing device, the audio ports are not available providing updates to the card reader device. In some instances, a second non-audio connection port (e.g., universal serial bus or the like) may be provided for purposes of communicating with the host computing device to perform such updates. However, since such an update scheme relies on a connection configuration significantly different from the normal connection configuration between the card reader device and the host computing device, this complicates the update process for the average user. Moreover, this type of configuration requires that the average user actively determine whether or not an update exists and taking appropriate steps to perform the update thereafter. As a result, many users fail to update their card reader devices, out of ignorance or convenience, and continue to operate their card reader devices with older software or firmware versions. This not only results in the users not being able to take advantage of new features for the card reader device, but can also result in errors during payment processes.


The subject technology addresses the foregoing problem by providing a bidirectional reader system, as well as an upgrade method in which firmware data for operating a processor of the reader device is incrementally transferred to a reader device, without interruption to the user. In various implementations, the reader device is configured to exchange data (i.e., send and receive data) with a host computing device. In certain implementations, the host computing device can be a smart phone or tablet device and the reader device can engage in bidirectional communications via left or right audio channel buses of one or more audio connection ports, such as a standard 3.5 mm audio plug. Using one (or both) busses, firmware data can be incrementally saved to a memory partition resident on the reader device, without the need for user involvement. After a complete firmware version has been transferred to the reader, the upgraded firmware can be authenticated and implemented in the reader device, again without the need for user involvement. In other words, the updating process of the reader device is invisible to the user.


Although the present technology at times will be described with respect to a reader device implemented as a magnetic stripe card reader device with an audio plug and a host computing device implemented as a smartphone or tablet device with a corresponding audio jack, the present technology is not limited in this regard. First, the present technology can be utilized with any other type of connection between the reader device and the host computing device. Second, the host computing device is not limited to any particular type of computing device. Thus, the host computing device can also be any other type of computing device with audio and non-audio connection ports and networking capabilities, including, but not limited to, netbook computers, laptop computers, desktop computers, games consoles, set top boxes, or the like.


In some implementations, a memory of the reader device contains multiple storage volumes, areas, partitions, sections, or slots. These can be defined physically or logically. Each of these volumes can be utilized for storing different sets of software for operating the reader device. For example, these volumes can include a boot loader volume and one or more different firmware volumes. The boot loader software in the boot loader volume can be configured to access the stored firmware volumes and boot the reader using a most recent or most stable one of the firmware versions for the reader device. The boot loader can also be configured to perform security tasks including, but not limited to: verifying security/authenticity of a firmware, determining firmware completeness, and identifying a relative versions for the firmware volumes (e.g., to distinguish between newer and older firmware volumes). In some implementations the boot loader volume is stored in a “locked” mode to inhibit potential modification or tampering. For example, a switch or other control can be provided on the reader device so that the portion of the memory associated with the boot loader is placed in a read-only configuration. Alternatively or in combination with such a switch, the boot loader volume can be secured by a password, keys, or the like so that changes to the boot loader volume are allowed only when the appropriate credentials are provided.


Based on the foregoing, an update/upgrade scheme utilizing incremental or background downloading of the software or firmware for the reader device can be provided in accordance with the present technology. For example, in one implementation of the present technology, a memory of the reader device can include a boot loader volume and two firmware volumes (e.g., “Volume A” and “Volume B”). In operation, when the reader device boots, the boot loader can access one of Volumes A and B with a complete and most up-to-date firmware version and boot the reader device using that firmware version. Concurrently, the reader device can be configured to obtain, via the audio plug and the host computing device, an updated version of firmware, if available, for the reader device. Transfer or downloading of such new firmware data can be performed incrementally via the audio plug and without interruption to the user. As used herein, the term “incremental downloading” of firmware or software refers to downloading of such firmware or software on a piecewise basis, such as during periods of inactivity between the reader device and the host computing device. As such, the new data can be gradually uploaded to Volume B without requiring a consistent connection to the source of the firmware or software. Once the updated version of the firmware is available in Volume B, the reader device can be rebooted using the updated version. The techniques described herein therefore provide at least three advantages over conventional firmware or software update/upgrade methods. First, no behavioral changes (or even user interactions) are required on the part of the user. For example, there is no need for the user to wait to take special precautions during updating or to prompt the user (e.g., no need to display a “please do not unplug your reader” message or the like). Second, since the reader stores multiple firmwares, the reader is always in a usable state with the older firmware. Third, updates/upgrades can be performed without concern of the transient nature of the connection. For example, a conventional reader may undergo various unplug/plug cycles, which may even cause the reader to reset or lose some of its state information. In contrast, since the newer firmware is not applied until completely downloaded, the reader's operation is unaffected by the unplug/plug cycles.


The present disclosure contemplates that more than two firmwares may be stored on a reader device at one time. That is, under certain circumstances, several “roll backs” of the firmware may be necessary. For example, certain firmware versions can require specific versions of an application on the host computing device. Thus, the firmware can “roll back” through the various versions until a compatible firmware for the application is found.


Aspects of the present technology also provide for configuring the reader device to identify and track various metrics related to reader device performance. For example, in certain configurations, the reader device can include a combination of software and hardware components to handle errors and problems. These can include crashing handling software or firmware routines for managing crash events and logging relevant information. Such logged errors can include, for example, credit or debit card read errors, communication errors, or any other issues at the reader device. These reports can then be used to make determinations as to whether an uploaded firmware has errors or issues. Further, “watchdog” circuitry can be utilized to detect and handle problems during operation using a particular firmware version (e.g., applying a hardware reset in the event of an infinite loop). In cases where new firmware updates are deemed problematic, these software and hardware components can be used by the boot loader to determine whether to “roll back” to an older firmware version such that the reader boots from the previous partition.



FIG. 1 illustrates a conceptual block diagram of hardware components of a reader device 100 configured for bi-directional communication and incremental firmware updates, according to some aspects of the subject technology. Reader device 100 includes microcontroller 110, memory 120, digital-to-analog converter (DAC) 130, analog-to-digital converter (ADC) 140, conditioning module 150, media interface 160, and power supply 170.


As illustrated, microcontroller 110 is coupled to memory 120, DAC 130 and ADC 140. Additionally, microcontroller 110 is coupled to conditioning module 150, via audio input channel 115, as well as media interface 160, either directly or via ADC 140. In turn, ADC 140 is coupled to conditioning module 150, via audio output channel 105. Via DAC 130, audio input channel 115, ADC 140, and audio output channel 105, the reader device 100 can engage in bidirectional communications with the host computing device using audio signaling, i.e., carrier waves representing audio.


Audio signaling received on audio input channel 115 can be simultaneously provided to microcontroller 110 and conditioning module 150. Audio signaling received by the microcontroller 110 can be used to provide voltage information to the conditioning module so that the conditioning module parameters can be tuned to provide proper voltage offsets for the received audio signals via conditioning control line 152. In this way, the microcontroller 110 can “listen” to the received audio signal while adjusting conditioning parameters in order to standardize the received signals before digital conversion and further processing are performed. Conditioning module 150 can be configured to clamp incoming audio signals to eliminate negative voltage components. In certain aspects, an analog output of microcontroller 110 is provided to an ADC (e.g., ADC 130), and digital information about the received signal is output to conditioning module 150.


It is understood that reader device 100 can be implemented using various other hardware components and/or configurations, and is not limited to the architecture depicted in FIG. 1.


Microcontroller 110 can be implemented using a general-purpose processor, a microcontroller, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic device (PLD), a controller, a state machine, gated logic, discrete hardware components, or a combination of the foregoing.


Memory 120 can include various types of memories, including working memory in the form of random-access memory (RAM) 122 and read-only memory (ROM) 124. Additionally, various types of memory can be utilized in place of, or in addition to, memory 120. For example, the one or more sequences of instructions for operating the reader device 100 can be stored as the bootloader software or firmware in a ROM 112 within microcontroller 110 or in the ROM 124 within memory 120. One or more sequences of instructions can also be software stored and read from another storage medium, such as the flash memory array, or received from the host computing device (e.g., a mobile device such as a smart phone or tablet computing device) via a host interface. ROM, storage mediums, and flash memory arrays represent examples of machine or computer readable media storing instructions/code executable by microcontroller 110. Machine or computer readable media may generally refer to any medium or media used to provide instructions to microcontroller 110, including both volatile media, such as dynamic memory used for storage media or for buffers within microcontroller 110, and non-volatile media, such as electronic media, optical media, and magnetic media.


Audio output channel 105 and audio input channel 115 can form a portion of an audio bus or connector, such as a standard 3.5 mm audio plug (not shown) or other audio connector type. In some implementations, audio input channel 115 can include multiple audio input channels, such as a left-audio input channel and a right-audio input channel.


Media interface 160 can form a device, or portion thereof, for reading media located on credit cards, debit cards, or objects to obtain payment information. In some implementations, the media interface 160 can be configured to read information from a physical storage medium, such as magnetic storage media (e.g., magnetic stripe media), optical storage media (e.g., barcodes or patterns), radio-frequency identification (RFID) storage devices, and integrated circuit card media (e.g., smart chip technologies), to name a few. Alternatively or in addition to the capability of reading such passive media, the media interface 160 can also be configured in some implementations to provide a wireless or wireline interface for interacting with other devices to provide such payment information.


Note that some basic components of a system supporting bidirectional communications have been provided, the disclosure turns to a more detailed description of the methodology for managing firmware use and updates in accordance with the present technology. In particular, FIG. 2 shows a flowchart of steps in an exemplary method 200 for performing firmware management in accordance with the present technology.


Method 200 begins at step 202 with the booting of the reader device. In particular, the microcontroller 110 is powered up and invokes the boot loader from the boot loader volume. In some implementations, the boot-up process can begin when the audio plug or other connector on the reader device is coupled to a corresponding jack or port on the host computing device. Accordingly, the method 200 encompasses within step 202 a process of detecting the coupling of the audio plug or connector. For example, signals from the host computing device can be detected. Alternatively, the detection can encompass detecting a change in the electrical characteristics associated with the audio plug or detector. Regardless of the detection method, the microcontroller can then can obtain the boot loader from memory and cause it to run. Thereafter at step 204, the boot loader can cause the microcontroller 110 determine what is the latest version of firmware available. For example, metadata identifying the versions associated with the various stored firmware versions can be compared. Such a comparison can include comparing date information, version information, or any other information specified in the boot loader for identifying different versions of firmware, including a combination of various types of information (e.g., date and version).


Once the latest version of firmware has been identified at step 204, a determination can be made at step 206 as to whether or not the latest version should be loaded. In particular, at step 206, a determination is made as to whether the latest firmware version is available for use. In particular, information regarding the download or build status (usability information) of a firmware version can be compared to usability criteria in order to determine whether or not the version is available or ready for the reader device to use. The present disclosure contemplates that there may be various reasons as to why a firmware version may be unavailable for use by the reader device. Accordingly, there may be one or more usability criteria that need to be considered. For example, in some cases, the firmware download process may simply be incomplete. In other cases, the error logging process may have resulted in the firmware as being flagged due to numerous errors during previous operation of the reader device. In still other configurations, the download process for the firmware may be complete, but the reader device may be unable to authenticate the keys or signatures associated with the firmware. However, the present technology is not limited in this regard and other criteria may be considered in making the decision as to whether or not a firmware is available for use. If the latest firmware version is available for use at step 206, the method 200 can proceed to step 208. Otherwise, the method proceeds to step 210.


At step 208, the boot loader can complete the boot process with the latest firmware version. In some implementations, as shown in FIG. 2 and as discussed above, an error logging process can be implemented. Thus, during or after the completion of the boot process, the reader device can be configured to monitor for errors. This can be performed by “watchdog” or crash handling components or subroutine implemented in the microcontroller or other element of the reader device. In some cases, the errors are simply logged. In other cases, the occurrence of an error can cause the reader device to take additional actions. For example, if an error is detected at step 212 during or after the completion of the boot process, the method can proceed to step 214.


At step 214, the error log can be reviewed to determine if too many errors have occurred. For example, the number of errors can be compared to error criteria. These criteria can be associated with a total number of errors overall or a number of errors of certain types. For example, there can be provided a threshold value for such errors. In the event these criteria are met at step 214, the firmware can be flagged at step 216 as unavailable and the reader device can be rebooted at step 218 so that a previous firmware version is used instead. The present disclosure contemplates that if the reader device is currently engaged in a payment activity, the reboot process could be deferred until the activity is completed or paused for other reasons.


In the event that a previous firmware version is used (step 210), no errors are detected (step 212) or the error criteria is not yet met (step 214), the method 200 can proceed to step 220 to begin or complete the firmware download process. First at step 220, a determination is made as to whether the reader device is currently capable or ready to begin downloading updated firmware. In the case of audio signals, the bandwidth is generally limited. Therefore, if the reader is currently engaged in payment activities, it would be undesirable to interrupt such activities to perform firmware downloads. Accordingly, the reader device can repeat step 220 until the reader device is ready.


Once the reader device is ready at step 220, the method proceeds to step 222 to determine whether a new version of the firmware, with respect to the currently running version, is available. This can encompass sending a request via the host computing device to an update server for information on new version and comparing this information to information regarding the currently stored firmwares. This step can also encompass determining whether a download needs to be completed (in the case of a previous partial download) or redone (in the case of firmwares with errors). If no update is available, then the method repeats steps 220 and 222 until such an update is available or the reader device is restarted.


If a new version is available (or a download of the new version needs to be completed or redone), the method can proceed to step 224 to download the latest firmware. As noted above, the download at step 224 can be performed incrementally or piecewise during periods of inactivity of the reader device. That is, during periods in which the reader device is not in communication with the host computing device for processing a transaction or performing so other primary function. Thereafter, completion of the download of the firmware can be detected at step 226. If the download is complete at step 226, the method can proceed to step 218 to reboot the reader device so that the newly downloaded firmware is used. Otherwise, the additional portions of the firmware are downloaded by repeating steps 220-226.


The present disclosure also contemplates that in some instances, a new version of the firmware may be available prior to completion of the downloading of a previous version. Therefore, in some configurations, the incomplete version may be deleted or overwritten by the newer version. Alternatively, the reader device can allow the download of the incomplete version to be completed prior to beginning the download of a newer version.


The present disclosure further contemplates that in some instances several updated versions of a firmware may be available in a short amount of time. In most configurations, a first-in, first-out (FIFO) policy can be utilized to store newer firmware versions in favor of older firmware versions. However, it is desirable to ensure that at least one stable version of the firmware is available at the device. Accordingly, in some implementations, the download process can be deferred based on an age or use criteria. For example, consider the case of a reader device with storage capacity for two firmwares. After a first firmware update is downloaded to the reader device with an original firmware and a second firmware update becomes available shortly thereafter, it may be undesirable to overwrite the original firmware too soon. Rather, it may be useful to test the first firmware update to ensure it is stable in the event the second firmware update is unstable. Thus, download of the second firmware update can be delayed or deferred until the first firmware update meets a use or age criteria and is not yet flagged as being associated with errors. Further, in the case where the first firmware update is flagged, the reader device can temporarily ignore the FIFO policy and overwrite the unstable first firmware update instead of the stable original firmware. Accordingly, at least one stable version of firmware persists on the reader device.


The present disclosure additionally contemplates that the check at step 222 can result in the identification of a preferred firmware for the reader device. In some cases, the preferred firmware is simply the newest or latest version available. However, in other cases, an older version can be preferred for various reasons. For example, there may have been issues identified with the newer version. In another example, an older version can be preferred based on the application on the host computing device. Thus, rather than attempting to download the newest version, the preferred version can be downloaded instead.



FIGS. 3A and 3B illustrates an example reader 300 according to some embodiments of the subject technology. As illustrated, reader 300 includes a housing 310 that is coupled to an audio plug 320 (e.g., a 3.5 mm audio plug).


Housing 310 contains the hardware components and circuitry of reader 300, as illustrated with respect to the example of FIG. 1. Additionally, housing 310 includes a slot 315 through which a payment card, such as a credit or debit card, may be swiped. Passage of a magnetic stripe of the payment card past a read head (e.g., media interface 160 contained in housing 310) can enable payment information to be received via the read head. The resulting signal provided by the read head is typically an analog signal that must be digitized e.g., using ADC 140, before the resulting digital information is provided to microcontroller 110.


Different types of information can be read from a magnetic stripe, depending on implementation. For example, user and payment card account information can be read from track 1 and track 2 of the magnetic stripe, respectively. However, in other implementations, any track (or combination of tracks) may be read from the magnetic stripe, including any combination, or all of tracks 1, 2 and 3.


As illustrated, body portion 310 is physically and communicatively coupled to audio plug 320, which can be removably inserted into a headphone port of a host device, such as a smart phone, personal computer, tablet device, or the like. As discussed above with respect to FIG. 1, audio plug 320 forms part of an audio bus that includes left and right audio output channels (via left/right contacts 322, 324), an audio input channel (via microphone contact 326), and a ground connection (via ground contact 328). Once audio plug 320 is inserted into the compatible jack of a host device, such as a smartphone, bi-directional communication between reader 300 and the host is enabled e.g., via the left/right audio output channels and audio input channel, using the methods and systems discussed above.


Although the reader illustrated in FIG. 3 can accept payment cards containing a magnetic stripe (e.g., using a read head), it is understood that the reader can be configured to receive other types of payment cards, and accordingly can contain additional or different hardware and/or software modules than those described above with respect to FIG. 1. For example, housing 310 can include a read head (in the form of a dip slot) for accepting integrated circuit cards, such as those conforming to the Europay, Mastercard, and Visa (EMV) standard. Such a read head can be incorporated into slot 315 or in separate slot (not shown) in housing 310.


Once successful bidirectional communication has been established between the reader and its host, the reader can be used to facilitate a payment transaction, for example between a merchant and a buyer using a magnetic payment card.



FIG. 4 depicts a conceptual environment in which a reader of the subject technology can be used to facilitate a financial transaction between a buyer and a merchant. Although the diagrams depict components as functionally separate, such depiction is merely for illustrative purposes. It will be apparent that the components portrayed in this figure can be arbitrarily combined or divided into separate software, firmware and/or hardware components. Furthermore, it will also be apparent that such components, regardless of how they are combined or divided, can execute on the same host or multiple hosts, and wherein multiple hosts can be connected by one or more networks.


In the example of FIG. 4, the system includes a mobile device 400, a reader 401 connected to mobile device 400, a decoding engine 410, a user interaction engine 420, and a transaction engine 430, all running on mobile device 400. Additionally, the system may also include one or more of a user database 440, a product or service database 450, a transaction database 460, and a firmware database 470 all coupled to the transaction engine 430. Thus, to perform firmware updates in accordance with the present technology, the transaction engine 430 can invoke an update routine to retrieve updated firmwares and associated information from firmware database 470.


As used herein, the term engine refers to software, firmware, hardware, and/or other components used to effectuate a purpose. The engine will typically include software instructions that are stored in non-volatile memory (also referred to as secondary memory). When the software instructions are executed, at least a subset of the software instructions is loaded into memory (also referred to as primary memory) by a processor. The processor then executes the software instructions in memory. The processor may be a shared processor, a dedicated processor, or a combination of shared or dedicated processors. A typical program will include calls to hardware components (such as I/O devices), which typically requires the execution of drivers. The drivers may or may not be considered part of the engine, but the distinction is not critical.


As used herein, the term database is used broadly to include any known or convenient means for storing data, whether centralized or distributed, relational or otherwise.


In the example of FIG. 4, mobile device 400 to which reader 401 is connected can be, but is not limited to, a cell phone, such as Apple's iPhone, other portable electronic devices, such as Apple's iPod Touches, Apple's iPads, and mobile devices based on Google's Android operating system and any other portable electronic device that includes software, firmware, hardware, or any combination capable of at least receiving the signal, decoding if needed, exchanging information with a transaction server to verify the buyer and/or seller's account information, conducting the transaction, and generating a receipt. Typical components of mobile device 400 can include but are not limited to persistent memories like flash ROM, random access memory like SRAM, a camera, a battery, LCD driver, a display, a cellular antenna, a speaker, a Bluetooth circuit, and WiFi circuitry, where the persistent memory may contain programs, applications, and/or an operating system for the mobile device.


In some implementations, a system is provided with transaction engine 430 running on mobile device 400. In response to a financial transaction between a buyer and a seller, mobile device 400 accepts information selected including but not limited to information from financial transaction or information pertaining to financial transaction card used by the buyer in the transaction. Additionally, a financial transaction device can be utilized, Non-limiting examples of financial transaction devices include but are not limited to a, wristband, RFID chip, cell phone, biometric marker and the like. At least a portion of this information is communicated with a third party financial institution or payment network to authorize the transaction.


Payment confirmation can be made with a communication channel of the buyer's choice. As non-limiting examples, confirmation of payment can be an electronic notification in the form selected from at least one of, email, SMS message, tweet (message delivered via Twitter), instant message, communication within a social network and the like. In response to the transaction, a confirmation is made that the buyer is authorized to use the financial transaction card. In certain implementations, a confirmation can be provided that indicates a sufficiency of funds available to the buyer.


In the example of FIG. 4, reader 401 is configured to read data encoded in a magnetic strip of a card being swiped by a buyer and send a signal that corresponds to the data read to mobile device 400. However, as discussed above, reader 401 may be configured to received various payment card types, including but not limited to IC cards that can be provided to reader 401 using a dip slot.


The size of reader 401 can be miniaturized to be portable for connection with mobile device 400. For example, the size of card reader 401 can be miniaturized to an overall length of less than 1.5″. In addition, the miniaturized card reader 401 is also designed to reliably read the card with minimum error via a single swipe by counteracting vendor specific filtering done by mobile device 400. Note that this broad overview is meant to be non-limiting as components to this process are represented in different embodiments.


Many of the above-described features and applications are implemented as software processes that are specified as a set of instructions recorded on a computer readable storage medium (also referred to as computer readable medium). When these instructions are executed by one or more processing unit(s) (e.g., one or more processors, cores of processors, or other processing units), they cause the processing unit(s) to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, flash drives, RAM chips, hard drives, EPROMs, etc. The computer readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.


In this specification, the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage, which can be read into memory for processing by a processor. Also, in some implementations, multiple software aspects of the subject disclosure can be implemented as sub-parts of a larger program while remaining distinct software aspects of the subject disclosure. In some implementations, multiple software aspects can also be implemented as separate programs. Finally, any combination of separate programs that together implement a software aspect described here is within the scope of the subject disclosure. In some implementations, the software programs, when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.


A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.


These functions described above can be implemented in digital electronic circuitry, in computer software, firmware or hardware. The techniques can be implemented using one or more computer program products. Programmable processors and computers can be included in or packaged as mobile devices. The processes and logic flows can be performed by one or more programmable processors and by one or more programmable logic circuitry. General and special purpose computing devices and storage devices can be interconnected through communication networks.


Some implementations include electronic components, such as microprocessors, storage and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media). Some examples of such computer-readable media include RAM, ROM, flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic and/or solid state hard drives, read-only and recordable Blu-Ray® discs, ultra density optical discs, any other optical or magnetic media. The computer-readable media can store a computer program that is executable by at least one processing unit, such as a microcontroller, and includes sets of instructions for performing various operations. Examples of computer programs or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.


While the above discussion primarily refers to microprocessor or multi-core processors that execute software, some implementations are performed by one or more integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs). In some implementations, such integrated circuits execute instructions that are stored on the circuit itself.


As used in this specification and any claims of this application, the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people. For the purposes of the specification, the terms display or displaying means displaying on an electronic device. As used in this specification and any claims of this application, the terms “computer readable medium” and “computer readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.


Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described in this specification, or any combination of one or more such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).


The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits data (e.g., an HTML page) to a client device (e.g., for purposes of displaying data to and receiving user input from a user interacting with the client device). Data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.


It is understood that any specific order or hierarchy of steps in the processes disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged, or that all illustrated steps be performed. Some of the steps may be performed simultaneously. For example, in certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.


The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but are to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the subject disclosure.


A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A phrase such as a configuration may refer to one or more configurations and vice versa.


The word “exemplary” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.


All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims.

Claims
  • 1. A device comprising: a communications interface configured to transfer data to and from the device;a processor communicatively coupled to a media reading device and the communications interface; anda memory having a first partition storing a first firmware and comprising a plurality of instructions for causing the processor to: detect at the communications interface an inactivity of data transfer; andupon detecting the inactivity of data transfer, initiating a download of at least a portion of a second firmware, the download being stored in a second partition of the memory.
  • 2. The device of claim 1 wherein the communications interface is a connector configured to be coupled to a host mobile device.
  • 3. The device of claim 2 wherein the connector is an audio connector.
  • 4. The device of claim 2 wherein the connector is a non-audio connector.
  • 5. The device of claim 4 wherein the connector is a digital connector.
  • 6. The device of claim 2 further comprising a transaction engine running on the host mobile device configured to accept and process information regarding a financial transaction between a buyer and a seller.
  • 7. The device of claim 2 wherein the device engages in bidirectional communication with the host mobile device.
  • 8. A media reader comprising: a media reading device;a connector for engaging a port associated with a networked computing device;a processor communicatively coupled to the media reading device and the connector; anda memory storing a first firmware and comprising a plurality of instructions for causing the processor to: detect that the connector is coupled to the port;detect an inactivity in the media reader; andupon detecting the inactivity, initiate a download via the connector to replace the first firmware with a second firmware.
  • 9. The media reader of claim 8 wherein the connector is an audio connector.
  • 10. The media reader of claim 8 wherein the connector is a digital connector.
  • 11. The media reader of claim 8 wherein the inactivity is communication inactivity between the connector and the port.
  • 12. The media reader of claim 8 wherein the inactivity is processor inactivity in the processor of the media reader.
  • 13. The media reader of claim 8 wherein the connector is coupled to the port by electrical coupling.
  • 14. The media reader of claim 8 wherein the processor detects that the connector is coupled to the port by detecting signals from the networked computing device.
  • 15. The media reader of claim 8 wherein the processor detects that the connector is coupled to the port by detecting a change in electrical characteristics associated with the port.
  • 16. The media reader of claim 8 wherein the second firmware is used by the media reader once the second firmware is completely downloaded.
  • 17. The media reader of claim 8 further comprising a boot loader in the memory of the media reader that determines if the memory of the media reader has the first firmware or the second firmware stored therein.
  • 18. A method of updating software on a media reader that is configured to be coupled to a host device, the method comprising: detecting an inactivity of data transfer at a communication interface, the communication interface configured to transfer data to and from the media reader;storing a first firmware in a memory of the media reader;upon detecting the inactivity of data transfer at the communication interface, initiating a download of at least a portion of a second firmware; andstoring at least the portion of the second firmware in the memory of the media reader.
  • 19. The method of claim 18 wherein the download is initiated by the host device.
  • 20. The method of claim 18 wherein the download is initiated by the media reader.
  • 21. The method of claim 18 further comprising using a boot loader in the memory to determine if at least one of the first firmware and the second firmware are stored in the memory.
  • 22. A method of initiating a download of software on a media reader, the method comprising: storing a first firmware in a memory of the media reader;detecting that a connector of the media reader is coupled to a port of a networked computing device;detecting an inactivity in data transfer to or from the media reader; andupon detecting the inactivity, imitating a download of at least a portion of a second firmware.
  • 23. The method of claim 22 wherein the second firmware replaced the first firmware.
  • 24. The method of claim 22 wherein the download is initiated by the port of the networked device.
  • 25. The method of claim 22 wherein determining that the connector is coupled to the port of the networked device comprises detecting a change in electrical characteristics associated with the port or the connector.
  • 26. The method of claim 22 wherein determining that the connector is coupled to the port of the networked device comprises detecting coupling comprises detecting signals from the host device.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No. 14/203,463, filed on Mar. 10, 2014, entitled FIRMWARE MANAGEMENT, which claims the benefit of U.S. Provisional Patent Application No. 61/909,626, filed on Nov. 27, 2013, entitled “INCREMENTAL FIRMWARE UPDATES”; both of which are hereby expressly incorporated herein by reference in their entireties.

US Referenced Citations (306)
Number Name Date Kind
3854036 Gupta Dec 1974 A
4035614 Frattarola et al. Jul 1977 A
4254441 Fisher Mar 1981 A
4591937 Nakarai et al. May 1986 A
4609957 Gentet et al. Sep 1986 A
4727544 Brunner et al. Feb 1988 A
4788420 Chang et al. Nov 1988 A
4845740 Tokuyama et al. Jul 1989 A
5173597 Anglin Dec 1992 A
5266789 Anglin et al. Nov 1993 A
5406627 Thompson et al. Apr 1995 A
5434395 Storck et al. Jul 1995 A
5434400 Scherzer Jul 1995 A
5463678 Kepley, III et al. Oct 1995 A
5589855 Blumstein et al. Dec 1996 A
5603078 Henderson et al. Feb 1997 A
5616904 Fernadez Apr 1997 A
5679943 Schultz et al. Oct 1997 A
5729591 Bailey Mar 1998 A
5764742 Howard et al. Jun 1998 A
5850599 Seiderman Dec 1998 A
5878337 Joao et al. Mar 1999 A
5945654 Huang Aug 1999 A
5991749 Morrill, Jr. Nov 1999 A
D417442 Butts et al. Dec 1999 S
6006109 Shin Dec 1999 A
6021944 Arakaki Feb 2000 A
6032859 Hughes et al. Mar 2000 A
6061666 Do et al. May 2000 A
6129277 Grant et al. Oct 2000 A
6234389 Valliani et al. May 2001 B1
6308227 Kumar et al. Oct 2001 B1
6363139 Zurek et al. Mar 2002 B1
6400517 Murao Jun 2002 B1
6431445 Deland et al. Aug 2002 B1
6476743 Brown et al. Nov 2002 B1
6481623 Grant et al. Nov 2002 B1
6497368 Friend et al. Dec 2002 B1
6536670 Postman et al. Mar 2003 B1
D477321 Baughman Jul 2003 S
6612488 Suzuki Sep 2003 B2
6813608 Baranowski Nov 2004 B1
6832721 Fujii Dec 2004 B2
6850147 Prokoski et al. Feb 2005 B2
6868391 Hultgren Mar 2005 B1
6896182 Sakaguchi May 2005 B2
6944782 von Mueller et al. Sep 2005 B2
6979231 Shinohara Dec 2005 B2
7003316 Elias et al. Feb 2006 B1
7013149 Vetro et al. Mar 2006 B2
7149296 Brown et al. Dec 2006 B2
7167711 Dennis Jan 2007 B1
7252232 Fernandes et al. Aug 2007 B2
7309012 Von Mueller et al. Dec 2007 B2
7324836 Steenstra et al. Jan 2008 B2
7363054 Elias et al. Apr 2008 B2
D575056 Tan Aug 2008 S
7409234 Glezerman Aug 2008 B2
7424732 Matsumoto et al. Sep 2008 B2
7433452 Taylor et al. Oct 2008 B2
7505762 Onyon et al. Mar 2009 B2
7506812 von Mueller et al. Mar 2009 B2
D590828 Sherrod et al. Apr 2009 S
7520430 Stewart et al. Apr 2009 B1
7581678 Narendra et al. Sep 2009 B2
7600673 Stoutenburg et al. Oct 2009 B2
D607000 Cheng et al. Dec 2009 S
7703676 Hart et al. Apr 2010 B2
7708189 Cipriano May 2010 B1
7757953 Hart et al. Jul 2010 B2
7793834 Hachey et al. Sep 2010 B2
7810729 Morley, Jr. Oct 2010 B2
7869591 Nagel et al. Jan 2011 B1
7945494 Williams May 2011 B2
8011587 Johnson et al. Sep 2011 B2
8015070 Sinha et al. Sep 2011 B2
D646264 Dong Oct 2011 S
D653664 Turnbull et al. Feb 2012 S
8132670 Chen Mar 2012 B1
8231055 Wen Jul 2012 B2
8297507 Kayani Oct 2012 B2
8302860 McKelvey Nov 2012 B2
8336771 Tsai et al. Dec 2012 B2
D675618 Behar et al. Feb 2013 S
8376239 Humphrey Feb 2013 B1
D677667 Smith et al. Mar 2013 S
D679714 Smith et al. Apr 2013 S
D680537 Miller et al. Apr 2013 S
8413901 Wen Apr 2013 B2
8452004 Lee May 2013 B2
D686208 Miller et al. Jul 2013 S
8500010 Marcus et al. Aug 2013 B1
8560823 Aytek et al. Oct 2013 B1
8571989 Dorsey et al. Oct 2013 B2
8573486 McKelvey et al. Nov 2013 B2
8573487 McKelvey Nov 2013 B2
8573489 Dorsey et al. Nov 2013 B2
8584946 Morley, Jr. Nov 2013 B2
8584956 Wilson et al. Nov 2013 B2
8602305 Dorsey et al. Dec 2013 B2
8612352 Dorsey et al. Dec 2013 B2
8615445 Dorsey et al. Dec 2013 B2
8640953 Dorsey et al. Feb 2014 B2
D700606 Lo Mar 2014 S
8662389 Dorsey et al. Mar 2014 B2
8678277 Dorsey et al. Mar 2014 B2
D703211 Weller et al. Apr 2014 S
8701996 Dorsey et al. Apr 2014 B2
8701997 Dorsey et al. Apr 2014 B2
D706266 Rotsaert Jun 2014 S
8763900 Marcus et al. Jul 2014 B2
D711876 McWilliam et al. Aug 2014 S
8794517 Templeton et al. Aug 2014 B1
D712892 Hong et al. Sep 2014 S
8820650 Wilson et al. Sep 2014 B2
8840017 Chan et al. Sep 2014 B2
8840024 McKelvey et al. Sep 2014 B2
8870070 McKelvey et al. Oct 2014 B2
8870071 McKelvey Oct 2014 B2
8876003 McKelvey Nov 2014 B2
8931699 Wade et al. Jan 2015 B1
D724094 Blochinger et al. Mar 2015 S
D725655 Debaigue et al. Mar 2015 S
8967465 Wade et al. Mar 2015 B1
D726171 Edwards Apr 2015 S
9016572 Babu et al. Apr 2015 B2
D728549 Su et al. May 2015 S
D728568 Debaigue et al. May 2015 S
D731493 Mills Jun 2015 S
20010001856 Gould et al. May 2001 A1
20020002507 Hatakeyama Jan 2002 A1
20020017568 Grant et al. Feb 2002 A1
20020030871 Anderson et al. Mar 2002 A1
20020073304 Marsh et al. Jun 2002 A1
20020077974 Ortiz Jun 2002 A1
20020099648 DeVoe et al. Jul 2002 A1
20020108062 Nakajima et al. Aug 2002 A1
20020165462 Westbrook et al. Nov 2002 A1
20020169541 Bouve et al. Nov 2002 A1
20020188535 Chao et al. Dec 2002 A1
20030089772 Chien May 2003 A1
20030132300 Dilday et al. Jul 2003 A1
20030135463 Brown et al. Jul 2003 A1
20030144040 Liu et al. Jul 2003 A1
20040011650 Zenhausern et al. Jan 2004 A1
20040012875 Wood Jan 2004 A1
20040033726 Kao Feb 2004 A1
20040041911 Odagiri et al. Mar 2004 A1
20040058705 Morgan et al. Mar 2004 A1
20040087339 Goldthwaite et al. May 2004 A1
20040093496 Colnot May 2004 A1
20040104268 Bailey Jun 2004 A1
20040127256 Goldthwaite et al. Jul 2004 A1
20040128256 Dhanjal et al. Jul 2004 A1
20040151026 Naso et al. Aug 2004 A1
20040204074 Desai Oct 2004 A1
20040204082 Abeyta Oct 2004 A1
20040230489 Goldthwaite et al. Nov 2004 A1
20040230526 Praisner Nov 2004 A1
20050009004 Xu et al. Jan 2005 A1
20050010702 Saito et al. Jan 2005 A1
20050077870 Ha et al. Apr 2005 A1
20050156037 Wurzburg Jul 2005 A1
20050156038 Wurzburg Jul 2005 A1
20050194452 Nordentoft et al. Sep 2005 A1
20050209719 Beckert et al. Sep 2005 A1
20050219728 Durbin et al. Oct 2005 A1
20050236480 Vrotsos et al. Oct 2005 A1
20050242173 Suzuki Nov 2005 A1
20050247787 Von Mueller et al. Nov 2005 A1
20060000917 Kim et al. Jan 2006 A1
20060049255 Von Mueller et al. Mar 2006 A1
20060094481 Gullickson May 2006 A1
20060122902 Petrov et al. Jun 2006 A1
20060152276 Barksdale Jul 2006 A1
20060208066 Finn et al. Sep 2006 A1
20060219776 Finn Oct 2006 A1
20060223580 Antonio et al. Oct 2006 A1
20060234771 Shavrov Oct 2006 A1
20060273158 Suzuki Dec 2006 A1
20070063048 Havens et al. Mar 2007 A1
20070067833 Colnot Mar 2007 A1
20070100651 Ramer et al. May 2007 A1
20070124211 Smith May 2007 A1
20070155430 Cheon et al. Jul 2007 A1
20070174080 Outwater Jul 2007 A1
20070201492 Kobayashi Aug 2007 A1
20070221728 Ferro et al. Sep 2007 A1
20070244811 Tumminaro Oct 2007 A1
20070250623 Hickey et al. Oct 2007 A1
20070255620 Tumminaro et al. Nov 2007 A1
20070255643 Capuano et al. Nov 2007 A1
20070255653 Tumminaro et al. Nov 2007 A1
20080017712 Hart et al. Jan 2008 A1
20080027815 Johnson et al. Jan 2008 A1
20080040265 Rackley, III et al. Feb 2008 A1
20080040274 Uzo Feb 2008 A1
20080059370 Sada et al. Mar 2008 A1
20080059375 Abifaker Mar 2008 A1
20080103972 Lane May 2008 A1
20080147564 Singhal Jun 2008 A1
20080172306 Schorr et al. Jul 2008 A1
20080177662 Smith et al. Jul 2008 A1
20080208762 Arthur et al. Aug 2008 A1
20080238610 Rosenberg Oct 2008 A1
20080249939 Veenstra Oct 2008 A1
20080275779 Lakshminarayanan Nov 2008 A1
20090048978 Ginter et al. Feb 2009 A1
20090068982 Chen et al. Mar 2009 A1
20090098908 Silverbrook et al. Apr 2009 A1
20090100168 Harris Apr 2009 A1
20090104920 Moon et al. Apr 2009 A1
20090117883 Coffing et al. May 2009 A1
20090119190 Realini May 2009 A1
20090125429 Takayama May 2009 A1
20090144161 Fisher Jun 2009 A1
20090159681 Mullen et al. Jun 2009 A1
20090166422 Biskupski Jul 2009 A1
20090187492 Hammad et al. Jul 2009 A1
20100063893 Townsend Mar 2010 A1
20100108762 Morley, Jr. May 2010 A1
20100127857 Kilmurray et al. May 2010 A1
20100184479 Griffin, Jr. Jul 2010 A1
20100222000 Sauer et al. Sep 2010 A1
20100241838 Cohen et al. Sep 2010 A1
20100243732 Wallner Sep 2010 A1
20100289390 Kenney Nov 2010 A1
20100314446 Morley, Jr. Dec 2010 A1
20110033910 Yamanaka et al. Feb 2011 A1
20110053560 Jain et al. Mar 2011 A1
20110062235 Morley, Jr. Mar 2011 A1
20110084131 McKelvey Apr 2011 A1
20110084139 McKelvey et al. Apr 2011 A1
20110084140 Wen Apr 2011 A1
20110137803 Willins Jun 2011 A1
20110161235 Beenau et al. Jun 2011 A1
20110165896 Stromberg et al. Jul 2011 A1
20110174879 Morley, Jr. Jul 2011 A1
20110180601 Morley, Jr. Jul 2011 A1
20110191196 Orr et al. Aug 2011 A1
20110198395 Chen Aug 2011 A1
20110202463 Powell Aug 2011 A1
20110258120 Weiss Oct 2011 A1
20110313880 Paul et al. Dec 2011 A1
20120008851 Pennock et al. Jan 2012 A1
20120011024 Dorsey et al. Jan 2012 A1
20120011071 Pennock et al. Jan 2012 A1
20120012653 Johnson et al. Jan 2012 A1
20120016794 Orr et al. Jan 2012 A1
20120026018 Lin Feb 2012 A1
20120052910 Mu et al. Mar 2012 A1
20120095869 McKelvey Apr 2012 A1
20120095870 McKelvey Apr 2012 A1
20120097739 Babu et al. Apr 2012 A1
20120097740 Lamba et al. Apr 2012 A1
20120118956 Lamba May 2012 A1
20120118959 Sather et al. May 2012 A1
20120118960 Sather et al. May 2012 A1
20120126005 Dorsey et al. May 2012 A1
20120126006 Dorsey et al. May 2012 A1
20120126007 Lamba May 2012 A1
20120126010 Babu et al. May 2012 A1
20120126011 Lamba et al. May 2012 A1
20120126012 Lamba et al. May 2012 A1
20120126013 Sather et al. May 2012 A1
20120126014 Sather et al. May 2012 A1
20120130903 Dorsey et al. May 2012 A1
20120132712 Babu et al. May 2012 A1
20120138683 Sather et al. Jun 2012 A1
20120154561 Chari Jun 2012 A1
20120168505 Sather et al. Jul 2012 A1
20120234918 Lindsay Sep 2012 A1
20120246074 Annamalai et al. Sep 2012 A1
20120259651 Mallon et al. Oct 2012 A1
20120270528 Goodman Oct 2012 A1
20130031003 Dorsey et al. Jan 2013 A1
20130031004 Dorsey et al. Jan 2013 A1
20130087614 Limtao et al. Apr 2013 A1
20130137367 Fisher May 2013 A1
20130200147 Dorsey et al. Aug 2013 A1
20130200148 Dorsey et al. Aug 2013 A1
20130200149 Dorsey et al. Aug 2013 A1
20130200153 Dorsey et al. Aug 2013 A1
20130200154 Dorsey et al. Aug 2013 A1
20130204788 Dorsey et al. Aug 2013 A1
20130204791 Dorsey et al. Aug 2013 A1
20130204792 Dorsey et al. Aug 2013 A1
20130207481 Gobburu et al. Aug 2013 A1
20130254117 von Mueller et al. Sep 2013 A1
20130254118 Dorsey et al. Sep 2013 A1
20130304244 Ojanpera Nov 2013 A1
20130320089 Marcus et al. Dec 2013 A1
20140001257 Dorsey et al. Jan 2014 A1
20140001263 Babu et al. Jan 2014 A1
20140017955 Lo et al. Jan 2014 A1
20140018016 Chang et al. Jan 2014 A1
20140061301 Cho et al. Mar 2014 A1
20140076964 Morley, Jr. Mar 2014 A1
20140089205 Kapur et al. Mar 2014 A1
20140097242 McKelvey Apr 2014 A1
20140124576 Zhou May 2014 A1
20140131442 Morrow et al. May 2014 A1
20140144983 Dorsey et al. May 2014 A1
20140203082 Huh Jul 2014 A1
20150161419 Wade et al. Jun 2015 A1
20150199677 Wade et al. Jul 2015 A1
Foreign Referenced Citations (21)
Number Date Country
2 812 251 Apr 2012 CA
1 145 766 Oct 2001 EP
2011-313714 Nov 2001 JP
2003-108777 Apr 2003 JP
2004-078662 Mar 2004 JP
2005-063869 Mar 2005 JP
2005-242550 Sep 2005 JP
2005-269172 Sep 2005 JP
2009-199649 Sep 2009 JP
2013-518344 May 2013 JP
10-0452161 Oct 2004 KR
10-2005-0077659 Aug 2005 KR
10-2008-0039330 May 2008 KR
0165827 Sep 2001 WO
02084548 Oct 2002 WO
2007070592 Jun 2007 WO
2009128483 Oct 2009 WO
2010097711 Sep 2010 WO
2010111130 Sep 2010 WO
2010135174 Nov 2010 WO
2013009891 Jan 2013 WO
Non-Patent Literature Citations (144)
Entry
Advisory Action mailed Aug. 24.2012, for U.S. Appl. No. 13/010,976, of Babu, A. R., et al., filed Jan. 21, 2011.
Non-Final Office Action mailed Aug. 15, 2014, for U.S. Appl. No. 13/010,976, of Babu, A. R., et al., filed Jan. 21, 2011.
Notice of Allowance mailed Dec. 24, 2014, for U.S. Appl. No. 13/010,976, of Babu, A. R., et al., filed Jan. 21, 2011.
Non-Final Office Action mailed Apr. 2, 2014, for U.S. Appl. No. 14/012,655, of McKelvey, J., filed Aug. 28, 2013.
Final Office Action mailed Aug. 15, 2014, for U.S. Appl. No. 14/012,655, of McKelvey, J., filed Aug. 28, 2013.
Non-Final Office Action mailed Jan. 20, 2015, for U.S. Appl. No. 14/012,655, of McKelvey, J., filed Aug. 28, 2013.
Notice of Allowance mailed Sep. 1, 2015, for U.S. Appl. No. 13/298,487, of Babu, A., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Apr. 29, 2013, for U.S. Appl. No. 13/298,487, of Babu, A., et al., filed Nov. 17, 2011.
Final Office Action mailed Aug. 22, 2013, for U.S. Appl. No. 13/298,487, of Babu, A., et al., filed Nov. 17, 2011.
Advisory Action mailed Oct. 22, 2013, for U.S. Appl. No. 13/298,487, of Babu, A., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Aug. 21, 2014, for U.S. Appl. No. 13/298.487, of Babu, A., et al., filed Nov. 17, 2011.
Final Office Action mailed Mar. 18, 2015, for U.S. Appl. No. 13/298,487, of Babu, A., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Feb. 20, 2015, for U.S. Appl. No. 14/512,104, of Templeton, T., et al., filed Oct. 10, 2014.
International Search Report and Written Opinion for PCT Application No. PCT/US2010/052483, mailed Jun. 10, 2011.
International Search Report and Written Opinion for PCT Application No. PCT/US2011/055386, mailed Feb. 22, 2012.
European Search Report and Opinion for European Application No. 11833172.7, mailed Apr. 22, 2014.
International Search Report and Written Opinion for PCT Application No. PCT/US2014/069788, mailed May 14, 2015.
International Search Report and Written Opinion for PCT Application No. PCT/US2012/064782, mailed Feb. 26, 2013.
International Search Report and Written Opinion for PCT Application No. PCT/US2010/052481, mailed Jun. 23, 2011.
International Search Report and Written Opinion for PCT Application No. PCT/US2014/067074, mailed Mar. 15, 2015.
Examination Report for Canadian Application No. 2,812,594, mailed on Feb. 24, 2015.
Examination Report No. 1 for Australian Application No. 201415781, mailed on Feb. 23, 2015 (Registration No. 359005).
“Review: Square, Inc. Square Credit Card Reader (2013).” iLounge, Retrieved from the Internet URL: http://www.ilounge.com/index.php/reviews/entry/square-inc.-square-credit-card-reader-2013/, on Jan. 16, 2014, pp. 3.
“TUAW The Unofficial Apple Weblog, Square credit card reader loses weight, gains accuracy”, Retrieved from the Internet URL: http://www.tuaw.com/2013/12/09/square-credit-card--reader-loses-weight-gains-accuracy/, on Dec. 9, 2013, p. 1.
Examination Report No. 2 for Australian Application No. 201415781, mailed Aug. 13, 2015 (Registration No. 359005).
Ryan, P., “Plug and Pay: A Gallery of 26 Mobile Card Readers,” Aug. 20, 2013, Retrieved from the Internet URL: http://bankinnovation.net/2013/08/plug-and-pay-a-gallery-of-26-mobile-card-readers/, on Feb. 19, 2015, pp. 1-12.
Notification of Registration of a Design for Australian Application No. 201415781, mailed on Nov. 27, 2014 (Registration No. 359005).
First Examination Report for Indian Design Application No. 267386, mailed Feb. 5, 2015.
Non-Final Office Action mailed Apr. 25, 2013, for U.S. Appl. No. 13/298,491, of Lamba, K., et al., filed Nov. 17, 2011.
Final Office Action mailed Sep. 17, 2013, for U.S. Appl. No. 13/298,491, of Lamba, K. et al., filed Nov. 17, 2011.
Advisory Action mailed Oct. 22, 2013, for U.S. Appl. No. 13/298,491, of Lamba, K., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Jul. 17, 2014, for U.S. Appl. No. 13/298,491, of Lamba, K., et al., filed Nov. 17, 2011.
Final Office Action mailed Feb. 4, 2015, for U.S. Appl. No. 13/298,491, of Lamba, K., et al., filed Nov. 17, 2011.
Notice of Allowance mailed Jun. 22, 2015, for U.S. Appl. No. 13/298,491, of Lamba, K., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Jun. 6, 2014, for U.S. Appl. No. 14/231,598, of Wade, J., et al., filed Mar. 31, 2014.
Non-Final Office Action mailed Apr. 10, 2015, for U.S. Appl. No. 14/189,997, of Lamfalusi, M., et al., filed Feb. 25, 2014.
Notice of Allowance mailed Nov. 25, 2014, for U.S. Appl. No. 14/231,598, of Claude, J.B., et al., filed Mar. 31, 2014.
Non-Final Office Action mailed Jun. 22, 2015, for U.S. Appl. No. 14/322,815, of Edwards, T., filed Jul. 2, 2014.
Notice of Allowance mailed Aug. 1, 2014, for U.S. Appl. No. 14/203,463, of Wade, J., et al., filed Mar. 10, 2014.
Notice of Allowance mailed Aug. 27, 2015, for U.S. Appl. No. 13/298,501, of Babu, A., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Sep. 11, 2014, for U.S. Appl. No. 13/298,501, of Babu, A., et al., filed Nov. 17, 2011.
Final Office Action mailed May 6, 2015, for U.S. Appl. No. 13/298,501, of Babu, A., et al., filed Nov. 17, 2011.
Notice of Allowance mailed Oct. 17, 2014, for U.S. Appl. No. 14/220,967, of Wade, J., et al., filed Mar. 20, 2014.
Notice of Allowance mailed Dec. 18, 2014, for U.S. Appl. No. 14/220,967, of Wade, J., et al., filed Mar. 20, 2014.
Notice of Allowance mailed May 19, 2015, for U.S. Appl. No. 14/620,765, of Wade, J., et al., filed Feb. 12, 2015.
Notice of Allowance mailed Jun. 10, 2014, for U.S. Appl. No. 29/491,147, of Templeton T., et al., filed May 16, 2014.
Non-Final Office Action mailed Sep. 11, 2014, for U.S. Appl. No. 13/298,506, of Lamba, K., et al., filed Nov. 17, 2011.
Final Office Action mailed May 6, 2015, for U.S. Appl. No. 13/298,506, of Lamba, K., et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Sep. 30, 2011, for U.S. Appl. No. 13/005,822, of McKelvey, J., et al., filed Jan. 13, 2011.
Notice of Allowance mailed Aug. 28, 2015, for U.S. Appl. No. 13/298,510, of Lamba, K. et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Sep. 11, 2014, for U.S. Appl. No. 13/298,510, of Lamba, K. et al., filed Nov. 17, 2011.
Final Office Action mailed May 6, 2015, for U.S. Appl. No. 13/298,510, of Lamba, K. et al., filed Nov. 17, 2011.
Final Office Action mailed Jul. 9, 2012, for U.S. Appl. No. 13/005,822, of McKelvey, J., et al., filed Jan. 13, 2011.
Non-Final Office Action mailed Jun. 18, 2013, for U.S. Appl. No. 13/005,822, of McKelvey, J., et al., filed Jan. 13, 2011.
Non-Final Office Action mailed Dec. 10, 2013, for U.S. Appl. No. 13/005,822 of McKelvey, J., et al., filed Jan. 13, 2011.
Non-Final Office Action mailed Oct. 7, 2011, for U.S. Appl. No. 13/043,258, of McKelvey, J., filed Mar. 8, 2011.
Final Office Action mailed Jul. 13, 2012, for U.S. Appl. No. 13/043,258, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Dec. 11, 2013, for U.S. Appl. No. 13/043,258, of McKelvey, J., filed Mar. 8, 2011.
Notice of Allowance mailed Jul. 1, 2014, for U.S. Appl. No. 13/043,258, of McKelvey, J., filed Mar. 8, 2011.
Advisory Action mailed Aug. 15, 2012, for U.S. Appl. No. 13/043,258, of McKelvey, J., filed Mar. 8, 2011.
Advisory Action mailed Aug. 17, 2012, for U.S. Appl. No. 13/005,822, of McKelvey, J.,et al., filed Jan. 13, 2011.
Notice of Allowance mailed Jun. 24, 2014, for U.S. Appl. No. 13/005,822, of McKelvey, J., et al., filed Jan. 13, 2011.
Non-Final Office Action mailed Oct. 7, 2014, for U.S. Appl. No. 13/298,534, of Lamba, K., et al., filed Nov. 17, 2011.
Final Office Action mailed Apr. 8, 2015, for U.S. Appl. No. 13/298,534, of Lamba, K., et al., filed Nov. 17, 2011.
Final Office Action mailed Sep. 6, 2013, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Advisory Action mailed Oct. 21, 2013, for U.S. Appl. No. 13/298,560 of Lamba K. et al., filed Nov. 17, 2011.
Final Office Action mailed Aug. 15, 2013, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Advisory Action mailed Nov. 8, 2013, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Feb. 24, 2014, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Notice of Allowance mailed Jul. 15, 2014, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Jul. 22, 2014, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Final Office Action mailed Jan. 28, 2015, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Non-Final Office Action mailed Oct. 11, 2011, for U.S. Appl. No. 13/043,203, of McKelvey. J., et al., filed Mar. 8, 2011.
Final Office Action mailed Jul. 6, 2012, for U.S. Appl. No. 13/043,203, of McKelvey. J., et al., filed Mar. 8, 2011.
Non-Final office Action mailed Oct. 11, 2011, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Advisory Action mailed Aug. 1, 2012, for U.S. Appl. No. 13/043,203, of McKelvey, J., filed Mar. 8, 2011.
Advisory Action mailed Aug. 16, 2012, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Apr. 29, 2013, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Non-Final office Action mailed Apr. 30, 2013, for U.S. Appl. No. 13/043,203, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed May 28, 2013, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Notice of Allowance mailed Jul. 9, 2013, for U.S. Appl. No. 13/043,203, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Jul. 6, 2015, for U.S. Appl. No. 13/298,534, of Lamba K. et al., filed Nov. 17, 2011.
Advisory Action mailed Apr. 9, 2015, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Final office Action mailed Jul. 9, 2012, for U.S. Appl. No. 13/043,263, of McKelvey, J., filed Mar. 8, 2011.
Non-Final Office Action mailed Jul. 16, 2015, for U.S. Appl. No. 13/298,560, of Lamba K. et al., filed Nov. 17, 2011.
Application for Registration of an Industrial Design Examiner's Report for Canadian Design Application No. 159528, mailed Jun. 11, 2015.
English-language translation of Notice of Reasons for Rejection for Japanese Application No. 2014-0255525, mailed Mar. 31, 2015.
Certificate of Registration of Design for Indian Design Application No. 267386 mailed Nov. 14, 2014 (Registration No. 39149).
Non-Final Office Action mailed Jul. 27, 2015, for U.S. Appl. No. 29/493,212, of Edwards, T., et al., filed Jun. 6, 2014.
English-language translation of Decision of Final Rejection for Japanese Patent Application No. 2013-533897, mailed Feb. 23, 2015.
English-language translation of Office Action for Japanese Patent Application No. 2013-533897, mailed Jun. 5, 2014.
English-language translation of Search Report for Japanese Patent Application No. 2013-533897, mailed Apr. 14, 2014.
Certificate of Design Registration for European Patent Application No. 002578674, mailed Nov. 14, 2014 (Registration No. 002578674-0001).
Notice of Allowance mailed Sep. 2, 2015, for U.S. Appl. No. 14/578,107, of Wade, J. et al., filed Dec. 19, 2014.
Non-Final Office Action mailed Nov. 21, 2013, for U.S. Appl. No. 14/052,009, of Wilson, M., et al., filed Oct. 11, 2013.
Non-Final Office Action mailed Jul. 19, 2012, for U.S. Appl. No. 12/903,758, of Wilson, M., et al., filed Oct. 13, 2010.
“Reading magnetic cards (almost) for free,” Lekemel's Scrapbook, (“Lekemel”), Jan. 26, 2009, Retrieved from the Internet URL: http://lekemel.net/blog/?p=12, on May 5, 2011, pp. 1-2.
“MSR500EX (Mini123EX) Portable Magnetic Stripe Card Reader,” Tyner, Apr. 27, 2007, Retrieved from the Internet URL: http://www.tyner.com/magnetic/msr500ex.htm, on Apr. 22, 2011, pp. 1-3.
Padilla, L., “Turning your mobile into a magnetic stripe reader,” Retrieved from the Internet URL: http://www.gae.ucm.es/˜padilla/extrawork/mobilesoundtrack.html, on Feb. 7, 2011, pp. 1-4.
Padilla, L., “Magnetic stripe reader circuit,” Jan. 28, 1997, Retrieved from the Internet URL: http://www.gae.ucm.es/˜padilla/extraworklmagamp.html, on May 5, 2011, pp. 1-7.
Padilla, L. “The simplest magnetic stripe reader,” Jan. 27, 2003. Retrieved from the Internet URL: www.gae.ucm.esi˜padilla/extrawork/soundtrack.html, on Dec. 21, 2009, pp. 1-5.
“Travel industry targeted for Palm PDA card reader,” Retrieved from the Internet URL: http://www.m-travel.com/news/2001/08/travel—industry.html, on Apr. 19, 2011, pp. 1-2.
“Semtek to target healthcare with HandEra PDAs and PDA swipe card reader,” Aug. 29, 2001, Retrieved from the Internet URL: http://www.pdacortex.com/semtek.htm, on Apr. 19, 2011, pp. 1-2.
“Semtek 3913 Insert Magnetic Card Reader 20 Pin Serial RS232,” Product description, RecycledGoods.com, Retrieved from the Internet URL: http://www.recycledgoods.com/products/Semtek-3913-Insert-Magnetic-Card-Reader-20-Pi . . . , on Apr. 19, 2011, pp. 1-3.
Credit Card Swiper and Reader for iPhone, iPad, Blackberry, Android and more, Retrieved from the Internet URL: http://hubpages.com/hub/Credit-Card-Swiper-and-Reader-for-iPhone-iPad-Blackberry-An . . . , on Apr. 20, 2011, pp. 1-2.
Titlow, J.P., “ROAMpay is like Square for Blackberry (Plus Android, iOS and Desktops),” Dec. 1, 2010, Retrieved from the Internet URL: http://www.readwriteweb.com/biz/2010/12/roampay-is-like-square-for-bla.php, on Apr. 20, 2011, pp. 1-12.
Veneziani, V., “Use a cellphone as a magnetic card reader,” Apr. 15, 2005, Retrieved from the Internet URL: http://hackaday.com/2005/04/15/use a-cellphone-as-a-magnetic-card . . . , on Feb. 7, 2011, pp. 1-10.
Buttell, A.E., “Merchants eye mobile phones to transact card payments,” Feb. 3, 2010, Retrieved from the Internet URL: http://www.merchantaccountguide.com/merchant-account-news/cell-phone-credit-card-mer . . . , on Feb. 8, 2011, pp. 1-3.
“USB Magnetic Stripe Credit/Card Track-2 Reader and Writer (75/210BPI),” Deal Extreme (dealextreme.com), Nov. 15, 2008, Retrieved from the Internet URL: http://www.dealextreme.com/p/usb-magnetic-stripe-credit-debit-card-track-2-reader-and-wr . . . , on Feb. 8, 2011, pp. 1-3.
“Mophie Marketplace Magnetic Strip Reader/Case for iPhone 3G & 3GS- Grey,” J&R (JR.com), Retrieved from the Internet URL: http://www.jr.com/mophie/pe/MPE—MPIP3GBLK/, on Feb. 8, 2011, pp. 1-1.
“Barcode scanner and Magnetic Stripe Reader (MSR) for Pocke . . . ,” Tom's Hardware (tomshardware.com), Retrieved from the Internet URL: http://www.tomshardware.com/forum/24068-36-barcode-scanner-magnetic-stripe-reader-po . . . , on Feb. 8, 2011, pp. 1-2.
“A Magnetic Stripe Reader—Read Credit Cards & Driver Licences?,” Articlesbase (articlesbase.com), Sep. 7, 2009, Retrieved from the Internet URL: http://www.articlesbase.com/electronics-articles/a-magnetic-stripe-reader-read-credit-cards-.., on Feb. 8, 2011, pp. 1-3.
Jones, R., “U.S. Credit Cards to get a high-tech makeover,” Oct. 22, 2010, Retrieved from the Internet URL: http://lifeine.today.com/—news/2010/10/22/5334208-us-credit-cards-to-get-a-high-tech-mak . . . , on Feb. 8, 2011, pp. 1-8.
“Arduino magnetic stripe decoder,” Instructables, Retrieved from the Internet URL: http://www.instructables.com/id/Arduino-magneticstripe-decorder/, on Feb. 8, 2011, pp. 1-5.
“Magnetic Stripe Reader (MSR) MSR7000-100R,” Motorola Solutions, Retrieved from the Internet URL: http://www.motorola.com/business/US-EN/MSR7000-100R—US-EN.do?vgnextoid=164fc3 . . . , on Feb. 8, 2011, pp. 1-1.
“Pay@PC,” Retrieved from the Internet URL: http://www.merchantanywhere.com/PAY—AT—PCT@PC.htm, on Feb. 11, 2011, pp. 1-2.
“Get paid on the spot from your mobile phone,” Retrieved from the Internet URL: http://payments.intuit.com/products/basic-payment-solutions/mobile-credit-card-processin.., on Feb. 11, 2011, pp. 1-3.
“TOUCH-Pay Wireless Credit Card Processing,” MerchantSeek, Retrieved from the Internet URL: http://www.merchantseek.com/wireless-credit-card-processing.htm, on Feb. 11, 2011, pp. 1-5.
“Announcement: Semtek Introduces Side Swipe II Card Reader for Wireless Devices,” Brighthand, Retrieved from the Internet URL: http://forum.brighthand.com/pdas-handhelds/173285-announcement-semtek-introduces-sid . . . , on Apr. 19, 2011, pp. 1-2.
Grandison, K., “vTerminal Credit Card Processing App for AuthorizeNet and PayPal Payflow Pro for Curve 8350 8500 8900 and Bold 9000,” Retrieved from the Internet URL: http://www.4blackberry.net/tag/business-tools/vterminal-credit-card-processing-app-for-authorizenet-and-paypal-payflow-pro-for-curve-8350-8500-890-download-2075.html, on Mar. 30, 2015, pp. 1-4.
Harris, A., “Magnetic Stripe Card Spoofer,” Aug. 4, 2008, Retrieved from the Internet URL: http://hackaday.com/2008/08/04/magnetic-stripe-card-spoofer/, on Apr. 25, 2011, pp. 1-11.
“Headphone Jack (3.5mm),” Retrieved from the Internet URL: http://www.phonescoop.com/glossary/term.php?gid=440, on May 5, 2011, pp. 1-1.
“2.5mm Headset Jack,” Retrieved from the Internet URL: http://www.phonescoop.com/glossary/term.php?gid=360, on May 5, 2011, pp. 1-1.
“Reference Designations for Electrical and Electronics Parts and Equipment,” Engineering Drawing and Related Documentation Practices, ASME Y14.44-2008, The American Society of Mechanical Engineers, Nov. 21, 2008, pp. 1-31.
Acidus, “Mag-stripe Interfacing—A Lost Art,” Retrieved from the Internet URL: http://www.scribd.com/doc/18236182/Magstripe-Interfacing#open—. . . , on Feb. 7, 2011, pp. 1-4.
“Mag-stripe readers the hunt for a homebrew mag-stripe reader that'll work with modem,” Jan. 16, 2009, Retrieved from the Internet URL: http://www.hak5.org/forums/index.php?showtopic=11563&st=20, on Apr. 25, 2011, pp. 1-6.
Kuo, Y-S et al., “Hijacking Power and Bandwidth from the Mobile Phone's Audio Interface,” Proceedings of the First ACM Symposium on Computing for Development, (DEV'10), Dec. 17, 2010, pp. 1-10.
Website: www.alexwinston.com, Aug. 31, 2009, pp. 1-5.
“Magnetic Card Reader,” lekemel.net˜scrapbook, Retrieved from the Internet URL: http://lekemel.net/scrapbook/old/cardreader.html, on Apr. 25, 2011, pp. 1-4.
“Magnetic stripe reader/writer,” Retrieved from the Internet URL: http://www.gae.ucm.es/˜padilla/extrawork/stripe.html, on Dec. 21, 2009, pp. 1-2.
Lucks, S., “Two-Pass Authenticated Encryption Faster than Generic Composition,” H. Gilbert and H. Handschuh (Eds.): FSE 2005, LNCS 3557, © International Association for Cryptologic Research 2005, pp. 284-298.
Bauer, G.R. et al., “Comparing Block Cipher Modes of Operation on MICAz Sensor Nodes,” 17th Euromicro International Conference on Parallel, Distributed and Network-based Processing, Feb. 18-20, 2009, pp. 371-378.
European Search Report and Opinion for European Patent Application No. 11 786 731.7, mailed Mar. 28, 2014.
Office Action for European Patent Application No. 11 786 731.7, mailed Jul. 16, 2015.
Non-Final Office Action mailed Sep. 30, 2011, for U.S. Appl. No. 12/903,753, of McKelvey, J., et al., filed Oct. 13, 2010.
Final Office Action mailed Jul. 6, 2012, for U.S. Appl. No. 12/903,753, of McKelvey, J., et al., filed Oct. 13, 2010.
Non-Final Office Action mailed Jul. 8, 2013, for U.S. Appl. No. 12/903,753, of McKelvey, J., et al., filed Oct. 13, 2010.
Notice of Allowance mailed Oct. 10, 2013, for U.S. Appl. No. 12/903,753, of McKelvey, J., filed Oct. 13, 2010.
Final Office Action mailed Apr. 24, 2013, for U.S. Appl. No. 12/903,758, of Wilson, M., et al., filed Oct. 13, 2010.
Notice of Allowance mailed Aug. 6, 2013, for U.S. Appl. No. 12/903,758, of Wilson, M., et al., filed Oct. 13, 2010.
Notice of Allowance mailed Apr. 4, 2014, for U.S. Appl. No. 14/052,009, of Wilson, M., et al., filed Oct. 11, 2013.
Notice of Allowance mailed Jul. 30, 2014, for U.S. Appl. No. 14/052,009, of Wilson, M., et al., filed Oct. 11, 2013.
Non-Final Office Action mailed Sep. 30, 2011, for U.S. Appl. No. 13/010,976, of Babu, A. R., et al., filed Jan. 21, 2011.
Final Office Action mailed Jun. 12, 2012, for U.S. Appl. No. 13/010,976, of Babu, A. R., et al., filed Jan. 21, 2011.
Related Publications (1)
Number Date Country
20150149992 A1 May 2015 US
Provisional Applications (1)
Number Date Country
61909626 Nov 2013 US
Continuations (1)
Number Date Country
Parent 14203463 Mar 2014 US
Child 14551681 US