Generally, the present invention relates to handheld printers. Particularly, it relates to scheduling print jobs in handheld printers of the type able to print at random speeds, in random motion patterns and with random housing orientation relative to a media.
Traditional host-based printers print by firing ink to a paper through an ink cartridge or printhead that moves across the paper on a horizontal left-to-right or right-to left direction at an approximately constant speed. For these printers, most of the processing happens in the host (usually a computer), wherein print data, such as images or bitmaps, are processed and converted into a series of commands that tells the printer which ink nozzles to fire as the printhead moves horizontally across the paper.
This process, in which firing commands are generated and sent to the printhead, is commonly referred to as print scheduling. Since the printhead moves at a constant speed and in a fixed horizontal path, the positions of the ink nozzles at any point in time during printing are known beforehand. Thus, the commands sent to the printhead can be pre-processed and made ready even before the printhead starts moving across the paper.
The print scheduling process used in traditional printers, however, cannot be applied to handheld printers. As is known, handheld printers afford mobile convenience to users. Users determine the navigation path of a given swath of printing. In some instances, this includes random movement over a media. In others, it includes back-and-forth movement attempting to simulate a stationary printer. Regardless, printer speed, printer orientation, and path of motion over the media, to name a few, are irregular and virtually random.
Accordingly, a need exists in the art to schedule printing for handheld printers. The need must also contemplate robust, multi-directional Hid random speed and movement. Naturally, any improvements along such lines should further contemplate good engineering practices, such as relative inexpensiveness, stability, flexibility, ease of manufacturing, etc.
The above-mentioned and other problems become solved by applying the principles and teachings associated with the hereinafter described print scheduling in handheld printers. Specifically, methods and apparatus contemplate handheld printers manipulated randomly or predictably over a media on which an image is printed. A controller correlates a location of a printhead to the image and causes printing or not, including referencing a memory of firing data for fluid firing actuators of the printhead. A position sensor provides input to the controller to assist in navigation. The controller figures an ideal position of a center of an actuator chip, defining the fluid firing actuators, and an actual position during use. Individual fluid firing actuators are known relative to the center of the chip by way of an offset. Predicted future housing positions, as well as ascertained housing velocities and accelerations are other noteworthy aspects. Appreciating individual actuators may or may not align perfectly over the media relative to the bit-map firing data, e.g., because of random operator movement, resolution between the firing data and actual locations of each actuator is also contemplated before firing.
These and other embodiments, aspects, advantages, and features of the present invention will be set forth in the description which follows, and in part will become apparent to those of ordinary skill in the art by reference to the following description of the invention and referenced drawings or by practice of the invention. The aspects, advantages, and features of the invention are realized and attained by means of the instrumentalities, procedures, and combinations particularly pointed out in the appended claims.
The accompanying drawings incorporated in and forming a part of the specification, illustrate several aspects of the present invention, and together with the description serve to explain the principles of the invention. In the drawings:
In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings that form a part hereof, and in which is shown by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention and like numerals represent like details in the various figures. Also, it is to be understood that other embodiments may be utilized and that process, mechanical, electrical, architectural, software and/or other changes may be made without departing from the scope of the present invention. In accordance with the present invention, methods and apparatus for scheduling printing in a handheld printer are hereafter described.
With reference to
In
At one surface 118 of the housing 112 is a portion 119 of a flexible circuit, especially a tape automated bond (TAB) circuit 120. At 121, another portion 121 is adhered to surface 122. Electrically, the TAB circuit 120 supports a plurality of input/output (I/O) connectors 124 for connecting an actuator chip 125 (also known as a heater chip or transducer chip) to the handheld printer during use. Pluralities of electrical conductors 126 exist on the TAB circuit to connect and short the I/O connectors 124 to the input terminals (bond pads 128) of the actuator chip 125 and skilled artisans know various techniques for facilitating this. In an exemplary embodiment, the TAB circuit is a polyimide material and the electrical conductors and connectors are copper or aluminum-copper. For simplicity,
At 132, the actuator chip 125 contains at least one ink via that fluidly connects to the ink of the compartment 116. During printhead manufacturing, the actuator chip 125 is attached to the housing with any of a variety of adhesives, epoxies, etc., as is well known in the art. To eject ink, the actuator chip contains columns (column A-column D) of fluid firing actuators, such as thermal heaters. In other actuator chips, the fluid firing actuators embody piezoelectric elements, MEMs devices, and the like. In either, this crowded figure simplifies the actuators as four columns of six dots or darkened circles but in actual practice the actuators might number several dozen, hundred or thousand. Also, vertically adjacent ones of the actuators may or may not have a lateral spacing gap or stagger in between. In general, the actuators indeed have vertical spacing, such as about 1/300th, 1/600th, 1/1200th, or 1/400th of an inch along the longitudinal extent of the via. Further, the individual actuators are typically formed as a series of thin film layers made via growth, deposition, masking, patterning, photolithography and/or etching or other processing steps on a substrate, such as silicon. A nozzle member with pluralities of nozzles or nozzle holes (e.g.,
With reference to
In a basic sense, this includes the controller 22 being able to discern content of a signal(s) output from the position sensor, and supplied as an input to the controller (bi-directional arrow), and correlating it to the printhead, especially its individual fluid firing actuators to eject ink 35 to print an image. In a more detailed sense, this includes the controller being able to compare a signal of the position sensor indicative of a previous location 23, shown as a 4×7 matrix of pixels, to a signal of the position sensor indicative of a current location 25, shown as another 4×7 matrix of pixels, each having four hatched pixels translated from a first position 27 to a second, later position 29. Representatively, the four hatched pixels indicate relatively dark grayscale values on the media 16 that are observed in different orientations over time as a user or operator manipulates the housing 14 to print an image. In turn, the controller is to discern a difference between the previous and current locations and correlate same to the location of the printhead. The controller need also do this quickly and efficiently. In one instance, this means the controller will examine or search the current location for a presence, (such as the four hatched pixels) of the previous location.
In other aspects, the controller contemplates an intake checker 31 between the sensor and controller, or part and parcel of the controller, to assess validity of the signal(s) of the position sensor and to arrange the information thereof such that an actual or proximate relative distance D between the housing and the media can be ascertained. It also contemplates establishment of a threshold inquiry determining whether the housing of the printer is relatively close or far away from the media and whether such is sufficient to conduct further signal processing. Intuitively, operators of the handheld printer have freedom to lift the housing from the media and, if too far away from the media, the signal from the position sensor becomes fairly unusable, or invalid. On the other hand, touching the housing to the media or positioning it within a predetermined close interval renders the signal, and its attendant data, valid. Validity checking also considers application per every instance of a signal received from the sensor or application that occurs randomly, on specified occasions or at predetermined times.
In addition, the controller 22 contemplates a to-be-printed representation of an image 32, especially in bitmap form. In turn, it correlates the position of the printhead, especially individual actuators, to the image. It then prints the image with ink 35 on the media 16 according to the image pattern 36 in the pixels 38. A has-been-printed image 34 may also be stored or accessed by the controller to keep track of future printing and to determine whether the image has been printed completely or not. In structure, the controller embodies an ASIC, discrete IC chips, FPGA's, firmware, software, a microprocessor, combinations thereof or the like. Alternatively, the to-be-printed image 32 is dynamically updated to remove pixels that have been printed so that the has-been printed information 34 is merged with the to-be-printed information. In either, the controller further includes a memory to keep track of image data. The memory also includes storage and accessibility relative to position sensor signals and their manipulation to compute printer location. Memory will also find utility in general housekeeping matters, such as storage of an operating system, of sorts, display panel items, print jobs, user features, etc.
With reference to
In arrangement, the controller includes shows three major modules: a connectivity module 50, a navigation module 52 and a print scheduling module 54. In use, the connectivity module 50 provides wired or wireless connection to a host, such as a computer or memory card, allowing the host to download print data to the handheld printer, especially the controller 22. The navigation module 52 keeps track of the location of handheld printer relative to the media. The print scheduling module 54 receives print data 51 from the connectivity module and printer position data 53 from the navigation module to generate the commands sent to the printhead 110, instructing it with printhead commands 55 to fire its fluid firing actuators at specific times.
With reference to
With reference to
In controller memory (
With reference to
With the foregoing setting forth the physical and mathematical relationships in the handheld printer domain,
Using the position data, the future position data (xf, yf, Tf) of the printhead at location 302 is predicted (step 206) for future time Tf (step 204). In theory, future time Tf is the approximate time when all the print scheduling steps are done and the nozzles are ready for firing. Thus,
T
f
=T
i
+T
p
where Tp is the processing time required to generate the printhead fire commands.
The future position data, will be used as reference to determine the position or location of the nozzles relative to the media at future time Tf (304). The output (step 210) of this step 208 should be N pairs of (xnzli, ynzli) which specify the future positions of all N nozzles in the printhead. Naturally, step 209 contemplates the input of all nozzle offsets as earlier described in polar coordinates relative to
With reference to
The previous velocity components at time Ti-1 (step 407) and the calculated velocity at time Ti (step 406) are used to compute for the acceleration (step 408) in x, y, and θ-components for time Ti, whereby the components of step 410 use the equations:
The future xf, yf and θf positions (steps 412, 414) are calculated using the following:
Ultimately, once the future position of the printhead itself is calculated, the positions of each of the nozzles in the printhead are calculated. For a specific or precise printhead, the location of the nozzles relative to the center of the printhead is constant and is described thru polar coordinates (Rnzli, θnzli), e.g.,
Appreciating that tolerance issues may abound in actual handheld printers, the center of the actuator chip and nozzle plate may not be perfectly aligned to the ideal or assumed reference point described by the position data. Thus, the actual location of the center is assumed to be misaligned from the ideal center by a certain amount (xd, yd, θd) as illustrated in
To correct the errors due to this misalignment, instead of directly using the values (Rnzli, θnzli) as the relative location of a certain nozzle from the printhead or actuator chip center, the position of the nozzles on the misaligned printhead chip is calculated relative to the ideal center of the printhead. This nozzle position is described by polar coordinates (Rdnzli, θdnzli). The value for (Rdnzi, θdnzli) will then be used to calculate for the position of the nozzles relative to the paper.
First, the values for xoffset, yoffset are calculated using the following equations:
x
offset
=R
nzli·cos αnzli
y
offset
=R
nzli·sin αnzli
αnzli=θd+θnzli
The values for xdnzli, ydnzli are then calculated:
x
dnzli=(xoffset+xd)
y
dnzli=(yoffset+yd)
These are then used to obtain the value for Rdnzl1, θdnzl1
Now, the values for Rdnzli, θdnzli will be used to calculate for the position of nozzle i, (xnzli, ynzli), relative to the media or paper. To do this, first the values for xdoffset, ydoffset are calculated by:
x
doffset
=R
dzli·cos αdnzli
y
doffset
=R
dnzli·sin αdnzli
αdnzli+θf+θdnzli
The values for xnzli and ynzli are then calculated using the following equations:
S
xnzli=(xdoffset+xf)/4
S
ynzli=(ydoffset+yf)/4
The division by 4 is used to convert the unit from 1/2400″ to 1/600″, which is obtained by:
The values for Sxnzli, Synzli, which describe the position of nozzle i on the paper, are likely to be real numbers. This means that the nozzle may be in a location that will straddle across two or more dot positions in the print bitmap data. One way to resolve this issue is to round off the nozzle position into the nearest whole number value in a straightforward manner and compare that nozzle position to the corresponding dot in the bitmap. However, this could result to grossly misplaced dots and poor print quality. As such, another way for this is to define a range of values for the nozzle position to be considered valid and that position will be rounded off to the nearest whole number value.
With reference to
Using the process discussed above, the whole number values for the nozzle position (xnzli, Ynzli) are determined by:
Once all the nozzle positions have been calculated, there should be (at step 210,
Beginning with the position data for a nozzle i (step 502), a look-up occurs at step 504 for the corresponding bit in the print data [51] in memory M [
Appreciating N-nozzle or fluid firing actuators exists, if the nozzle numbered i is equal to the number N, step 512, the look-up process is finished and the N-bit nozzle fire data is complete at step 514 (see, also the printhead commands 55,
In comparing the absolute nozzle position to the print data bitmap, however, only the relevant 16-bit data corresponding to the nozzle position is to be read from memory M [
With reference to
, labeled 16′″. Thus, the equivalence means that the range of values for the nozzle positions will be:
for the x position: [0:3599]
for the y position: [0:5399]
Assuming that the memory block where the print data bitmap is stored is word-addressable or that 16 bits of data can be accessed at a time, one line of print data is stored in 225 memory locations.
Therefore, to search for the memory location of the print data bit (e.g., the “1”) corresponding to the nozzle position, the following equation is used:
memory location(address)=ynzli*225)+(xnzlidiv16)
Within the 16-bit data accessed from memory, only 1 bit corresponds to the print data bit. To further decode the bit location of the print data bit, the following equation is used:
bit location=xnzlimodulo16
Each of the N nozzles is looked up to identify whether it needs to fire or not. If the print data bit corresponding to a particular nozzle is set to ‘1’, then it is marked to fire, as before. If ‘0’, then don't fire. Then, the bit corresponding to the nozzle being scheduled is cleared (set to ‘0’). This is done to ensure that no ink is fired again if ever a nozzle passes over the same point in the page.
After the Nozzle-Bitmap Look-up process is done for all N nozzles, the data specifying whether each of the N nozzles will fire or not are sent to the printhead to fire the marked nozzles, e.g., step 514,
In any embodiment, certain advantages of the invention over the prior art are readily apparent. For example, the invention at hand provides enhanced computational processing for navigating a handheld printer, ultimately improving print quality regardless of user manipulation, speed, orientation and pattern. It also adds a simple architecture for performing same.
Finally, one of ordinary skill in the art will recognize that additional embodiments are also possible without departing from the teachings of the present invention. This detailed description, and particularly the specific details of the exemplary embodiments disclosed herein, is given primarily for clarity of understanding, and no unnecessary limitations are to be imported, for modifications will become obvious to those skilled in the art upon reading this disclosure and may be made without departing from the spirit or scope of the invention. Relatively apparent modifications, of course, include combining the various features of one or more figures with the features of one or more of other figures.