Apparatus, computer implemented method, and computer program product for improved print position correction
By using sensors in the printer to detect the edge position of the roll paper and generate the print position correction value, the printing position drift problem in the prior art is solved, and higher printing accuracy and resource utilization efficiency are achieved.
Patent Information
- Application Number
- JP2023182990
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-08-20
- Filing Date
- 2023-10-25
- Publication Date
- 2025-05-13
- Estimated Expiration
- 2042-08-09
AI Technical Summary
The existing printing technology is inefficient and can easily lead to resource waste when correcting printing position errors, especially the printing position drift problems caused by roll paper shrinkage and stretching.
By introducing sensors into the printer, the edge position of the roll paper is detected in real time, the print position correction value is calculated and generated, and the position of the print head is adjusted to ensure printing accuracy.
It effectively reduces printing position drift, improves printing accuracy, reduces resource waste, and ensures the stability and reliability of the printing process.
Smart Images

Figure 0007675779000001 
Figure 0007675779000002 
Figure 0007675779000003
Abstract
Description
[Technical field]
[0001] Embodiments of the present disclosure relate generally to improving printer operation, and more specifically, improving print position correction to improve print job accuracy and / or otherwise reduce erroneous print jobs and associated wasted resource consumption. [Background technology]
[0002] In various situations, a printer may experience any of a number of errors, circumstances, and the like that cause the printer to erroneously complete a print job, for example, by misprinting data at various locations along the print medium rather than at the proper location on a particular printable portion. Applicant has discovered problems with current implementations for correcting such errors. Through exerted effort, ingenuity, and innovation, Applicant has solved many of these identified problems by developing what is embodied in the present disclosure, which is described in detail below. Summary of the Invention
[0003] In general, the embodiments of the disclosure provided herein provide improved production and / or use of print position compensation. Other implementations of the improved production and / or use of print position compensation will be, or will become, apparent to one of ordinary skill in the art upon review of the following drawings and detailed description. All such additional implementations are intended to be included herein within the scope of this disclosure and protected by the following claims.
[0004] According to a first aspect of the present disclosure, an exemplary computer-implemented method is provided. The exemplary computer-implemented method is provided for generating a print position correction based at least in part on a first edge position distance and a second edge position distance. The computer-implemented method is executable by any of a myriad of computing devices embodied in hardware, software, firmware, and / or any combination thereof. In an exemplary embodiment, the computer-implemented method includes determining a first edge position distance between the first edge and the print head during a media output stage via a sensor. The exemplary computer-implemented method further includes determining a second edge position distance between the first edge and the print head during a media retract stage via a sensor. The exemplary computer-implemented method further includes generating a print position correction based at least in part on the first edge position distance and the second edge position distance.
[0005] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the exemplary computer-implemented method further includes initiating a printing operation based at least in part on the print position correction.
[0006] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the first edge location distances each include a first data value of a particular size, and the second edge location distances each include a second data value of a particular size.
[0007] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, generating the print position correction includes generating a differential edge position distance by subtracting the second edge position distance from the first edge position distance, and generating the print position correction by dividing the differential edge position distance by two.
[0008] Additionally or alternatively, some exemplary embodiments of the exemplary computer-implemented method In the method, determining the first edge position distance includes detecting a trailing edge of at least a printable portion of the print medium via a sensor, tracking a distance traveled by the leading edge when a predetermined force is applied to the print medium during a media output stage, the predetermined force being associated with a target distance between the sensor and the print head, and determining the first edge position distance based at least in part on the tracked distance traveled by the leading edge during the media output stage.
[0009] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, determining the second edge position distance includes detecting a leading edge of at least a printable portion of the printing medium via a sensor; tracking a distance traveled by the leading edge when a predetermined force is applied to the printing medium during a media retraction phase, the predetermined force being associated with a target distance between the sensor and the print head; and determining the second edge position distance based at least in part on the tracked distance traveled by the leading edge during the media retraction phase.
[0010] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, determining the second edge position distance includes detecting a trailing edge of at least a printable portion of the print medium via a sensor, tracking a distance traveled by the trailing edge when a predetermined force is applied to the print medium during a media retraction phase, the predetermined force being associated with a target distance between the sensor and the print head, and determining the second edge position distance based at least in part on the tracked distance traveled by the trailing edge during the media retraction phase.
[0011] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the media output step includes a calibration printing step.
[0012] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the media output stage includes a previous print job stage.
[0013] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the exemplary computer-implemented method further includes performing a bounds check based at least in part on the print position correction.
[0014] Additionally or alternatively, in some exemplary embodiments of the exemplary computer-implemented method, the exemplary computer-implemented method further includes detecting an occurrence of an idle state and resetting the print position correction in response to detecting the occurrence of the idle state.
[0015] According to a second aspect of the present disclosure, another computer-implemented method is provided. A second exemplary computer-implemented method is provided for generating a print position correction based at least in part on an output stage timestamp and a retraction stage timestamp. The second computer-implemented method is executable by any of a myriad of computing devices embodied in hardware, software, firmware, and / or any combination thereof. In one exemplary embodiment, the second exemplary computer-implemented method includes determining a difference in an output stage timestamp based at least in part on a first edge associated with a first printable portion of the print medium and a second edge associated with a second printable portion of the print medium during a media output stage via a sensor. The second exemplary computer-implemented method further includes determining a difference in a retraction stage timestamp based at least in part on a third edge associated with a third printable portion of the print medium and a fourth edge associated with a fourth printable portion of the print medium during a media retraction stage via a sensor. The second exemplary computer-implemented method further includes generating a print position correction based at least in part on the output-phase timestamp difference and the retraction-phase timestamp difference.
[0016] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, determining a difference in output stage timestamps during the media output stage via the sensor includes identifying, during the media output stage, a first event timestamp associated with a first edge detection event associated with the first edge, identifying, during the media output stage, a second event timestamp associated with a second edge detection event associated with the second edge, and determining a difference in output stage timestamps based at least in part on the first event timestamp and the second event timestamp.
[0017] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, determining a difference in the output stage timestamps during the media output stage via the sensor includes detecting a first edge detection event during the media output stage via the sensor, determining a first event timestamp associated with the first edge detection event via the sensor, detecting a second edge detection event during the media output stage via the sensor, determining a second event timestamp associated with the second edge detection event via the sensor, and generating a difference in the output stage timestamps by subtracting the second event timestamp from the first event timestamp.
[0018] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, determining a difference in retraction phase timestamps during the media retraction phase via the sensor includes identifying a first event timestamp associated with a first edge detection event associated with the first edge during the media retraction phase, identifying a second event timestamp associated with a second edge detection event associated with the second edge during the media retraction phase, and determining a difference in retraction phase timestamps based at least in part on the first event timestamp and the second event timestamp.
[0019] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, determining a differential retraction phase timestamp during the media retraction phase via the sensor includes detecting a first edge detection event during the media retraction phase via the sensor, determining a first event timestamp associated with the first edge detection event via the sensor, detecting a second edge detection event during the media retraction phase via the sensor, determining a second event timestamp associated with the second edge detection event via the sensor, and generating a differential retraction phase timestamp by subtracting the second event timestamp from the first event timestamp.
[0020] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, generating the print position correction includes generating a timestamp-based distance value by subtracting the retraction phase timestamp difference from the output phase timestamp difference, and generating the print position correction by multiplying the timestamp-based distance value by the printing speed.
[0021] Additionally or alternatively, in some exemplary embodiments of the second exemplary computer-implemented method, determining the retract phase timestamp difference includes (A) advancing the print medium by one dot line until a first edge of a first edge type is detected; and (B) determining sensor data corresponding to the sensor from an analog-to-digital converter associated with the sensor. repeatedly determining whether the sensor data indicates a first edge of a first edge type; if the sensor data indicates the first edge of the first edge type, determining a first timestamp associated with the detection of the first edge; and storing the first timestamp associated with the detection of the first edge; advancing the print medium by one dot line until a second edge of the first edge type is detected; determining second sensor data corresponding to the sensor from an analog-to-digital converter associated with the sensor; determining whether the sensor data indicates a second edge of the first edge type; if the second sensor data indicates the second edge of the first edge type, determining a second timestamp associated with the detection of the first edge; storing the second timestamp associated with the detection of the second edge; and determining a difference in a retraction phase timestamp from the first timestamp associated with the detection of the first edge and the second timestamp associated with the detection of the second edge.
[0022] According to a third aspect of the present disclosure, an apparatus is provided for generating a print position correction based at least in part on a first edge location distance and a second edge location distance. In an exemplary embodiment, the exemplary apparatus includes at least one processor and at least one memory having computer-coded instructions that, when executed by the at least one processor, cause the apparatus to perform any one of the exemplary computer-implemented methods described herein. In another exemplary embodiment, the exemplary apparatus includes means for performing each step of any one of the exemplary computer-implemented methods described herein.
[0023] According to a fourth aspect of the present disclosure, a computer program product is provided for generating a print position correction based at least in part on a first edge location distance and a second edge location distance. In an exemplary embodiment, the exemplary computer program product includes at least one non-transitory computer-readable storage medium having computer program code stored thereon, the computer program code configuring the computer program product, when executed by at least one processor, to perform any one of the exemplary computer-implemented methods described herein. [Brief description of the drawings]
[0024] Having thus described embodiments of the present disclosure in general terms, reference is now made to the accompanying drawings, which are not necessarily drawn to scale. [Figure 1] FIG. 1 illustrates a block diagram of a specially configured printer device within which an embodiment of the present disclosure may operate. [Diagram 2] 1 illustrates an example visualization of a printing error affecting a printed medium that may be improved by at least some example embodiments of the present disclosure. [Diagram 3] 1 illustrates an example sensor output in accordance with at least one example embodiment of the present disclosure. [Figure 4] 1 illustrates an example visualization of edge location distance determination during a media output stage, according to at least some example embodiments of the present disclosure. [Diagram 5] 1 illustrates an example visualization of determining edge position distance during a media retraction phase, according to at least some example embodiments of the present disclosure. [Figure 6] A flow diagram illustrating example operations of an example process for generating and / or utilizing print position corrections based at least in part on one or more determined edge position distances, according to at least some example embodiments of the present disclosure. [Figure 7]1 depicts a flow diagram illustrating example operations of an example process for generating print position corrections based at least in part on a print position correction and a divisor, in accordance with at least some example embodiments of the present disclosure. [Figure 8] 1 depicts a flow diagram illustrating example operations of an example process for determining an edge location distance based on a tracking distance traveled during a media movement phase, in accordance with at least some example embodiments of the present disclosure. [Figure 9] 1 depicts a flow diagram illustrating an example operation of an example process for resetting print position correction, in accordance with at least some example embodiments of the present disclosure. [Figure 10] 1 illustrates an example visualization of a determination of a stage timestamp difference during a media output stage, according to at least some example embodiments of the present disclosure. [Figure 11] 1 illustrates an example visualization of a determination of a stage timestamp difference during a media retraction stage, according to at least some example embodiments of the present disclosure. [Figure 12] A flow diagram illustrating example operations of an example process for generating and / or utilizing print position corrections based at least in part on one or more determined phase timestamp differences, according to at least some example embodiments of the present disclosure. [Figure 13] 1 depicts a flow diagram illustrating an example operation of an example process for determining a delta of media movement phase timestamps associated with a particular media movement phase, in accordance with at least some example embodiments of the present disclosure. [Figure 14] 1 depicts a flow diagram illustrating an example operation of an example process for generating deltas of media movement phase timestamps associated with media movement phases, in accordance with at least some example embodiments of the present disclosure. [Figure 15] FIG. 1 shows a flow diagram illustrating example operations of an example process for generating print position corrections based at least in part on timestamp-based distance values, in accordance with at least some example embodiments of the present disclosure. [Figure 16]A flow diagram illustrating exemplary operations of an exemplary process for determining media movement phase timestamp deltas based on edge and timestamp detection and storage via sensors, in accordance with at least some exemplary embodiments of the present disclosure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0025] Various embodiments of the present disclosure will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the present disclosure are shown. Indeed, embodiments of the present disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
[0026] In some embodiments, some of the above operations may be modified or further amplified. Furthermore, in some embodiments, additional optional operations may be included. Modifications, amplifications, or additions to the above operations may be performed in any order and in any combination.
[0027] Many modifications and other embodiments of the disclosure described herein will come to mind to one skilled in the art to which this disclosure pertains having the benefit of the teachings presented in the foregoing description and the associated drawings. It is therefore to be understood that the embodiments are not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, while the foregoing description and the associated drawings describe example embodiments in the context of certain example combinations of elements and / or features, it is to be understood that different combinations of elements and / or features may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, combinations of elements and / or features different from those set forth above are also contemplated as may be set forth in some of the appended claims. Although certain terms have been employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
[0028] It will be appreciated that the data types, data objects, and other data representations described herein may be embodied in any of a myriad of ways, such as with any of a myriad of primitive data types, custom object implementations, and the like, without departing from the scope and spirit of the present disclosure.
[0029] overview Ensuring that a printer continues to print at an expected location on the print media is one of many factors that are important to ensure that the printer functions as intended. One aspect of ensuring that a printer continues to print at an expected location on the print media is to maintain print accuracy that defines where the printing of data begins and / or ends. If a printer begins to print at an incorrect location (e.g., too high or too low), the incorrectly printed portion of the printed media may be completely unusable. For example, in a label printing situation, printing at an incorrect location may result in an incompletely printed label on the print media, one or more portions of the data being missing, truncated, etc. If the print media is printed incorrectly, the printer will have completely wasted the processing resources, etc. utilized to perform the printing, as well as the actual print media on which the data is printed (e.g., if the print media is not reusable).
[0030] One reason a printer may print an incorrectly positioned label is due to slippage of the print media. Slippage may cause printing to begin in different locations for different labels on the print media based on inconsistent forces applied to the print media. For example, when a label printer and / or other device utilizes a roll of print media, slippage may occur as the size of a print job increases. As a roll of print media is consumed, the diameter of such a roll of print media decreases. Forces are applied to the print media to print on that label and / or to pull the print media in the direction required to output the print media containing the print data.
[0031] When a roll of print media is manipulated by a force (e.g., a spring force that pulls the print media roll for printing and output), changing the dynamics of the print media can cause a print position deviation. For example, with a new roll of print media, a pulling force sufficient to pull the print media when the print media is at its maximum dimension (e.g., maximum diameter), maximum weight, etc. As the print job continues, pulling forces can be similarly applied to successively used rolls of print media. Reduced and / or otherwise altered aspects of a used roll of print media (e.g., reduced diameter) can cause the print position to be inaccurate, causing labels to be printed with errors of various severity. In many cases, the printer does not have any mechanism to compensate for or otherwise manage this change in force.
[0032] Referring to FIG. 2, FIG. 2 illustrates an inaccurately printed label due to inaccurate printing accuracy. Specifically, FIG. 2 illustrates an exemplary print medium 200 including printable portions 202A, 202B, 202C, 202D, and 202E. In one exemplary situation, each printable portion of print medium 200 corresponds to a label on a particular roll of labels. Each printable portion includes data printed on the particular printable portion. For example, printable portion 202A includes text data 204A, printable portion 202B includes text data 204B, printable portion 202C includes text data 204C, printable portion 202D includes text data 204D, and printable portion 202E includes text data 204E. Text data 204A-204E may be printed by a particular printer during the course of a particular print job, which may correspond to the printing of any number of labels. For example, a printer may run a print job of tens, hundreds, thousands, and / or more labels. In one exemplary situation, printable portion 202A embodies a first label of a print job, while printable portion 202A embodies a second label of the print job, while printable portion 202C, 202D, and 202E may be tens, hundreds, or thousands of labels later in the print job. As the print job continues, the likelihood of print registration errors affecting the printer increases as, for example, the diameter of the roll of print media in the printer decreases due to the output being printed. In addition, the likelihood of print registration errors increases when the area of the printable portion of the print media is small.
[0033] Each of the printable portions includes text data to be printed thereon, the text data intended to be printed at a particular location of the printable portion. For example, the text data may be intended to be printed centered on the corresponding printable portion such that margins are maintained on each side of the text data. As shown, as the print job continues, the print position may drift over time. The print position begins to drift downward in the printing of printable portion 202C. The print position drifts further downward in the printing of printable portion 202D, and further downward still in the printing of printable portion 202E, such that at least a portion of the text is truncated. The drift of the print position causes a wasteful consumption of computing resources used to print one or more printable portions, such as printable portions 202C, 202D, and / or 202E, that are ultimately unusable. In addition, the material of printable portions 202C, 202D, and 202E may become wasted and need to be discarded. At the end of a particularly long print job (eg, printing tens, hundreds, thousands, or more labels), some or all of the resulting printout may be useless.
[0034] The embodiments of the present disclosure generate print position corrections that are utilized to offset changes in print position that occur over time (e.g., due to slippage that results in drift). In this regard, print position corrections may refer to offsets utilized during one or more print jobs to begin printing at a corrected print position. The corrected print position may take into account any drift that has occurred. By reducing and / or eliminating drift, the embodiments of the present disclosure perform print jobs more accurately, regardless of the length of the print job, label size, and / or any other factors that affect the drift of the print position. By performing print jobs more accurately, the embodiments further reduce material waste that would otherwise result from failed and / or inaccurate printing due to such print position drift.
[0035] Some embodiments of the present disclosure generate print position corrections based at least in part on one or more distances and / or timestamps usable to generate the distances, with such determinations being performed during different media movement phases, such as a media output phase and a media retract phase. For example, some embodiments determine an edge position distance between an edge and a component of the printer where printing occurs (e.g., a print head) and utilize such edge position distance to generate print position corrections. Alternatively or additionally, some embodiments determine a difference in media movement phase timestamps for the media output phase and the media retract phase and utilize such timestamp difference to determine print position corrections. Such distances and / or timestamps may be determinable using sensor(s) present in various printers. In this regard, conventional printers may be specially configured to perform such operations without requiring alternative and / or additional hardware. Similarly, new printers may be specially configured to implement such determinations without reconfiguration.
[0036] definition The term "sensor" refers to hardware, software, firmware, and / or combinations thereof that detect the presence of print media, gaps between portions of print media, black marks, and / or other determinable aspects of a portion of print media. Non-limiting examples of sensors include label stop sensors, black mark sensors, gap sensors, slot sensors, etc.
[0037] The term "printhead" refers to a printer component embodied in hardware, software, and / or firmware that engages and / or otherwise interacts with a print medium for printing on the print medium.
[0038] The term "print media" refers to a physical object that includes any number of areas or regions onto which data is printed. Non-limiting examples of print media include label rolls, continuous paper supplies, and any other supply of printable material.
[0039] The term "printable portion" refers to a limited area or areas of a print medium onto which data is printed. In some embodiments, the print medium includes printable portion(s) embodying a label or other area onto which data is printed, and non-printable portion(s) separating the printable portion(s), e.g., gaps between such printable portions.
[0040] The term "edge location distance" refers to the determined distance between a particular edge of a portion of a print medium and the print head.
[0041] The term "media transport stage" refers to an operating state of a printer in which the print media is manipulated by one or more applied forces.
[0042] The term "media output stage" refers to a particular media movement stage in which the print media is manipulated in a first direction for output through a printer. Non-limiting examples of media output stages include a stage in which the printer is printing on the print media to output the print media containing such print data, a stage in which the print media is fed through the printer to output the print media, and / or another stage in which the print media is output with or without printing.
[0043] The term "media retraction phase" refers to a particular media movement phase where the print media is manipulated in a direction opposite to that of the printer during output. A non-limiting example of a media retraction phase is when the printer is retracting unprinted labels that have already passed a particular sensor but have not been printed during the print job.
[0044] The term "print position correction" refers to electronic management data that represents an offset distance or time value at which printing begins. In one exemplary situation, a positive print position correction indicates that printing begins a certain number of dot lines after a determined or default position where printing normally begins.
[0045] The term "print operation" refers to electronically driven instructions that cause a printer to initiate a print job stage to print specific data onto a print medium. The term "print job stage" refers to a state of a printer in which data is printed onto a print medium. The term "calibration print stage" refers to a specific print job stage in which specific data is printed onto a print medium for use in calibrating one or more configurations, settings, and / or other aspects of a printer. For example, in some exemplary situations, during a calibration print stage, calibration data is printed onto the print medium to determine a default print location to begin printing data onto the print medium.
[0046] The term "determinable step size" refers to electronic management data that represents a unit of measurement associated with adjusting the position of the print medium. In some embodiments, the determinable step size represents a particular number of dot lines, the number being determined directly or interpreted from other data detected from the sensor (e.g., timestamp data).
[0047] The term "differential edge location distance" refers to the distance difference between two edge location distances. In one exemplary situation, the differential edge position distance represents the difference between a first edge position distance associated with a first media movement stage (e.g., a media output stage) and a second edge position distance associated with a second media movement stage (e.g., a media retract stage).
[0048] The term "edge" refers to a location and / or region of a boundary of a printable portion of a print medium. In some embodiments, an edge is associated with multiple edges, each having a different "edge type." The term "edge type" refers to a determined classification and / or categorization of a particular edge based on the location of the edge relative to a corresponding printable portion of the print medium and / or a particular direction.
[0049] The term "leading edge" with respect to a printable portion of print media refers to the area and / or location of the printable portion that first passes a sensor at the media output stage. The leading edge may also be referred to as the "leading edge" of a printable portion of print media, such as a label. In some embodiments, the leading edge is a non-limiting example of an edge type.
[0050] The term "trailing edge" with respect to a printable portion of print media refers to the area and / or location of the printable portion that last passes a sensor at the media output stage. The trailing edge may also be referred to as the "trailing edge" of a printable portion of print media, such as a label. In some embodiments, the trailing edge is a non-limiting example of an edge type.
[0051] The term "target distance" for two locations refers to electronically managed data that represents a known distance between the two locations. When used with respect to particular components, target distance refers to electronically managed data that represents a known distance between the locations associated with each of the particular components.
[0052] The term "bounds check" refers to any number of algorithms, decisions, and / or data-driven processes that indicate whether a print location identified for use in executing a print job is within a printable portion of the print medium. In some embodiments, the bounds check embodies a comparison between the print location correction and a maximum allowable correction.
[0053] The term "idle" refers to a determined state of a printer that indicates that the printer has not performed any operations associated with a print job for a specified period of time.
[0054] The term "edge-detection event" refers to electronically managed data captured by a sensor that indicates the presence of an edge within the field of view captured by the sensor. An edge-detection event is detectable by the sensor and / or processing circuitry associated with the sensor.
[0055] The term "event timestamp" refers to electronic management data that represents the time that a particular event was detected.
[0056] The term "media movement phase timestamp delta" refers to electronic management data that represents a determined length of time between a first event and a second event each detected during a media movement phase.
[0057] The term "output stage timestamp difference" refers to a media movement stage timestamp difference determined based on a first event and a second event detected during the media output stage.
[0058] The term "retreat phase timestamp difference" refers to a media movement phase timestamp difference determined based on a first event and a second event detected during the media retardation phase.
[0059] The term "timestamp-based distance value" refers to electronic management data that represents the difference in time that one or more edges are determined to be moving between the media output stage and the media retract stage based at least in part on a determined difference between the output stage timestamp difference and the retract stage timestamp difference.
[0060] The term "print speed" refers to electronically managed data that represents the known and / or determined speed at which the print medium moves through a printer.
[0061] Exemplary Apparatus of the Disclosure FIG. 1 illustrates a block diagram of a printer device that may be specially configured within which an embodiment of the present disclosure may operate. Specifically, FIG. 1 illustrates an exemplary printer device 100 that generates and / or utilizes print position corrections according to the present disclosure. For example, the printer device 100 in some embodiments is configured to perform a printing operation based at least in part on the determined print position corrections as described herein to minimize or eliminate the effects of print position drift. As illustrated, the printer device 100 includes a sensor 102, a sensor ADC 104, a light source 106, a processor 108, a memory 112, a print correction circuit 114, and a printing mechanism 116. The printer device 100 further includes a platen roller 118 that manipulates at least a print medium 120. In this regard, it will be understood that the various components shown and described with respect to printer apparatus 100 manipulate print medium 120 and / or an associated roll of print medium that includes at least print medium 120 to print data onto a portion(s) of such print medium via print mechanism 116, and to output print media including such print data.
[0062] The sensor 102 includes hardware, software, firmware, and / or combinations thereof that aid in controlling the movement of the print media within the printer apparatus 100. In some embodiments, the sensor 102 embodies a label stop sensor, a black mark sensor, or other photoelectric sensor that aids in controlling the print media, such as by providing data indicative of detection of an edge, edge movement, or the like. The sensor 102 may detect gaps between printable portions of the print media (e.g., gaps between labels), black marks in continuous stock, slots in continuous stock, and the like. Alternatively or additionally, the sensor 102 may generate and / or capture data that is transmitted to a processor 108 specifically configured to perform such detection, based at least in part on data received from the sensor 102. In some embodiments, the sensor includes a sensor ADC 104 that embodies an analog-to-digital converter. The sensor ADC 104 may generate and / or output a digital signal representative of the data captured by the sensor 102. For example, the sensor 102 may detect and / or capture a light beam projected from the light source 106 as it passes through the print medium 120, such as during printing and / or retraction of the print medium during execution of a print job. The light source 106 may embody one or more LEDs, lasers, and / or devices that generate high power light in at least one direction. The sensor ADC 104 may output a digital representation of the light beam captured via the sensor 102.
[0063] The print medium 120 may include multiple printable portions onto which data is printed. In some embodiments, each printable portion embodies a label onto which data is printed via the printer device 100. In addition, the print medium 120 includes a gap between the trailing edge of a printable portion and the leading edge of the next printable portion. Such gaps and / or edges may be detectable via the sensor 102, as described herein.
[0064] The printing mechanism 116 is embodied in hardware, software, and / or firmware that facilitates printing data onto the print medium 120, feeding the print medium from the printer device 100, and / or tearing or removing one or more printable portions of the print medium 120. In some embodiments, the printing mechanism 116 includes components that are configured to enable tearing of the printable portion from the print medium 120 that has passed through the tear bar and / or peel the printable portion from the print medium 120. Additionally or alternatively, in some embodiments, the printing mechanism 116 includes a print head. The print head may be specially configured to enable printing of data onto the print medium 120. In some embodiments, the print head is controlled at least in part with instructions from the processor 108 or the like that cause the print head to print specific data at specific locations (e.g., dot lines) and / or at multiple locations along the print medium 120. In some embodiments, the print head is used to print specific data at specific locations on each printable portion of the print medium 120. In this regard, the print head may be activated based at least in part on instructions from the processor 108, for example, to print data at specific locations based at least in part on the print position corrections.
[0065] In some embodiments, the processor 108 (and / or a co-processor or any other processing circuitry that assists or is otherwise associated with the processor) may communicate with the memory 112 via a bus for passing information between components of the printer device 100. In some embodiments, for example, the memory 112 may be non-transitory and may include, for example, one or more volatile and / or non-volatile memories. In other words, for example, in some embodiments, the memory 112 includes or embodies an electronic storage device (e.g., a computer-readable storage medium). In some embodiments, the memory 112 is configured to store information, data, content, applications, instructions, etc. to enable the printer device 100 to perform various functions according to exemplary embodiments of the present disclosure.
[0066] The processor 108 may be embodied in a number of different ways. For example, in some exemplary embodiments, the processor 108 includes one or more processing devices configured to function independently. Additionally or alternatively, in some embodiments, the processor 108 includes one or more processors configured in tandem via a bus to enable independent execution of instructions, pipelines, and / or multi-threads. Use of the term "processor" or "processing circuitry" may be understood to include a single core processor, a multi-core processor, multiple processors internal to the printer apparatus 100, and / or one or more remote or "cloud" processors external to the printer apparatus 100.
[0067] In an exemplary embodiment, the processor 108 may be configured to execute instructions stored in the memory 112 or otherwise accessible to the processor. Alternatively or additionally, the processor 108 may be configured to execute hard-coded functions. Thus, whether configured by hardware or software methods, or a combination thereof, the processor 108 may represent an entity (e.g., physically embodied in a circuit) capable of performing operations according to embodiments of the present disclosure while configured accordingly. Alternatively or additionally, as another example in some exemplary embodiments, when the processor 108 is embodied as an execution body of software instructions, the instructions may specifically configure the processor 108 to perform algorithms embodied in specific operations described herein when such instructions are executed.
[0068] As a specific example, the processor 108 may be configured to perform various operations associated with controlling the printing process performed by the printer device 100. In some embodiments, the processor 108 may include hardware, software, firmware, and / or a combination thereof that controls and / or receives data from the operation of the sensor 102. Additionally or alternatively, in some embodiments, the processor 108 includes hardware, software, firmware, and / or combinations thereof that control the motor 110 to cause movement of the print medium 120 according to a media movement stage (e.g., during printing, during calibration, etc.). For example, in some embodiments, the motor 110 is actuatable to advance (e.g., feed) the platen roller 118 so that more of the print medium 120 is output. Additionally or alternatively, in some embodiments, the motor 110 is actuatable to reverse the platen roller 118 to retract the print medium 120. Additionally or alternatively, in some embodiments, the processor 108 includes hardware, software, firmware, and / or combinations thereof that control the activation of the light source 106 during one or more stages to generate a light beam that transmits through a print medium, such as the print medium 120 during printing. Additionally or alternatively, in some embodiments, the processor 108 includes hardware, software, firmware, and / or combinations thereof that control the print mechanism 116 to cause the print mechanism 116 to print on, output to, and / or otherwise engage or interact with the print medium 120. Additionally or alternatively, in some embodiments, the processor 108 includes hardware, software, firmware, and / or combinations thereof that interact with the sensor 102, for example, to receive as input data captured by the sensor 102, and generate print position corrections that correct for drift in the print position.
[0069] In some embodiments, the printer device 100 is configurable (e.g., via the processor 108) to utilize any of a myriad of user-provided print media such that the print medium is not predefined (e.g., in a "mixed mode") by the printer device 100. In some embodiments, the processor 108 operates using commands that are specific to a particular type of print medium and / or configuration(s) of the printer device 100.
[0070] The print correction circuit 114 includes hardware, software, firmware, and / or combinations thereof that support various functions associated with generating and / or utilizing print position corrections. The print position corrections offset certain drifts in the print position. In some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or combinations thereof that determine a first edge position distance during a media output stage and a second edge position distance during a media retract stage. Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or combinations thereof that generate the print position corrections based at least in part on the first edge position distance and the second edge position distance.
[0071] Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or a combination thereof that determines an output stage timestamp difference associated with a media output stage. Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or a combination thereof that determines a retract stage timestamp difference associated with a media retract stage. Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or a combination thereof that generates a print position correction based at least in part on the output stage timestamp difference and the retract stage timestamp difference.
[0072] Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or a combination thereof that initiates a print operation based at least in part on the print position correction. Additionally or alternatively, in some embodiments, the print correction circuit 114 includes hardware, software, firmware, and / or a combination thereof that performs a bounds check based at least in part on the print position correction. Includes a combination of.
[0073] It will be appreciated that in some embodiments, the printed correction circuit 114 may include a separate processor, a specially configured field programmable gate array (FPGA), or a specially programmed application specific integrated circuit (ASIC). Additionally or alternatively, in some embodiments, the printed correction circuit 114 is combined with one or more other circuit sets. For example, in some embodiments, the printed correction circuit 114 is combined with the processor 108 such that the two circuit sets are embodied in a single component. Similarly, in some embodiments, the printed correction circuit 114 is combined with the processor 108 to perform one or more of the operations described above with respect to the printed correction circuit 114.
[0074] 3 illustrates an example sensor output, in accordance with at least one example embodiment of the present disclosure. Specifically, FIG. 3 illustrates an example graph 300 of output from a sensor, such as sensor 102. In some embodiments, the illustrated values may represent analog values that are converted and / or output as digital values by a digital-to-analog converter associated with the corresponding sensor, such as the sensor ADC 104 associated with sensor 102.
[0075] Graph 300 represents the voltage output of a sensor, such as sensor 102, taken throughout a print job. When the job begins, the sensor is activated to detect, for example, the edges of printable portions of the print media (e.g., indicated by black marks), gaps between printable portions of the print media, etc. In this regard, as the print media in front of the sensor moves, the sensor output begins to change at different times as the print media moves. For example, at timestamp 302, the sensor is activated (e.g., while the printable portion is in front of the sensor) at a baseline value associated with the output from the sensor. For example, at timestamp 304, the sensor output begins to rise due to, for example, light reflecting off the trailing edge of the printable portion of the print media. The sensor output reaches a peak and then drops back to the baseline value until timestamp 306, based at least in part on light reflecting off the starting edge of, for example, the next printable portion.
[0076] In this regard, at the time between timestamp 302 and timestamp 304, the sensor output indicates that a particular printable portion of the print media is present in front of the sensor (e.g., a single label is passing the sensor). Further, at timestamp 304, the sensor output indicates that a trailing edge associated with the particular printable portion of the print media is present (e.g., the single label ends and subsequent data indicates a change in the print media in front of the sensor, indicating the beginning of a gap). Still further, at timestamp 306, the sensor output indicates that a leading edge associated with the next printable portion of the print media is present (e.g., the detected gap ends and the baseline value is again output).
[0077] In this regard, it should be appreciated that the sensor output may be processed to determine one or more events and / or timestamps at which such events occur. For example, an edge-detection event associated with a trailing edge of a current printable portion may be detected based at least in part on a change in the sensor output from a baseline value to another value. Additionally or alternatively, an edge-detection event associated with a leading edge of a new printable portion may be detected based at least in part on a change in the sensor output from a change value back to the baseline value. Additionally or alternatively, upon detection of an edge, an edge-detection event and / or an edge-movement event (e.g., indicative of edge movement) may be detected based at least in part on the sensor output at any given time. It should be appreciated that the timestamps at which particular events are detected may be identified, stored, and / or processed by the sensor itself and / or associated processing circuitry (e.g., a processor such as processor 108).
[0078] It should be understood that this sensor output pattern, and the like, may be repeated for any number of printable portions on the print media. In this regard, the sensor output may be repeated any number of times as the print media moves (e.g., is output or retracted) within the printer apparatus. Thus, the continuous sensor output may be utilized to detect how many printable portions have passed the sensor, how long it has been since a particular edge of the printable portion passed the sensor, and the like. Additionally, it should be understood that the timestamps associated with one or more detected events may be used alone and / or in addition to predetermined and / or known data values, such as the size of the label and / or the speed at which the printer moves the print media therein, to determine one or more distances traveled by an edge, multiple edges, and the like.
[0079] 1. Exemplary Visualization of Edge Location Distance Determination Having described exemplary systems and apparatus according to the present disclosure, we now discuss an exemplary visualization of the process(es) for edge location distance determination according to the present disclosure. The edge determination distance determination process(es) may be utilized for any of a myriad of purposes, for example, in generating print position corrections. In some embodiments, the edge location distance determination is performed by a specially configured printer, for example, printer apparatus 100. It will be understood that the illustrated distances are for illustrative purposes and are not limiting of the scope and spirit of the present disclosure.
[0080] FIG. 4 illustrates an exemplary visualization of edge location distance determination during a media output stage, according to at least some exemplary embodiments of the present disclosure. Specifically, the exemplary visualization illustrates a print medium 400 including a plurality of printable portions 410A-410G, each separated by a plurality of gaps 408. It will be appreciated that in some embodiments, each of the plurality of gaps 408 is the same size. The visualization further includes a location 402 where a sensor is located, a location 404 where a print head is located, and a location 406 where a tear bar is located. The print medium 400 may be maintained within a printer, embodied by, for example, the printer apparatus 100, that includes a printing mechanism at locations defined by locations 402, 404, and 406 to facilitate printing onto the print medium 400. Additionally or alternatively, in other embodiments, any number of printable portions may fall between the location of the sensor 402 and the location of the tear bar 406 that has not been used in a previous print job.
[0081] FIG. 4 may illustrate the locations of each of the printable portions 410A-410G at the end of a previous print job (e.g., a calibration print job or another previous print job). As illustrated, the printable portion 410G may be the last printable portion printed during the previous print job. In this regard, the printable portion 410G may extend beyond the tear bar at location 406 and be torn and / or otherwise removed from the print medium 400 upon completion of the print job. The remaining printable portions 110A-110F may be utilized to perform a subsequent print job involving one or more printable portions, for example, as described with respect to FIGS. 4 and 5. In this regard, the printer apparatus 100 may utilize at least print position corrections to print on each of the printable portions 410A-410F during the subsequent print job. In some such embodiments, the subsequent print job begins with a media retract phase, as illustrated and described with respect to FIG. 5.
[0082] During the media output stage, the printer apparatus 100 manipulates the print media 400 to move the print media 400 in an output direction 416. The print media 400 may be moved in the output direction 416 during the execution of a print job, for example, during printing of desired label data, calibration printing, etc. In this regard, the print media 400 is moved towards a tear bar location 406.
[0083] A sensor at location 402 tracks the location of the edge of a particular printable portion of print media 400. For example, the sensor at location 402 may be used to detect an edge of each of the print positions 410A-410G as each of the edges passes the sensor at location 402. In this regard, the sensor at location 402 may be used to track the location of each of the printable portions 410A-410G. For example, for any one of the printable portions 410A-410G, the sensor at location 402 may be used to detect a leading edge of the printable portion, the location of which may be tracked based on a timestamp interval that printing continues and a predetermined or determinable speed at which the print medium 400 is being output. The sensor at location 402 may similarly be used to detect and track a trailing edge of the printable portion, thereby defining a distance and / or area covered by the printable portion. It will be appreciated that the printer apparatus 100 may simultaneously track any number of printable portions of the print medium 400 and / or particular edges thereof.
[0084] In some embodiments, the sensor may be used to track the location of the leading edge of a particular printable portion of the print medium 400 closest to the sensor at location 402 upon completion of a print job. As shown, the sensor may be used to determine and / or track the location 412 of the last edge that passed the sensor at location 402, specifically the leading edge associated with the printable portion 410A that is closest to and has passed the sensor location 402. In some embodiments, the printer apparatus 100 utilizes the sensor at location 402 to determine location 412 by detecting a timestamp when the leading edge passed the sensor at location 402 and a timestamp when the print medium 400 stopped moving (e.g., the print job was completed). The difference between the timestamp when the leading edge at location 412 passed the sensor and the timestamp when the print medium 400 stopped moving may then be multiplied by a predetermined (e.g., static) or determinable velocity to determine how far the leading edge has moved in that time (e.g., the distance between the sensor location 412 and location 402). Alternatively or additionally, in some embodiments, the leading edge of printable portion 410A of print medium 400 may be determined at location 412 based at least in part on the known width of the respective printable portion and / or output from a sensor at location 402.
[0085] In some embodiments, the leading edge of the printable portion 410A indicated at location 412 is used to determine a first edge position distance 414 associated with the media output stage. For example, the leading edge of the printable portion 410A may be tracked to determine a first edge position distance 414 representing the distance between the print head location 412 and location 404. In this regard, the distance between the sensor location 412 and location 402 is determined and that distance is subtracted from a known target distance between the sensor at location 402 and the location of the print head 404. The known target distance between the sensor at location 402 and the location of the print head 404 may be statically maintained by the printer apparatus 100, e.g., maintained in a memory, maintained by a processor, etc., as a static value based at least in part on a calibration of the printer apparatus 100. In some embodiments, the timestamp of the last edge passing the sensor at location 402, or between detection of the last edge of a particular edge type, may be utilized along with a timestamp of when the print medium 400 stopped moving to determine location 412, the distance between location 412 and the sensor at location 402, and / or the distance between location 412 and the location of the print head 404. In some embodiments, the sensor at location 402 may be utilized to track several dot lines as the print medium 400 moves (e.g., by a motor attached to a platen roller that controls the movement of the print medium 400). Alternatively or additionally, in some embodiments, the sensor is used to determine a timestamp(s) of a particular event and generate a first edge position distance 414 based at least in part on such timestamp(s) and known data associated with the speed at which the print medium 400 moves, a predetermined force applied, or the like. It should be appreciated that in other embodiments, the trailing edge of a particular printable portion (e.g., printable portion 410A) is tracked for use in generating the first edge position distance 414.
[0086] FIG. 5 shows an example visualization of the determination of edge location distance during a media retraction phase, according to at least some example embodiments of the present disclosure. It will be understood that the media retraction phase can occur after and / or before the media output phase, as described herein with respect to FIG. 4. For example, in some embodiments, the media retraction phase begins with the start of a new print job following the completion of a previous print job. The previous print job can be a calibration print job or an actual print job with user input data for printing. As described herein, the printable portion 410G shown and described can be printed for removal from the print medium 400 during a previous print job. Thus, FIG. 5 is shown with the printable portion 410G removed.
[0087] In some embodiments, the printer apparatus 100 maintains the location of each of the remaining (e.g., not printed during a previous print job) printable portions. For example, in some embodiments, the printer apparatus 100 continues to track the location of each of the printable portions 410A-410F that were not printed during a previous print job as described with respect to FIG. 4. In some such embodiments, the printer apparatus 100 tracks each of the leading and / or trailing edges of each of the printable portions 410A-410F and maintains such locations in permanent or temporary storage for use in subsequent print jobs. It will be appreciated that the printer apparatus 100 may maintain (e.g., in the memory 112) the locations of the printable portions 410A-410F (and / or their edge(s)) throughout an idle period during which the printer apparatus 100 enters an idle state. Thus, the printer apparatus 100 may obtain such locations and utilize those locations to perform one or more decisions during a subsequent retraction phase, as shown and described with respect to FIG. 5, for example. For example, in some embodiments, the printer apparatus 100 may use such stored data representative of the stored locations to retract the printable portion 410F to a particular print position that approximately corresponds to the location of the print head 404 for printing. Additionally or alternatively, the printer apparatus 100 may use such stored data representative of the stored locations to determine the location 502 for use in generating the print position corrections.
[0088] During the media retraction stage, the printer apparatus 100 manipulates the print medium 400 to move the print medium 400 in a retraction direction 506. The printer medium 400 may move in the retraction direction 506 while the printer apparatus 100 is operating in the media retraction stage. For example, the printer apparatus 100 may remain in the media retraction stage to retract the print medium 400 in preparation for commencing a subsequent print job from a first printable portion of the print medium 400, such as printable portion 410G of the print medium 400. It will be understood that the retraction direction 506 may be opposite the output direction 416, as shown and described with respect to FIG.
[0089] The sensor at location 402 may be used to track the location of an edge of a particular printable portion of the print medium 400. In some embodiments, the sensor may be used to track the position of the same edge tracked during the corresponding media output stage. As illustrated, for example, the printer apparatus 100 tracks the location of a leading edge of the printable portion 410A of the print medium 400 as the print medium 400 is retracted. Alternatively or additionally, in some embodiments, the printer apparatus 100 tracks the location of an edge that is closest to the sensor at location 402 but has already passed the sensor to determine the second edge position distance 504. In some embodiments, the printer apparatus 100 tracks the location of an edge of a particular edge type (e.g., the closest leading edge or the closest trailing edge) that is closest to the sensor at location 402 but has already passed the sensor.
[0090] Location 502 may be subject to slippage that occurs during retraction of the print medium 400 and should therefore be corrected. In some embodiments, the printer device 100 The sensor at location 402 is utilized to detect a timestamp at which the first edge reaches the sensor location 402 at the beginning of the print. In this regard, the difference between this timestamp and the timestamp at which retraction began can be utilized to determine how far the edge has traveled from its original location (e.g., location 502) at the beginning of the retraction to reach the sensor at location 402. The printer apparatus 100 can utilize a predetermined (e.g., statically stored) print speed or a determinable print speed to determine the distance between location 502 and the sensor location 402. In some embodiments, the leading edge of the printable portion 410A can be determined at a particular location 502 based at least in part on any other data from the sensor at location 402, the known distance(s), and / or a combination thereof.
[0091] In the illustrated visualization, as shown, the leading edge of the printable portion 410A retracts to a particular location 502. A sensor at location 402 may track the leading edge as it retracts to location 502 during the media retraction phase. In some embodiments, the location 502 of the leading edge of the printable portion 410A is used to determine a second edge position distance 504 associated with the media retraction phase. For example, the leading edge of the printable portion 410A may be tracked to determine a second edge position distance 504 representing the distance between the print head location 404 and location 502. In some embodiments, the sensor at location 402 may be utilized to track several dot lines as the print medium 400 moves (e.g., by a motor attached to a platen roller that controls the movement of the print medium 400). Alternatively or additionally, in some embodiments, the sensor is used to determine a timestamp(s) of a particular event and generate the second edge position distance 504 based at least in part on such timestamp(s) and known data associated with the speed at which the print medium 400 is moved, a predetermined force applied, etc. It should be appreciated that in other embodiments, the trailing edge of a particular printable portion (e.g., printable portion 410A) is tracked for use in generating the second edge position distance 504.
[0092] In some embodiments, the printer apparatus 100 utilizes the edge position distance to generate a print position correction. In some embodiments, for example, a first edge position distance associated with the media output stage and a second edge position distance associated with the media retract stage are processed utilizing a determined algorithm to generate a print position correction. One non-limiting exemplary algorithm includes subtracting the second edge position distance associated with the media retract stage from the first edge position distance associated with the media output stage to generate a differential edge position, and dividing the differential edge position by a certain divisor (e.g., divisor 2).
[0093] The determined print position correction may then be utilized to offset the print position of one or more printable portions of the print medium 400. In some embodiments, the print position correction is utilized to initiate printing on each printable portion that has already passed the sensor but was not utilized in completing a previous print job. For example, in some embodiments, the printer apparatus 100 may utilize the print position correction to initiate printing at a specific position of each of the printable portions 410F, 410E, 410D, 410C, 410B, and 410A when they are printed in a subsequent print job. For example, the printer apparatus 100 may retract the print medium 400 sufficiently so that the printable portion 410F reaches the location of the print head 404 based at least in part on the previously stored location(s) of the printable portion 410F (or its edge). The printer apparatus 100 may then initiate printing data to the printable (pintable) position 410F at a default print position offset by the print position correction. The default print position may be offset by a print position correction for at least the remaining printable positions 410E, 410D, 410C, 410B, and 410A, and in other embodiments, may be utilized for each of the printable positions to be printed in a particular subsequent print job.
[0094] Exemplary Processes Using Edge Location Distances of the Present Disclosure Having described exemplary systems, apparatus, and visualizations for determining edge location distance according to the present disclosure, a process using edge location distance will now be discussed. For example, an exemplary process for utilizing edge location distance to generate print position corrections, as well as additional and / or alternative operations associated therewith, will be further discussed. It will be understood that each of the flow diagrams illustrates an exemplary computer-implemented process that may be performed by, e.g., using one or more of the components thereof, of one or more of the apparatuses, systems, devices, and / or computer program products described herein. The illustrated blocks illustrate operations of the respective processes. Such operations may be in any of a number of ways, including, but not limited to, in the order and manner as illustrated and described herein. In some embodiments, one or more blocks of any of the processes described herein occur during, before, in parallel with, and / or as a sub-process of a second process. Additionally or alternatively, any of the processes may include some or all of the operation steps described and / or illustrated, including one or more optional blocks in some embodiments. With respect to the flow diagrams presented herein, one or more of the illustrated blocks may be optional in some or all embodiments of the present disclosure. Optional blocks are indicated with dashed (or "dashed") lines. Similarly, it should be understood that one or more of the operations of each flow chart may be combined, interchanged, and / or otherwise modified as described herein.
[0095] FIG. 6 illustrates a flow diagram showing an example operation of an example process for generating and / or utilizing print position corrections based at least in part on one or more determined edge position distances, according to at least some example embodiments of the present disclosure. Specifically, FIG. 6 illustrates the operation of an example process 600. In some embodiments, the example process 600 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as illustrated and described. Alternatively or additionally, in some embodiments, the process 600 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as illustrated and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible to the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 600 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular label printer.
[0096] Process 600 begins at operation 602. In operation 602, the printer apparatus 100 includes means, such as the sensor 102, print compensation circuit 114, motor 110, light source 106, print mechanism 116, processor 108, etc., or combinations thereof, for determining, via a sensor, a first edge position distance between the first edge and the print head. The first edge position distance may be determined during the media output stage, for example, based at least in part on a determined location of the first edge that is tracked as the first edge moves during the media output stage. In some embodiments, the location of the first edge is determined based on one or more timestamps, such as a timestamp at which the edge is detected by the sensor, a timestamp at which a stage begins and / or ends, etc. The first edge position distance is determined at least in part based on the location of the print head. In some embodiments, the location of the print head is stored and / or otherwise known by the printer apparatus 100 for use in determining the first edge position distance. As described herein, the printer apparatus 100 may utilize stored locations of one or more edges, printable locations, etc., from a previous print job to determine the first edge position distance. Alternatively or additionally, in some embodiments, the printer apparatus 100 obtains a stored first edge position distance during and / or upon completion of a previous print job. For example, one non-limiting exemplary algorithm for determining the first edge position distance based on the location of the first edge during the media output stage is described herein with respect to FIG.
[0097] In operation 604, the printer apparatus 100 includes means, such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for determining a first edge position distance between the second edge and the print head via the sensor. The second edge position distance may be determined during the media retraction phase. For example, the first edge position distance may be determined based at least in part on a determined location of the first edge that is tracked as the first edge is moved during the media retraction phase. It will be understood that the location of the print head may be known to the sensor of the printer apparatus 100 and / or determined via the sensor of the printer apparatus 100, as described. It will be understood that in some embodiments, the media retraction phase and the media output phase described with respect to operation 602 are part of different print jobs, for example, the first edge position distance is determined for a previous print job corresponding to the media output phase, and the media retraction phase initiates a subsequent print job. For example, one non-limiting exemplary algorithm for determining the first edge position distance based on the location of the second edge during the media retraction phase is determined herein with respect to FIG.
[0098] In operation 606, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for generating a print position correction based at least in part on the first edge position distance and the second edge position distance. The print position correction represents an offset applied to a determined position where printing begins for one or more printable portions of the print medium. In some embodiments, the print position correction represents a value based on the difference between the first edge position distance and the second edge position distance. In this regard, the print position correction may represent a particular offset of the print position drift that occurs during the output and / or retraction of the print medium. For example, one non-limiting exemplary algorithm for generating a print position correction based at least in part on the first edge position distance and the second edge position distance is determined herein with respect to FIG. 7.
[0099] At optional operation 608, the printer apparatus 100 includes means, such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for performing a bounds check based at least in part on the print position correction. In some embodiments, the bounds check embodies one or more algorithms that compare the print position correction to a maximum acceptable threshold. In this regard, the printer apparatus 100 may initiate the bounds check by comparing the print position correction to a maximum allowable correction. If the printer apparatus 100 determines that the print position correction exceeds the maximum allowable correction, the printer apparatus 100 may adjust the print position correction to be equal to the maximum allowable correction. Alternatively or additionally, in some embodiments, the printer apparatus 100 compares the print position correction to a range of allowable correction values to determine whether the print position correction is within range. If the print position correction is not within range, the print position correction may be adjusted to the closer maximum and / or minimum correction of the range, rejected and retried, or used to generate an error to the operator of the printer device 100.
[0100] In some other embodiments, the printer device 100 may include at least one The bounds check determines whether the new print position adjusted based on the partial correction is above a minimum threshold range from one or more edges of the printable portion of the print medium. Alternatively or additionally, in some embodiments, the bounds check determines whether the new print position adjusted based on the print position correction to correct the print position drift is within an acceptable threshold range of correction. In some situations where the printer apparatus 100 determines that the bounds check is not satisfied, the printer apparatus 100 resumes the print job and / or indicates one or more actions to be taken to reduce the print position drift (e.g., notification to replace the print medium with a new roll of print medium, modify the print job, etc.).
[0101] In optional operation 610, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, to start a printing operation based at least in part on the print position correction. In some embodiments, the printer device 100 starts a printing operation based at least in part on the print position correction such that the data starts to be printed from a specific position offset from a default or other print position based at least in part on the print position correction. For example, the print position correction may indicate a number of dot lines before or after a default print position (default dot line) where printing starts. In this regard, the printer device 100 may start printing on any number of printable portions of the print medium based at least in part on the print position correction to print data at a specific location that takes into account the drift of the print position. In some embodiments, the printer device 100 uses at least the print position correction to adjust the print position used to print on each printable position that has already passed in whole or in part the sensor of the printer device 100 before the start of the media retraction phase.
[0102] FIG. 7 illustrates a flow diagram showing an example operation of an example process for generating a print position correction based at least in part on a print position correction and a divisor, according to at least some example embodiments of the present disclosure. Specifically, FIG. 7 illustrates the operation of an example process 700. In some embodiments, the process 700 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as illustrated and described. Alternatively or additionally, in some embodiments, the process 700 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as illustrated and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 700 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular printer.
[0103] Process 700 begins with operation 702. In some embodiments, process 700 begins after one or more operations illustrated and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 700 begins after performance of operation 604 as illustrated and described with respect to process 600. In this regard, some or all of process 700 may replace or supplement one or more blocks illustrated and / or described with respect to any of the other processes described herein, such as operation 606 illustrated and described with respect to process 600. Upon completion of process 700, the flow of operations may end. Additionally or alternatively, as shown, upon completion of process 700, flow may return to one or more operations of another process, such as operation 608 as shown and described with respect to process 600. It should be appreciated that in some embodiments, process 700 embodies a sub-process of one or more other processes, such as process 600.
[0104] At operation 702, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for generating a differential edge position distance. In some embodiments, the differential edge position distance represents a difference between a first edge position distance determined during a first media movement stage (e.g., a media output stage) and a second edge position distance determined during a second media movement stage (e.g., a media retract stage). For example, in some embodiments, the differential edge position distance is generated by subtracting the second edge position distance from the first edge position distance. In this regard, the differential edge position distance represents a difference in distances determined based on the position of a particular edge during each of the media output stage and the media retract stage.
[0105] In operation 704, the printer apparatus 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for generating a print position correction by dividing the differential edge position distance by a divisor. In some embodiments, the divisor is predetermined. For example, in one exemplary embodiment, the printer apparatus 100 is configured to divide the differential edge position distance using a divisor of 2. The divisor of 2 can be used to determine a correction between the positions of the edges affected by the print position drift in each of the media output stage and the media retract stage. Alternatively or additionally, in some embodiments, the divisor is determined at least in part based on the first edge position distance, the second edge position distance, and / or other data values determined from the operation of the printer apparatus 100.
[0106] FIG. 8 illustrates a flow diagram illustrating an example operation of an example process for determining an edge location distance based on a tracked distance traveled during a media movement phase, according to at least some example embodiments of the present disclosure. Specifically, FIG. 8 illustrates the operation of an example process 800. In some embodiments, the process 800 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as illustrated and described. Alternatively or additionally, in some embodiments, the process 800 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as illustrated and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible to the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 800 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular printer.
[0107] Process 800 begins with operation 802. In some embodiments, process 800 begins after one or more operations shown and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 800 begins after the performance of operation 602 as shown and described with respect to process 600. 8. In this regard, some or all of process 800 may replace or supplement one or more blocks illustrated and / or described with respect to any of the other processes described herein, such as operations 602 and / or 604 as illustrated and described with respect to process 600. Upon completion of process 800, the flow of operations may end. Additionally or alternatively, as illustrated, upon completion of process 800, the flow may return to one or more operations of another process, such as operations 604 and / or 606 as illustrated and described with respect to process 600. It should be understood that in some embodiments, process 800 embodies a sub-process of one or more other processes, such as process 600.
[0108] At operation 802, the printer apparatus 100 includes means such as the sensor 102, print compensation circuit 114, motor 110, light source 106, print mechanism 116, processor 108, etc., or combinations thereof, for detecting, via a sensor, a first edge associated with a first edge type of at least a printable portion of a print medium. For example, the sensor output may be processed to detect an edge detection event indicating the presence of a particular edge and / or a particular edge type. For example, sensor data at a particular timestamp and / or previous sensor data output by the sensor may be processed to detect a particular edge and / or determine whether the particular edge is a particular edge type (e.g., a leading edge or a trailing edge). In this regard, a leading edge may be indicated by varying sensor data followed by a timestamp or range of timestamps corresponding to a particular baseline value, and / or a trailing edge may be indicated by a particular baseline value followed by varying sensor data. In some embodiments, the printer apparatus 100 detects a particular first edge, e.g., a first edge associated with a location closest to the sensor during the media output stage. Alternatively or additionally, in some embodiments, the printer apparatus 100 iterates over the particular first edge associated with each printable portion of the multiple printable portions of the print medium, e.g., to determine a print position correction associated with each printable portion of the multiple printable portions.
[0109] In operation 804, the printer apparatus 100 includes means, such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for tracking a distance traveled by the first edge when a predetermined force is applied to the print medium during a media movement stage. In some embodiments, the predetermined force is applied to move the print medium in a particular direction based on the media movement stage. For example, in some embodiments, the predetermined force advances the print medium for output, printing, and / or feeding, such as during a media movement stage embodying a media output stage. In some embodiments, the predetermined force advances the print medium for retraction, such as during a media movement stage embodying a media retraction stage. As described herein, the predetermined force may move the print medium at different speeds based on slippage of the print medium, thereby resulting in print position drift. In some embodiments, the printer apparatus 100 tracks a distance traveled by the first edge based on movement detected based on sensor data from the sensor.
[0110] In operation 806, the printer device 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for determining a first edge position distance based at least in part on the tracked distance traveled by the first edge during the media movement phase. In some embodiments, for example, the printer device 100 determines the first edge position distance corresponding to the tracked distance traveled by the first edge until it reaches a particular target location. In one exemplary situation, the printer device 100 determines the first edge position distance based on the tracked movement of the first edge to a location associated with a print head of the printer device 100.
[0111] FIG. 9 illustrates a method for implementing print position correction in accordance with at least some example embodiments of the present disclosure. 9 shows a flow diagram illustrating an exemplary operation of an exemplary process for setting. Specifically, FIG. 9 illustrates the operation of an exemplary process 900. In some embodiments, the process 900 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as shown and described. Alternatively or additionally, in some embodiments, the process 900 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as shown and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatuses, systems, devices, etc. to perform one or more of the operations as shown and described. For ease of explanation, the process 900 is described in terms of a printer device 100, for example, as being performed by the printer device 100 embodying a particular printer.
[0112] Process 900 begins with operation 902. In some embodiments, process 900 begins after one or more operations shown and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 900 begins after performance of operation 606 as shown and described with respect to process 600. In this regard, some or all of process 900 may replace or supplement one or more blocks shown and / or described with respect to any of the other processes described herein, such as operation 904 as shown and described with respect to process 600. Upon completion of process 900, the flow of operations may end. Additionally or alternatively, as shown, upon completion of process 900, the flow may return to one or more operations of another process, such as operation 608 as shown and described with respect to process 600. It should be understood that in some embodiments, process 900 embodies a sub-process of one or more other processes, such as process 600.
[0113] In operation 902, the printer device 100 includes a means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for detecting the occurrence of an idle state. In some embodiments, the printer device 100 maintains a timestamp associated with each print job previously started and / or completed. The printer device 100 may further maintain or otherwise be associated with a certain maximum timestamp threshold before the printer device 100 initiates an idle state. In this regard, the printer device 100 may determine data representing the time since the stored timestamp when the previous print job was completed. In addition, the printer device 100 may compare the time since the stored timestamp with the maximum timestamp threshold to detect the occurrence of an idle state when a new print job has not been initiated within the time represented by the maximum timestamp threshold.
[0114] At operation 904, the printer device 100 includes means, such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for resetting the print position correction in response to detecting the occurrence of an idle state. In this regard, the print position correction may be regenerated upon the next start-up of the printer device 100 and / or the beginning of a new print job. Alternatively, in some embodiments where an idle state is initiated upon the completion of each print job, the print position correction may be reset after each print job to maximize the likelihood that the print position correction will remain correct for subsequent prints. is regenerated for the print job.
[0115] Example visualization of determining the difference in stage timestamps Having described systems, devices, visualizations for edge location distance determination, and flow diagrams for print position correction based at least in part on edge distance determination, according to the present disclosure, an exemplary visualization of phase time stamp differences according to the present disclosure will now be discussed. The phase time stamp difference determination process(es) may be utilized for any of a myriad of purposes, for example, in generating print position corrections. In some embodiments, the phase time stamp difference determination is performed by a specially configured printer, for example, printer device 100. It will be understood that the illustrated distances are for illustrative purposes and are not intended to limit the scope and spirit of the present disclosure.
[0116] FIG. 10 illustrates an exemplary visualization of the determination of stage timestamp differences during a media output stage, according to at least some exemplary embodiments of the present disclosure. Specifically, the exemplary visualization illustrates a print medium 400 including a plurality of printable portions 410A-410G, each separated by a plurality of gaps 408. The visualization further includes a location 1006 where a sensor (such as a label stop sensor) is located, a location 404 where a print head is located, and a location 406 where a tear bar is located. The print medium 400 may be maintained within a printer, embodied, for example, by a printer device 100, that includes a printing mechanism at locations defined by locations 1006, 404, and 406 to facilitate printing onto the print medium 400. In this regard, it will be understood that the components illustrated and described with respect to FIG. 11 perform functions as similarly described with respect to FIG. 4.
[0117] FIG. 10 may illustrate the positions of each of the printable portions 410A-410G at the end of a previous print job (e.g., a calibration print job or another previous print job). As illustrated, the printable portion 410G may be the last printable portion printed during the previous print job. In this regard, the printable portion 410G may extend beyond the tear bar at location 406 and be torn and / or otherwise removed from the print medium 400 upon completion of the print job. The remaining printable portions 110A-110F may be utilized to perform a subsequent print job involving one or more printable portions, for example, as described with respect to FIGS. 10 and 11. In this regard, the printer apparatus 100 may utilize at least print position corrections to print on each of the printable portions 410A-410F during the subsequent print job. In some such embodiments, the subsequent print job begins with a media retract phase, as illustrated and described with respect to FIG. 11.
[0118] In some embodiments, the sensor located at location 1006 embodies a label stop sensor. The label stop sensor may be configured to detect a particular event (e.g., the presence of an edge, the beginning and end of a printable portion such as a label, etc.) and / or detect a timestamp associated with such detection. In this regard, the timestamp may be utilized alone or in combination with one or more other pieces of data (e.g., a known or determined speed at which the print medium is output through the printer apparatus 100) to determine a distance traveled by the print medium. For example, the label stop sensor at location 1006 may be used to detect each or at least one edge of the printable portions 410A-410G. In some embodiments, the label stop sensor at location 1006 is used to detect each edge or each edge of a particular edge type (e.g., a leading edge or a trailing edge) that passes the label stop sensor at location 1006. For any one of the printable portions 410A-410G, the label stop sensor at location 1006 may be used to detect the leading edge of the printable portion, and the location of this leading edge may be tracked as output continues. It will be appreciated that the printer apparatus 100 may simultaneously track any number of printable portions of the print medium 400 and / or particular edges thereof.
[0119] As shown, the label stop sensor at location 1006 determines a timestamp associated with a particular defined distance (e.g., one printable portion and one gap). In some embodiments, the label stop sensor detects a first edge associated with a first printable portion of the print medium 400, such as printable portion 410B, as shown. The first edge may embody a leading edge associated with printable portion 410B and may be initially detected based on a direction of movement of the print medium 400 during a particular media movement stage, such as output direction 416. Additionally, the label stop sensor detects a second edge associated with a second printable portion of the print medium 400. The second edge may embody a trailing edge associated with a subsequent printable portion on the print medium 400, such as printable portion 410A as shown. The label stop sensor may detect the second edge after the first edge is detected.
[0120] In some embodiments, the label stop sensor at location 1006 is used to track each of the printable portions 410A-410G and / or their edges. For example, the distance an edge has traveled in the output direction 416 from the label stop sensor at location 1006 may be determined based at least in part on a timestamp at which the edge was detected and a known or otherwise determinable print speed associated with the printer apparatus 100. In this regard, the label stop sensor at location 1016 may be used to detect edges that define the boundaries of each of the printable portions 410A-410G and / or track such edges as they travel in the output direction 416. It will be appreciated that similar to what is described with respect to Figures 4 and 5, the printer apparatus 100 may store in memory, storage device, etc., the location of each of the detected edges (or at least edges of a particular type), or at least equivalent data that can be used to recreate that location, to enable retrieval of such locations during subsequent print jobs and / or media movement stages, as described with respect to Figure 11, for example.
[0121] The label stop sensors may store a timestamp associated with the detection of each associated edge. For example, in some embodiments, the label stop sensor at location 1006 detects a leading edge starting at 1002B of the printable portion 410B and stores a timestamp representing the time the leading edge starting at 1002B of the printable portion 410B is detected. Additionally, in some embodiments, the label stop sensor at location 1006 detects a leading edge starting at 1002A of the printable portion 410A and stores a timestamp representing the time the leading edge starting at 1002A of the printable portion 410A is detected. It will be appreciated that, as described herein, the second edge (e.g., the leading edge starting at 1002A of the printable portion 410A) may be detected based on first detecting a gap between the printable portions, e.g., one of the gaps 408, after detecting the leading edge and / or the trailing edge starting at 1002B of the printable portion 410B.
[0122] It will be appreciated that in other embodiments, other edge types may be detected and used. For example, in some embodiments, a label stop sensor is used to detect the trailing edge of a printable portion of print medium 400 and the trailing edge of a subsequent printable portion of print medium 400. In this regard, the particular edges shown in FIG. 10 are not intended to limit the scope and / or spirit of the present disclosure.
[0123] The timestamps associated with the detection of the first leading edge starting at 1002B and the second leading edge starting at 1002A may be utilized to determine an output stage timestamp differential 1004. The output stage timestamp differential 1004 may represent a time difference between the detection of the first leading edge starting at 1002B and the detection of the second leading edge starting at 1002A during the media output stage. In this regard, the printer apparatus 100 may utilize a timestamp-based distance value and / or associated therewith, as described herein. Output stage timestamp differences 1004 may be detected and stored for further processing, such as to determine print position corrections.
[0124] FIG. 11 illustrates an exemplary visualization of the determination of the difference in stage timestamps during the media retraction stage, according to at least some exemplary embodiments of the present disclosure. It will be understood that the media retraction stage can occur after and / or before the media output stage, as described with respect to FIG. 10. For example, in some embodiments, the media retraction stage begins with the start of a new print job following the completion of a previous print job, such as upon completion of the operations described with respect to FIG. 10. The previous print job can be a calibration print job or an actual print job with user input data for printing. As described herein, the printable portion 410G shown and described can be printed for removal from the print medium 400 during a previous print job. Thus, FIG. 11 is illustrated with the printable portion 410G removed.
[0125] In some embodiments, the printer apparatus 100 maintains the location of each of the remaining (e.g., not printed during a previous print job) printable portions. For example, in some embodiments, the printer apparatus 100 continues to track the location of each of the printable portions 410A-410F that are not printed during the print job described with respect to FIG. 10. In some such embodiments, the printer apparatus 100 tracks each of the leading and / or trailing edges of each of the printable portions 410A-410F and maintains such locations in permanent or temporary storage for retrieval and use during a subsequent print job. It will be appreciated that the printer apparatus 100 may maintain (e.g., in the memory 112) the locations of the printable portions 410A-410F (and / or their edge(s)) throughout an idle period during which the printer apparatus 100 enters an idle state. Thus, the printer apparatus 100 may obtain such locations and utilize those locations to implement one or more decisions during a subsequent retraction phase, for example as shown and described with respect to FIG. 10. For example, in some embodiments, the apparatus 100 utilizes such stored data representing the stored locations to retract the printable portion 410F to a particular printing position that approximately corresponds to the location of the print head 404 for printing. Additionally or alternatively, the printer apparatus 100 may utilize such stored data representing the stored locations to determine the locations 1002B and / or 1002A for use in generating the print position corrections.
[0126] During the media retraction stage, the printer apparatus 100 manipulates the print medium 400 to move the print medium 400 in a retraction direction 506. The printer medium 400 may move in the retraction direction 506 while the printer apparatus 100 is operating in the media retraction stage. For example, the printer apparatus 100 may remain in the media retraction stage to retract the print medium 400 in preparation for commencing a subsequent print job from a first printable portion of the print medium 400, such as printable portion 410F of the print medium 400. It will be understood that the retraction direction 506 may be opposite the output direction 416, as shown and described with respect to FIG.
[0127] The label stop sensor at location 1016 may be used to determine a timestamp associated with another particular reference distance (e.g., one printable portion and one gap) while the print medium 400 is moving in the back direction 506 during the media back phase. In some embodiments, the label stop sensor at location 1006 detects a first edge associated with a first printable portion based on the back direction 506. For example, the label stop sensor at location 1016 may detect a first edge associated with a first printable portion of the print medium 400, such as printable portion 410A, as shown. The first edge starting at location 1102A may embody a trailing edge associated with printable portion 410A and may be initially detected based on the direction of movement of the print medium 400 during a particular media movement phase, such as the back direction 506. Additionally, the label stop sensor detects a second edge associated with a second printable portion of the print medium 400. The second edge may in turn be detected by a second printable portion of the print medium 400 that is next in line to the printable portion on the print medium 400. For example, the trailing edge may embody a trailing edge starting at location 1102B associated with printable portion 410B as shown. The label stop sensor may detect the second edge after the first edge is detected.
[0128] The label stop sensors may store a timestamp associated with the detection of each associated edge. For example, in some embodiments, the label stop sensor at location 1006 detects a trailing edge starting from location 1102A of the printable portion 410A and stores a timestamp representing the time the trailing edge starting from location 1102A is detected. Additionally, in some embodiments, the label stop sensor at location 1006 detects a trailing edge starting from location 1102B of the printable portion 410B and stores a timestamp representing the time the trailing edge starting from location 1102B of the printable portion 410B is detected. It will be appreciated that, as described herein, the second edge (e.g., the trailing edge of the printable portion 410B) may be detected based on first detecting a gap between the printable portions, e.g., one of the gaps 408, after detecting a trailing edge and / or a leading edge starting from location 1102A of the printable portion 410A.
[0129] Additionally or alternatively, in some embodiments, the printer apparatus 100 determines the locations 1102A and / or 1102B based at least in part on a timestamp at which the retraction starts and a timestamp at which a first edge of a particular edge type is detected (e.g., corresponding to location 1102A) and a timestamp at which a second edge of a particular edge type is detected (e.g., corresponding to location 1102B). The printer apparatus 100 may utilize such timestamps along with stored locations and / or distances from previous print jobs, for example, as described with respect to FIG. 10. For example, in some embodiments, the label stop sensor at location 1016 detects the closest leading edge detected timestamp (e.g., the leading edge of the printable portion 410A). The printer apparatus 100 may determine the difference between the timestamp at which the retraction starts and the timestamp at which the leading edge associated with the printable portion 410A was detected, which may indicate how far the edge has traveled to reach the label stop sensor at location 1016. The printer device 100 may then determine the location 1102A by multiplying the difference between the two timestamps by a print speed known to the printer device 100 (e.g., stored in memory 112) or otherwise determinable by the printer device 100. The printer device 100 may similarly detect the timestamp at which the leading edge of the printable portion 410B was detected, determine the difference between this timestamp and the timestamp at which retraction began, and multiply by the speed to determine the location 1102B at which the leading edge of the printable portion 410B began. It will be appreciated that due to slippage, the locations 1102A and / or 1102B may represent different distances from the label stop sensor location 1016 than those shown and described with respect to FIG.
[0130] It will be appreciated that in other embodiments, other edge types may be detected and used. For example, in some embodiments, a label stop sensor is used to detect the leading edge of each printable portion of print media 400 based on a particular direction of motion and / or corresponding stage of media motion. In this regard, the particular edges shown in FIG. 11 are not intended to limit the scope and / or spirit of the present disclosure.
[0131] The timestamps associated with the detection of the first trailing edge starting at location 1102A and the second trailing edge starting at location 1102B may be utilized to determine a second media movement phase timestamp differential, such as retract phase timestamp differential 1104. The retract phase timestamp differential 1104 may represent the time difference between the detection of the first trailing edge starting at 1102A and the detection of the second trailing edge starting at 1102B during the media retract phase. In this regard, the printer apparatus 100 may use the timestamps to determine the timestamp-based distance values and / or associated print position corrections, as described herein. A reversal phase timestamp difference 1104 may be detected and stored for further processing, such as:
[0132] In some embodiments, the printer device 100 uses the media movement phase timestamp difference to generate a print position correction. In some embodiments, for example, the output phase timestamp difference associated with the media output phase and the retract phase timestamp difference associated with the media retract phase are processed using a determined algorithm to generate a print position correction. One non-limiting exemplary algorithm includes subtracting the retract phase timestamp difference associated with the media retract phase from the output phase timestamp difference associated with the media output phase to generate a timestamp-based distance value, and multiplying the timestamp-based distance value by a printing speed (e.g., a known or determined speed at which the print medium 400 is moving). The determined print position correction can then be used to offset the print position of one or more printable portions of the print medium 400.
[0133] In some embodiments, the printer device 100 performs the operations described with respect to FIG. 10 and / or FIG. 11 multiple times for one or more media movement stages. For example, in some embodiments, the printer device 100 uses a first reference print medium to calibrate the difference in the reference media movement stage time stamp of a particular moving medium stage. In some non-limiting example situations, the printer device 100 generates the difference in the media movement stage time stamp by performing the operations described using a free-hanging medium. The difference in the reference media movement stage time stamp may be stored as a calibration standard associated with the corresponding media movement stage. The printer device 100 may then store some or all of the differences in the media movement stage time stamp during the operation of a particular media movement stage (e.g., the respective durations for moving one printable portion and one gap of a print medium such as one label). It will be understood that other reference distances may be used in other embodiments.
[0134] In some embodiments, the difference between the stored media movement phase timestamps and the difference between the reference media movement phase timestamps may then be utilized to generate a print position correction. The print position correction may represent a time difference used to offset the start of printing during a print job. In this regard, a print position correction that defines a time offset may serve as a substitute for a distance offset that takes into account slippage of the printed print media.
[0135] For example, in some embodiments, the printer device 100 compares the difference in the reference media movement stage time stamp corresponding to the particular media movement stage in which the printer device 100 is operating with the difference in the media movement stage time stamp associated with the operation of the same print medium not free-hanging during the same media movement stage. In one exemplary environment, the printer device 100 calibrates the reference movement timing that embodies the difference in the output stage time stamp to move a particular reference distance (e.g., one label and one gap embodying a printable portion of the print medium) during the media output stage using the free-hanging medium. The printer device 100 then stores all the durations when moving the same medium during printing. If the difference in the media movement stage time stamp during operation in a particular media movement stage exceeds the difference in the reference media movement stage time stamp corresponding to the same media movement stage, the printer device 100 may generate a print position correction to correct the slippage that causes the time difference. The print position correction may embody a time difference (e.g., due to the output media stage) that is applied when determining when to start printing as the print medium moves. For example, in an exemplary situation where "X" is defined as the difference in a particular media movement stage timestamp corresponding to the operation of the printer device 100 at a particular media movement stage, and "Y" is defined as the difference in a reference media movement timestamp corresponding to the particular media movement stage, the printer device 100 may determine whether X>Y. If X>Y, the printer device 100 may, for example, perform a print position correction. Positive = (XY) / Y * The print position correction described herein may be generated based on a 100% time percentage algorithm. It will be understood that other algorithms, such as those described herein, may be used as well. In some such embodiments, the print position correction incorporates a forward movement time difference that is applied only during the media output stage that incorporates the printing operation.
[0136] Media Movement Phase Timestamp Differences of the Present Disclosure Example process using Having described an exemplary system, apparatus, visualization for edge location distance determination, a process of printer position correction based at least in part on edge distance determination, and visualization of phase timestamp difference determination according to the present disclosure, an exemplary process using the phase timestamp difference determination will now be discussed. For example, an exemplary process for generating print position correction utilizing media movement phase timestamp difference, and additional and / or alternative operations associated therewith will be further discussed. It will be understood that each of the flow diagrams illustrates an exemplary computer-implemented process that may be performed by, e.g., using one or more of its components, one or more of the apparatuses, systems, devices, and / or computer program products described herein. The illustrated blocks illustrate operations of the respective processes. Such operations may be in any of a number of ways, including, but not limited to, in the order and manner as illustrated and described herein. In some embodiments, one or more blocks of any of the processes described herein occur during one or more blocks of another process, before one or more blocks of another process, in parallel with one or more blocks of another process, and / or as a sub-process of a second process. Additionally or alternatively, any of the processes may include some or all of the operation steps described and / or illustrated, including one or more optional blocks in some embodiments. With respect to the flow diagrams shown herein, one or more of the illustrated blocks may be optional in some or all embodiments of the present disclosure. Optional blocks are shown with dashed lines (or "dashed lines"). Similarly, it should be understood that one or more of the operations of each flow chart may be combined, interchanged, and / or otherwise modified as described herein.
[0137] FIG. 12 illustrates a flow diagram showing an example operation of an example process for generating and / or utilizing print position corrections based at least in part on one or more determined phase timestamp differences, according to at least some example embodiments of the present disclosure. Specifically, FIG. 12 illustrates the operation of an example process 1200. In some embodiments, the example process 1200 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as illustrated and described. Alternatively or additionally, in some embodiments, the process 1200 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, and / or the like. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as illustrated and described thereon by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, and / or the like to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 1200 is described in terms of the printer apparatus 100 as being performed by the printer apparatus 100, e.g., embodying a particular label printer.
[0138] The process 1200 starts at operation 1202. In operation 1202, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for detecting a difference in output stage timestamps during the media output stage via the sensor. The difference in output stage timestamps is based at least in part on a first edge associated with the first printable portion of the print medium. The difference in output stage timestamps is further based at least in part on a second edge associated with the second printable portion of the print medium. In some embodiments, the first edge and the second edge are of the same edge type. Additionally or alternatively, in some embodiments, the second printable portion of the print medium follows the first printable portion of the print medium based at least in part on an output direction corresponding to the media output stage. In some embodiments, the difference in output stage timestamps is determined based on a difference between a timestamp associated with the detection of the first edge and a second timestamp associated with the detection of the second edge. A non-limiting exemplary process for determining the output stage timestamp difference is described herein with respect to FIGS.
[0139] In operation 1204, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for detecting a difference in the retraction phase timestamp during the media retraction phase via the sensor. The difference in the retraction phase timestamp is based at least in part on a third edge associated with a third printable portion of the print medium. The difference in the retraction phase timestamp is further based at least in part on a fourth edge associated with a fourth printable portion of the print medium. In some embodiments, the first printable portion and the second printable portion as described with respect to operation 1202 correspond to the third printable portion and the fourth printable portion, such that edges of the same printable portion are utilized to determine the difference in the output phase timestamp and the difference in the retraction phase timestamp. Additionally or alternatively, in some embodiments, the same edge of the same printable portion is processed for each media movement phase. In yet some other embodiments, opposite edges of the same printable portion of the same media are processed such that edges of the same type are processed to account for changes in movement direction. A non-limiting exemplary process for determining the retraction phase timestamp difference is described herein with respect to Figures 13 and 14.
[0140] In operation 1206, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for generating a print position correction. In some embodiments, the printer device 100 generates a print position correction based at least in part on the difference between the output stage time stamp and the reverse stage time stamp. In some embodiments, the print position correction represents an offset where printing should start based at least in part on the difference between the output stage time stamp and the reverse stage time stamp. In this regard, the print position correction may be generated at least in part on the difference between the output stage time stamp and the reverse stage time stamp to take into account the drift to the print position indicated by such a media movement stage time stamp difference. A non-limiting exemplary process for generating a print position correction based at least in part on the difference between the output stage time stamp and the reverse stage time stamp is described herein with respect to FIG. 15.
[0141] Optionally, in some embodiments, the printer device 100 performs one or more operations based at least in part on the print position correction. For example, in some embodiments, the printer device 100 may use the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., to perform a bounds check based at least in part on the print position correction, as described herein with respect to operation 608. or combinations thereof. Additionally or alternatively, in some embodiments, the printer device 100 optionally includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, or the like, or combinations thereof, for initiating a print operation based at least in part on the print position correction determined in operation 1206. In some embodiments, the print position correction is utilized to correct the forward movement by changing the timing at which the print head is activated to print on a particular printable portion of the print medium. It will be understood that these optional operations may otherwise function similarly to the operations described with respect to operations 608 and 610, respectively. Thus, for the purposes of brevity and clarity of this description, a repetitive disclosure of such functionality is omitted.
[0142] FIG. 13 illustrates a flow diagram showing an example operation of an example process for determining a delta of media movement phase timestamps associated with a particular media movement phase, according to at least some example embodiments of the present disclosure. Specifically, FIG. 13 illustrates the operation of an example process 1300. In some embodiments, the process 1300 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as shown and described. Alternatively or additionally, in some embodiments, the process 1300 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as shown and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 1300 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular printer.
[0143] Process 1300 begins with operation 1302. In some embodiments, process 1300 begins after one or more operations shown and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 1300 begins after performance of operations 1202 and / or 1204 as shown and described with respect to process 1200. In this regard, some or all of process 1300 may replace or supplement one or more blocks shown and / or described with respect to any of the other processes described herein, such as operations 1204 and / or 1206 as shown and described with respect to process 1200. Upon completion of process 1300, the flow of operations may end. Additionally or alternatively, as shown, upon completion of process 1300, flow may return to one or more operations of another process, for example, operations 1204 / 1206 as shown and described with respect to process 1200. It should be appreciated that in some embodiments, process 1300 embodies a sub-process of one or more other processes, such as process 600 .
[0144] In operation 1302, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for identifying a first event timestamp associated with a first edge detection event associated with a first edge during a media movement phase. In some embodiments, the sensor detects the first edge detection event and identifies a first event timestamp representing the current time at which the first edge detection event was detected. Then, in some embodiments, one or more other components of the printer apparatus 100 receive data indicative of detection of the first edge-detection event from the sensor and identify a first event timestamp representing a current time. For example, in some embodiments, the sensor 102, the print correction circuitry 114, and / or the processor 108 maintain access to a current timestamp such that the current timestamp may be captured and stored as a first event timestamp upon detection of a first edge-detection event associated with the first edge.
[0145] At operation 1304, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for identifying a second event timestamp associated with a second edge detection event associated with the second edge during the media movement phase. In this regard, the second event timestamp may represent a timestamp at which a subsequent edge of a particular edge type is detected for a subsequent printable portion on the print media. In some embodiments, the sensor similarly detects the second edge detection event and identifies a second event timestamp representing a current time at which the second edge detection event was detected. Alternatively or additionally, in some embodiments, one or more other components of the printer apparatus 100 receive data indicative of detection of the second edge detection event from the sensor and identify a second event timestamp representing a current time.
[0146] In operation 1306, the printer device 100 includes a means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for determining a media movement phase timestamp difference. The media movement phase timestamp difference is determined based at least in part on the first event timestamp and the second event timestamp. In some embodiments, for example, the media movement phase timestamp difference of a particular media movement phase is determined based on the difference between the first event timestamp and the second event timestamp. In this regard, the media movement phase timestamp difference may indicate a time difference between a first edge that crosses the sensor and / or is otherwise detected by the sensor and a second edge that crosses the sensor and / or is otherwise detected by the sensor. It will be understood that the determined media movement phase timestamp difference may correspond to a current media movement phase (e.g., a media output phase or a media retract phase) in which the printer device 100 is set during the identification of the first event timestamp and the second event timestamp.
[0147] FIG. 14 illustrates a flow diagram showing an example operation of an example process for generating a difference of media movement phase timestamps associated with media movement phases, according to at least some example embodiments of the present disclosure. Specifically, FIG. 14 illustrates the operation of an example process 1400. In some embodiments, the process 1400 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as shown and described. Alternatively or additionally, in some embodiments, the process 1400 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as shown and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 1400 may be implemented, for example, by the printer apparatus 100 embodying a particular printer. The present invention is described in terms of a printer device 100 as being implemented in accordance with the present invention.
[0148] Process 1400 begins with operation 1402. In some embodiments, process 1400 begins after one or more operations shown and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 1400 begins after performance of operations 1202 and / or 1204 as shown and described with respect to process 1200. In this regard, some or all of process 1400 may replace or supplement one or more blocks shown and / or described with respect to any of the other processes described herein, such as operations 1204 and / or 1206 as shown and described with respect to process 1200. Upon completion of process 1400, the flow of operations may end. Additionally or alternatively, as shown, upon completion of process 1400, flow may return to one or more operations of another process, for example, operations 1204 / 1206 as shown and described with respect to process 1200. It should be appreciated that in some embodiments, process 1400 embodies a sub-process of one or more other processes, such as process 600 .
[0149] In operation 1402, the printer apparatus 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for detecting a first edge detection event during a media movement phase via a sensor. In some embodiments, the printer apparatus 100 detects the edge detection event based at least in part on a change in a value represented in the sensor output to and / or from a baseline value (e.g., indicative of a leading edge and / or a trailing edge, respectively, according to a particular movement direction). In this regard, the sensor and / or another component of the printer apparatus 100 may monitor and / or otherwise process the sensor output to detect a particular edge detection event based at least in part on such change in the sensor output. In addition, in some embodiments, the printer apparatus 100 determines an edge type associated with an edge detected via a first edge detection event based, for example, on a change in the sensor output corresponding to the first edge detection event.
[0150] In operation 1404, the printer apparatus 100 includes means such as the sensor 102, print compensation circuit 114, motor 110, light source 106, print mechanism 116, processor 108, etc., or combinations thereof, for determining, via the sensor, a first event timestamp associated with the first edge detection event. In some embodiments, the sensor outputs a first event timestamp representing the time the first edge detection event was detected. Alternatively or additionally, in some embodiments, when the printer apparatus 100 detects the first edge detection event, the printer apparatus 100 determines a first event timestamp associated with the first edge detection event that embodies the time when a change in the sensor data occurred and / or was captured by the sensor. In some embodiments, for example, the printer apparatus 100 maintains a sensor output associated with a timestamp of when the sensor output was captured by the sensor and / or received by other components of the printer apparatus 100 for processing.
[0151] In operation 1406, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for detecting a second edge detection event during the media movement phase via the sensor. The second edge detection event may correspond to the detection of a second edge associated with the same edge type as the first edge detected for the first edge detection event. For example, the second edge detection event may represent the detection of the same edge type of a second printable portion of a particular print medium, such as a printable portion of the print medium following the first printable portion associated with the first edge. The second edge detection event may be similarly described with respect to operation 1402. As such, it will be appreciated that a change in the value represented by the sensor output may be detected based at least in part on a change to and / or from a baseline value.
[0152] In operation 1408, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for determining, via the sensor, a second event timestamp associated with the second edge detection event. The second event timestamp may similarly represent the time at which the second edge detection event was detected. It will be appreciated that the second event timestamp associated with the second edge detection event may be determined in a manner similar to that described herein with respect to operation 1404.
[0153] In operation 1410, the printer device 100 includes means such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for generating a media movement phase timestamp difference associated with the media movement phase. In some embodiments, the media movement phase timestamp difference associated with the media movement phase is generated by subtracting the second event timestamp associated with the media movement phase from the first timestamp associated with the media movement phase. In this regard, it will be understood that the media movement phase timestamp difference represents the difference in timestamps at which the first edge detection event and the second edge detection event were detected for a particular media movement phase. Such operations may be repeated for any number of media movement phases (e.g., for both and / or either the media output phase and the media retract phase).
[0154] FIG. 15 illustrates a flow diagram showing an example operation of an example process for generating print position corrections based at least in part on timestamp-based distance values, according to at least some example embodiments of the present disclosure. Specifically, FIG. 15 illustrates the operation of an example process 1500. In some embodiments, the process 1500 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as illustrated and described. Alternatively or additionally, in some embodiments, the process 1500 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as illustrated and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible from the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 1500 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular printer.
[0155] Process 1500 begins with operation 1502. In some embodiments, process 1500 begins after one or more operations illustrated and / or described with respect to any of the other processes described herein. For example, in some embodiments as shown, process 1500 begins after performance of operation 1204 as illustrated and described with respect to process 1200. In this regard, some or all of process 1500 may replace or supplement one or more blocks illustrated and / or described with respect to any of the other processes described herein, such as operation 1206 as illustrated and described with respect to process 1200. Upon completion of process 1500, the flow of operations may end. Additional or Alternative As shown, upon completion of process 1500, flow may return to one or more operations of another process, such as operations 1204 / 1206 as shown and described with respect to process 1500. It should be appreciated that in some embodiments, process 1400 embodies a sub-process of one or more other processes, such as process 600.
[0156] In operation 1502, the printer device 100 includes means such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, to generate a timestamp-based distance value. In some embodiments, the timestamp-based distance value is generated by subtracting the retraction phase timestamp difference from the output phase timestamp difference. The timestamp-based distance value represents the difference in time it takes for a particular edge to travel a particular distance between the media output phase and the media retraction phase. It will be appreciated that in other embodiments, the output phase timestamp difference is subtracted from the retraction phase timestamp difference to generate a timestamp-based distance value.
[0157] In operation 1504, the printer device 100 includes a means, such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, to generate a print position correction by multiplying the timestamp-based distance value by the print speed. The print speed may generally represent the speed at which the print medium moves through the printer device 100 during printing and / or outputting. In some embodiments, the printer device 100 maintains and / or otherwise stores a known print speed and obtains the known print speed for processing. Alternatively or additionally, in some embodiments, the printer device 100 determines the print speed by processing data output by the sensor (e.g., several dot lines for a particular change in timestamp). In some embodiments, the print speed is based at least in part on a determinable step size (e.g., one dot line) that the sensor measures over a particular timestamp interval.
[0158] FIG. 16 illustrates a flow diagram showing an example operation of an example process for determining a media movement phase timestamp difference based on detecting and storing edges and timestamps via sensors, according to at least some example embodiments of the present disclosure. Specifically, FIG. 16 illustrates the operation of an example process 1600. In some embodiments, the process 1600 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as shown and described. Alternatively or additionally, in some embodiments, the process 1600 is performed by one or more specially configured computing devices, such as the printer apparatus 100 alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, the printer apparatus 100 is specially configured to perform the operations as shown and described by computer coded instructions (e.g., computer program instructions) stored thereon, for example, in the memory 112 and / or in another component illustrated and / or described herein, and / or otherwise accessible to the printer apparatus 100. In some embodiments, the printer apparatus 100 communicates with one or more external apparatus, systems, devices, etc., to perform one or more of the operations as shown and described. For purposes of simplicity of explanation, the process 1600 is described in terms of the printer apparatus 100, for example, as being performed by the printer apparatus 100 embodying a particular printer.
[0159] Process 1600 begins with operation 1602. In some embodiments, process 1600 begins after one or more operations illustrated and / or described with respect to any of the other processes described herein. For example, in some embodiments as illustrated, , process 1600 begins after the execution of operations 1202 and / or 1204 as shown and described with respect to process 1200. In this regard, some or all of process 1600 may replace or supplement one or more blocks shown and / or described with respect to any of the other processes described herein, such as operations 1204 and / or 1206 as shown and described with respect to process 1200. Upon completion of process 1600, the flow of operations may end. Additionally or alternatively, as shown, upon completion of process 1600, flow may return to one or more operations of another process, for example, operations 1204 / 1206 as shown and described with respect to process 1600. It should be understood that in some embodiments, process 1600 embodies a sub-process of one or more other processes, such as process 1200.
[0160] In operation 1602, the printer device 100 includes means such as the sensor 102, the print correction circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for advancing the print medium by one dot line. The printer device 100 may advance the print medium by one dot line in a specific direction that coincides with the current media movement stage. For example, the printer device 100 may advance the print medium in a first direction (e.g., toward the output of the print medium) during the media output stage and advance the print medium in a second direction (e.g., toward the retreat of the print medium) during the media retract stage. In some embodiments, the printer device 100 activates the motor 110, which applies a predetermined force to the print medium, for example, via a platen roller of the printer device 100, to advance the print medium.
[0161] At operation 1604, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuitry 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or combinations thereof, for determining sensor data corresponding to the sensor from an analog-to-digital converter associated with the sensor. In this regard, the analog-to-digital converter associated with the sensor may be used to convert an analog signal captured by the sensor to a digital data output representative of such analog. For example, the sensor data may represent a data value generated from a light beam interacting with the sensor through a print medium based at least in part on the intensity of the light beam reaching the sensor.
[0162] At operation 1606, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, to determine whether the sensor data indicates an edge of a particular edge type. For example, in some embodiments, the printer apparatus 100 processes the sensor data to detect an edge detection event corresponding to a particular edge type (e.g., a leading edge or a trailing edge corresponding to the movement direction of the current media movement stage). The edge detection event may be detected based at least in part on the current sensor data and / or previous sensor data output at one or more previous timestamps. For example, the printer apparatus 100 may process the sensor data and previous sensor data to detect a change in the sensor data indicative of an edge of a particular edge type (e.g., as described herein with respect to FIG. 3). In some embodiments, the particular edge type determined is predetermined and / or otherwise set based at least in part on the configuration of the printer apparatus 100. For example, in some embodiments, the printer apparatus 100 processes the sensor data to determine whether the sensor data indicates a leading edge of a printable portion of the print medium.
[0163] If the printer apparatus 100 determines that the sensor data does not indicate an edge of the particular edge type (e.g., the sensor data indicates no edge or an edge of the wrong edge type), flow returns to operation 1602. In this regard, flow may proceed to continuously advance the print medium while searching for the next edge of the particular edge type. If the printer apparatus 100 determines that the sensor data does indicate an edge of the particular edge type, flow returns to operation 1608. Proceed to.
[0164] At operation 1608, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuitry 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for storing data indicative of an edge and / or a timestamp at which the edge was detected. In some embodiments, the printer apparatus 100 stores data embodying, associated with, and / or otherwise indicative of whether the edge is a first detected edge or a second of a particular edge type. Additionally or alternatively, in some embodiments, the printer apparatus 100 stores data embodying, associated with, and / or otherwise indicative of a timestamp at which the edge was detected. In some embodiments, the timestamp is determined based at least in part on a timestamp at which the sensor data was captured. The timestamp may be received from a sensor, determined by the processor 108 of the printer apparatus 100, etc. In some embodiments, the printer apparatus 100 stores the data indicative of the edge and / or the timestamp in a cache, memory (e.g., memory 112), permanent storage, etc.
[0165] At operation 1610, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, to determine whether the detected edge is a second edge of a particular edge type. In some embodiments, the printer apparatus 100 queries and / or otherwise checks stored edge and / or timestamp data to determine whether data associated with another edge has been previously detected and / or stored. The printer apparatus 100 may determine that an edge is a second edge if the printer apparatus 100 retrieves and / or identifies previously stored data indicative of the detected edge and / or its associated timestamp.
[0166] If the printer apparatus 100 determines that the detected edge is not a second edge of the particular edge type, the flow returns to operation 1602. In this regard, the printer apparatus 100 continues to advance the print medium until a second edge of the particular edge type is detected. For example, a second edge of the particular edge type may indicate that the print medium has moved a particular distance of the print medium (e.g., corresponding to the width of the printable portion of the print medium and the gap between the first printable portion and the second subsequent printable portion). If the printer apparatus 100 determines that the detected edge is a second edge of the particular edge type, the flow continues to operation 1612.
[0167] In operation 1602, the printer apparatus 100 includes means, such as the sensor 102, the print compensation circuit 114, the motor 110, the light source 106, the print mechanism 116, the processor 108, etc., or a combination thereof, for determining a media movement phase timestamp difference from a first timestamp associated with the detection of the first edge and a second timestamp associated with the detection of the second edge. In some embodiments, the media movement phase timestamp difference is determined by subtracting a timestamp representing a time when a second edge of a particular edge type is detected from a timestamp representing a time when a first edge of a particular edge type is detected. Alternatively or additionally, in some embodiments, the media movement phase timestamp difference is determined by subtracting a timestamp representing a time when a first edge of a particular edge type is detected from a timestamp representing a time when a second edge of a particular edge type is detected. In this regard, the media movement phase timestamp difference represents an amount of time that has elapsed while the print media is moving a distance between the first detected edge of a particular edge type and the second detected edge of a particular edge type.
[0168] The difference between the media movement stage time stamps is determined based on the specific time stamps currently set in the printer device 100. For example, if the printer device 100 is currently set to a media output stage, the media movement stage time stamp difference may represent an output stage time stamp difference corresponding to the media output stage, and if the printer device 100 is currently set to a media retract stage, the media movement stage time stamp difference may represent a retract stage time stamp difference corresponding to the media retract stage. In some embodiments, the printer device 100 temporarily or permanently highlights the media movement stage time stamp corresponding to the media movement stage to which the printer device is currently set.
[0169] In some embodiments, the media movement phase timestamp difference may then be processed for any of a myriad of purposes. For example, in some embodiments, the printer apparatus 100 performs the process 1600 to generate a media movement phase timestamp difference embodying a media output phase timestamp difference corresponding to a media output phase, and the printer apparatus 100 similarly performs the process 1600 to generate a media movement planning timestamp embodying a media retraction timestamp difference corresponding to a media retraction phase. The media movement phase timestamp difference thus obtained may then be processed to determine a print position correction for further processing, for example, as described herein with respect to FIG. 12 and / or FIG. 15, based at least in part on the printing speed. The obtained print position correction may be utilized to offset a starting position at which a print job starts relative to one or more printable positions on the print medium (e.g., to print on one or more labels on the print medium).
[0170] conclusion Although an exemplary processing system has been described above, implementations of the subject matter and functional operations described herein can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in combinations of one or more of them.
[0171] Embodiments of the subject matter and operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents, or in a combination of one or more of them. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium for execution by or for controlling the operation of an information / data processing apparatus. Alternatively, or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information / data for transmission to a receiver apparatus suitable for execution by the information / data processing apparatus. The computer storage medium can be or be included in a computer readable storage device, a computer readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Furthermore, although a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially generated propagated signal. A computer storage medium may also be, or be contained in, one or more separate physical components or media (eg, multiple CDs, disks, or other storage devices).
[0172] The operations described herein may be implemented as operations performed by an information / data processing apparatus on information / data stored on one or more computer-readable storage devices or received from other sources.
[0173] The term "data processing device" includes, for example, a programmable processor, The term encompasses all kinds of apparatuses, devices, and machines for processing data, including a processor, a system on a chip, or a combination of more than one of the foregoing. The apparatus may include special purpose logic circuitry, such as a field programmable gate array (FPGA) or an application specific integrated circuit (ASIC). In addition to hardware, the apparatus may also include code that creates an execution environment for the computer program in question, such as code that constitutes a processor firmware, a protocol stack, a repository management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
[0174] 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 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 information / 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 cooperating files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communication network.
[0175] The processes and logic flows described herein can be implemented by one or more programmable processors that execute one or more computer programs to perform actions by operating on input information / data and generating output. Processors suitable for executing computer programs include, for example, both general-purpose and special-purpose microprocessors, as well as any one or more processors of any type of digital computer. Generally, a processor receives instructions and information / data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions according to the instructions, and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks, for storing data, or is operably coupled to receive information / data from them, transmit information / data to them, or both. However, a computer does not necessarily have to have such devices. Suitable devices for storing computer program instructions and information / data include all forms of non-volatile memory, media, and memory devices, including exemplary semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0176] Although the specification contains many specific implementation details, these should not be construed as limiting the scope of any disclosure or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular disclosure. Certain features that are described in this specification in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, even if features are described above as acting in a particular combination and initially claimed as such, one or more features from a claimed combination can, in some cases, be deleted from the combination, and the claimed combination can be directed to a subcombination or a variation of the subcombination.
[0177] Similarly, although operations are shown in a particular order in the figures, this should not be understood as requiring such operations to be performed in the particular order or sequence shown, or to perform all of the operations shown, in order to achieve desirable results. In certain situations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the program components and systems described may generally be integrated into a single software product or packaged into multiple software products.
[0178] Thus, certain embodiments of the present subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
Claims
1. 1. An apparatus comprising at least one processor and at least one memory having stored thereon computer-coded instructions, which when executed by the at least one processor cause the apparatus to: identifying a first timestamp event associated with detecting at least one edge of a printable portion of the print medium during a media output stage; identifying a second time-stamped event associated with detecting the at least one edge of the printable portion of the print medium during a retraction phase of the print medium; generating a print position correction based on a timestamp differential between the first timestamp and the second timestamp; A device that performs the above function.
2. The apparatus of claim 1 , wherein the print position correction is generated by multiplying the timestamp difference value by a print speed.
3. 2. The apparatus of claim 1, wherein the processor is configured to perform a bounds check by comparing the print position correction to a maximum allowed correction, and when the processor determines that the bounds check is not successful, the processor is configured to resume the print job.
Citation Information
Patent Citations
Printer
JP1996230266A
Side airbag device
JP2010116133A
Recording apparatus, recording apparatus control method, and program
JP2016026913A
Printing method
JP2018075808A