Abstract:
A method for printing an interactive page for a collection of interactive pages includes steps of storing, in a cartridge holding a volume of printing fluid, a seed for generating a range of identifiers; generating, from the seed, an identifier that is unique within the collection of interactive pages; printing the unique identifier on a page together with human visible markings representing the information to be presented on the page; and storing the unique identifier in association with a page description describing a layout of the printed page.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
       [0001]    The present Application is a Continuation of U.S. application Ser. No. 12/965933 filed Nov. 28, 2010, which is a Continuation of Ser. No. 10/965933, filed Oct. 18, 2004, which is a Continuation-in-Part of Ser. No. 09/608,920 filed Jun. 30, 2000, now issued U.S. Pat. No. 6,831,682. All of which is herein incorporated by reference. 
     
    
     TECHNICAL FIELD 
       [0002]    The present invention relates to cartridges containing identifiers, and in particular to printer consumable cartridges containing identifiers which may be applied to printed media. 
       CROSS REFERENCED APPLICATIONS 
       [0003]    Various methods, systems and apparatus relating to the present invention are disclosed in the following granted U.S. patents and co-pending U.S. applications filed by the applicant or assignee of the present application: The disclosures of all of these granted U.S. patents and co-pending U.S. applications are incorporated herein by reference. 
         [0000]    
       
         
               
               
               
               
               
               
             
           
               
                   
               
             
             
               
                 6374354 
                 7175089 
                 7243835 
                 7832626 
                 7703693 
                 8113950 
               
               
                 7251050 
                 7296737 
                 7097094 
                 7137549 
                 7131596 
                 7156292 
               
               
                 10/815635 
                 7150398 
                 7654454 
                 7137566 
                 7178719 
                 7128265 
               
               
                 7197374 
                 7243849 
                 7819323 
                 7537160 
                 7605940 
                 7506808 
               
               
                 7207483 
                 7575298 
                 7270266 
                 7450273 
                 7188769 
                 7128270 
               
               
                 7457007 
                 7079712 
                 7159777 
                 7204941 
                 7282164 
                 7097106 
               
               
                 7070110 
                 6824044 
                 6416167 
                 7156289 
                 7178718 
                 7465342 
               
               
                 6746105 
                 6681045 
                 6825945 
                 7330974 
                 6813039 
                 7225979 
               
               
                 7721948 
                 7110126 
                 7038797 
                 6980318 
                 6816274 
                 7190474 
               
               
                 6987506 
                 6995859 
                 6678499 
                 6679420 
                 6963845 
                 7102772 
               
               
                 7350236 
                 6847883 
                 7173722 
                 6976035 
                 6813558 
                 6976220 
               
               
                 6728000 
                 6973450 
                 7088459 
                 6720985 
                 7286113 
                 6766942 
               
               
                 6965454 
                 7175079 
                 7131058 
                 7295839 
                 7406445 
                 6922779 
               
               
                 6978019 
                 6825956 
                 7150404 
                 6965882 
                 7233924 
                 7533031 
               
               
                 6959298 
                 6972864 
                 7162259 
                 6718061 
                 7590561 
                 7707082 
               
               
                 7593899 
                 6829387 
                 7451115 
                 7222098 
                 6989911 
                 7464880 
               
               
                 7012710 
                 7293240 
                 6862105 
                 7009738 
                 6609653 
                 7263508 
               
               
                 7031010 
                 7034953 
                 6714678 
                 6644545 
                 7044363 
                 6982807 
               
               
                 7518756 
                 7290210 
                 7467185 
                 7415668 
                 7506153 
                 6651879 
               
               
                 6867880 
                 7404144 
                 6987581 
                 7216224 
                 6850931 
                 7004390 
               
               
                 7162222 
                 6957921 
                 7293233 
                 7293234 
                 10/685584 
                 7162269 
               
               
                 6847961 
                 7038066 
                 10/685583 
                 7162442 
                 7174056 
                 6865570 
               
               
                 7557944 
                 7278018 
                 6889896 
                 7062651 
                 7094910 
                 7159784 
               
               
                 7007851 
                 6827116 
                 6457883 
                 6644642 
                 6789194 
                 7068382 
               
               
                 7122685 
                 6760119 
                 7099019 
                 6987573 
                 6502614 
                 7091344 
               
               
                 7529936 
                 6785016 
                 6549935 
                 7064851 
                 6727996 
                 6789191 
               
               
                 6669385 
                 6840606 
                 7295332 
                 6741871 
                 6826547 
                 6622999 
               
               
                 6439706 
                 7190491 
                 6831682 
                 6977746 
                 6927871 
                 6591884 
               
               
                 6428155 
                 6627870 
                 7036918 
                 6982798 
                 6970264 
                 6290349 
               
               
                 6965439 
                 6737591 
                 7663780 
                 6788982 
                 6870966 
                 6980306 
               
               
                 7093991 
                 6768821 
                 6724374 
                 7041916 
                 7263270 
                 7068389 
               
               
                 6474888 
                 7148644 
                 7091960 
                 7609410 
                 6792165 
                 6822639 
               
               
                 6946672 
                 7324859 
                 7132612 
                 7182247 
                 6797895 
                 6788293 
               
               
                 6980704 
                 6830196 
                 10/778056 
                 7057608 
                 7096199 
                 7105753 
               
               
                 7289882 
                 7793852 
                 7218978 
                 7918404 
                 7982725 
                 7015901 
               
               
                 7567279 
                 7412651 
                 6832717 
                 7134598 
                 7120853 
                 7515186 
               
               
                 7400937 
                 6983878 
                 6789731 
                 7308148 
                 6766944 
                 7286887 
               
               
                 7233320 
                 7017826 
                 7299969 
                 7170499 
                 7108192 
                 7055739 
               
               
                 6843420 
                 6957768 
                 7564605 
                 6786397 
                 7431219 
                 7082562 
               
               
                 7289103 
                 6982703 
                 7014123 
                 6839053 
                 7106888 
                 6766945 
               
               
                 7077333 
                 7048178 
                 7456820 
                 6938826 
                 6947027 
                 7111791 
               
               
                 6994264 
                 6914593 
                 7227527 
                 7154638 
                 7015900 
                 6929186 
               
               
                 7526128 
                 6940088 
                 7118025 
                 6747760 
                 7278566 
                 7630554 
               
               
                 6982701 
                 6394573 
                 7437671 
                 6527365 
                 6859289 
                 7123239 
               
               
                 7139431 
                 6454482 
                 6795215 
                 6536874 
                 6921144 
                 6975299 
               
               
                 7133557 
                 6957923 
                 6622923 
                 7631190 
                 6474773 
                 7010147 
               
               
                 7132679 
                 7093923 
                 6808330 
                 6398332 
                 6666544 
                 6593166 
               
               
                 6977751 
                 6550997 
                 7131724 
               
               
                   
               
             
          
         
       
     
       BACKGROUND 
       [0004]    A number of systems have been proposed in which a printed medium is imbued with an ability to support user interactions with a computer system. Such systems typically rely on coded data placed on or in the medium, ideally in inconspicuous or invisible form. The interactions are then typically mediated by a device capable of sensing and decoding the coded data and communicating the interactions to the computer system. The coded data can consist of one or more discrete barcodes, with each barcode identifying a hyperlink to related information. For example, the barcode can be a UPC barcode as described in U.S. Pat. No. 5,978,773 “System and method for using an ordinary article of commerce to access a remote computer” (F. C. Hudetz et al); it can also consist of a coded coordinate grid which allows the sensing device to generate position information relative to the medium, as variously described in U.S. Pat. No. 5,051,736 “Optical stylus and passive digitizing tablet data input system” (W. E. Bennett et al), U.S. Pat. No. 5,477,012 “Optical position determination” (O. F. Sekendur), U.S. Pat. No. 6,330,976 “Marking medium area with encoded identifier for producing action through network” (M. Dymetman et al), and U.S. Pat. No. 6,502,756 “Recording of information” (C. Faahraeus), as well as in the present applicant&#39;s granted and co-pending applications listed above. 
         [0005]    As described in the present applicant&#39;s U.S. Pat. No. 6,457,883, it is advantageous to include unique identifiers in the coded data, since this allows user interactions with different instances of the printed medium to be distinguished. This is true whether the coded data directly identifies one or more hyperlinks (or functions), or whether the coded data identifies one or more regions of the medium (or the entire medium). When the coded data includes a coordinate grid, it may include one or more separate identifiers to identify one or more regions of the medium to which the coordinate grid applies, or the coordinate grid may be a fragment of a larger coordinate grid, thus implicitly identifying one or more regions of the medium, e.g. as described in U.S. Pat. No. 6,502,756. 
         [0006]    When the coded data is printed onto the medium on demand, there exists the problem of allocating one or more unique identifiers to be included in the coded data. This is particularly a problem when the identifiers are required to be globally unique but the printer does not have online access to a source of globally unique identifiers. 
       SUMMARY 
       [0007]    According to an aspect of the present disclosure, a printer system for printing pages belonging to an interactive page system comprises a cartridge comprising a data storage area in which is pre-stored a range of identifiers, each identifier being unique throughout the interactive page system; and a printer comprising an interface for receiving the cartridge, a reader for reading an identifier from the range of pre-stored identifiers, a coded data generator for generating a page identifier from the identifier, and a printing mechanism for printing the page identifier onto a page. The reader reads a previously unread identifier from the range of identifiers each time the coded data generator is to generate a page identifier. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  shows a perspective view of a wall-mounted printer; 
           [0009]      FIG. 2  shows a section through the length of the printer of  FIG. 1 ; 
           [0010]      FIG. 2A  shows an enlarged portion of  FIG. 2  showing a section of the duplexed print engines and glue wheel assembly; 
           [0011]      FIG. 3  shows a detailed view of the ink cartridge, ink, air and glue paths, and print engines of the printer of  FIGS. 1 and 2 ; 
           [0012]      FIG. 4  shows a schematic block diagram of a printer controller for the printer shown in  FIGS. 1 and 2 ; 
           [0013]      FIG. 5  shows a schematic block diagram of duplexed print engine controllers and printheads associated with the printer controller shown in  FIG. 4 ; 
           [0014]      FIG. 6  shows a schematic block diagram of a printer with ID data stored in the ink cartridge; 
           [0015]      FIG. 7  shows a schematic block diagram of a printer with ID data encoded on the surface of the ink cartridge; 
           [0016]      FIG. 8  shows a flowchart of a printer allocating the next ID from the ink cartridge, on receipt of print data; 
           [0017]      FIG. 9  shows a flowchart of a computer requesting the ID from the printer prior to sending print data; 
           [0018]      FIG. 10  shows a flowchart of a printer reading ID data from the ink cartridge and maintaining the ID allocation internally; 
           [0019]      FIG. 11  shows a flowchart of a computer maintaining ID allocation after obtaining the ID data from the printer; 
           [0020]      FIG. 12  shows a flowchart of a computer maintaining ID allocation after obtaining the ID data from the printer; ands 
           [0021]      FIG. 13  shows a class diagram of an object ID. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]    (Note: Memjet™ is the trademark of Silverbrook Research Pty Ltd, Australia.) 
         [0023]    In the preferred embodiment, the invention is configured to work with the netpage system, as described in the present applicant&#39;s granted and co-pending applications listed above. 
         [0024]    A netpage printer  601 , an example of which is described in more detail below, prints interactive pages  2014  with visible graphic data and invisible coded data. The coded data for a region of a surface (e.g. the surface of a printed page) includes one or more identifiers  210  for each region and a coordinate grid for each region. A coordinate grid may be a fragment of a larger coordinate grid, and may thus implicitly identify its corresponding region (or page), i.e. without an explicit region (or page) identifier. A description of the contents of the page  2010 , corresponding to at least some of the graphic data, is stored on a computer system, indexed by the corresponding region identifiers (or the page identifier). 
         [0025]    A user typically interacts with the page using a hand-held device, such as a pen device, which is capable of sensing and decoding the coded data, and transmitting, to the computer system, data representing movement of the device relative to the coordinate grid. The computer system interprets the movement data in relation to the stored description of the page, retrieved using the region (or page) identifier accompanying the movement data. For example, the computer system may interpret the movement data as a click of a button, a check of a box, handwriting in a text field, drawing in a drawing field, or a signature in a signature field. Alternatively or additionally, the coded data may identify interactive objects, such as buttons, hyperlinks and fields, directly, allowing the computer system to interpret the movement data without reference to a stored page description. 
         [0026]    As shown in  FIG. 13 , the identifier  210  can be considered as a general object identifier, whether it identifies a page, a region of a page, a specific object, or a specific item. In the latter case, the item identifier  215  may correspond to an electronic product code (EPC), consisting of a product identifier  214  and a serial number  213 . The product identifier may correspond to a Universal Product Code (UPC). The product identifier may consist of a manufacturer number  211  and a product class number  212 . 
         [0027]    A netpage printer  601  comprises a controller  656 , a printhead  350 , and one or more replaceable ink cartridges  2003 . A netpage printer  601  utilizes one or more print cartridges  2003  which may contain black ink, colored ink (e.g. cyan, magenta, yellow), fixative, and adhesive  2005 . Each cartridge  2003  typically incorporates a quality assurance (QA) chip  761  which contains information about ink characteristics and available ink volume, and which is used to record ink consumption during printing to prevent printheads  350  from running dry and being damaged. 
         [0028]    The netpage printer  601  typically utilizes invisible ink for printing coded data, in which case at least one cartridge  2003  includes invisible ink. The invisible ink may be a near-infrared-absorptive ink. 
         [0029]    It is advantageous for a netpage system to use unique identifiers for identifying regions (or pages), to allow user interactions with different regions (or pages) to be distinguished by the system. This may apply to regions (or pages) with different descriptions, or to different instances of the same regions (or pages), or to different object (or function) identifiers, or to different instances of the same object (or function) identifiers. 
         [0030]    When all the participants of a netpage system are connected, it is a trivial matter to allocate identifiers in such a way as to guarantee global uniqueness. For example, a central database of identifiers may be used. However, when all the participants of a netpage system are not connected, the allocation of unique identifiers presents a problem. For example, when netpage systems are deployed on multiple networks, it is desirable for identifiers allocated within any network to be unique across all networks to prevent accidental misinterpretation by a computer on one network of input received via a page printed on another network. 
         [0031]    As shown in  FIG. 6 , to allow allocation of globally unique identifiers, identifiers can be centrally allocated and stored in netpage cartridges  2003  during or after the cartridge manufacturing process. The QA chip  761  in a netpage printer cartridge  2003  provides a convenient non-volatile memory (in the form of a flash memory) capable of holding a range of unique identifiers (examples of the QA chip are the subject of granted U.S. Pat. Nos. 6,374,354 and 7,631,190, entitled “Use of variant base keys with two entities (docket number: PLT034)”). Ideally, the cartridge  2003  which contains the machine-readable ink  2005  used for printing coded data also holds the identifier range. This allows the size of the pre-allocated identifier range (or set) to be tuned to the maximum number of pages printable using the available volume of machine-readable ink. Another non-volatile memory in the cartridge can be used in place of the QA chip&#39;s memory. 
         [0032]    As an alternative, a pre-allocated identifier range (or set) can be provided to the printer separately from other consumables, e.g. in the form of a flash memory card, read-only memory (ROM) card, optical card, magnetic stripe card, smart card, or any combination of these. Such a card may of course come in any number of form factors, including a chip, a card, and cartridge. It is then practical to have a computer system  2009  on the network  2012 , rather than a printer, manage identifier allocation from the card. 
         [0033]    It will be appreciated that the term “cartridge” is meant to encompass all conceivable form factors, and is not intended in a limiting sense except as to indicate an object which can be inserted into a computer system  2009  or printer  601  for the purposes of being read (and possibly written), possibly but not necessarily in conjunction with the extraction of other consumable materials. 
         [0034]    As shown in  FIG. 8 , each time the netpage printer  601  requires a unique identifier, e.g. when it prints a page in response to print data received from a computer system, it reads the next available identifier from the cartridge  2003 , and increments the next available identifier. This ensures that the same identifier is only used once. In practice, this is advantageously done by way of decrementing a count of available identifiers relative to a static base identifier. In the preferred embodiment, the printer  601  then communicates the identifier to the computer system  2009  to allow the computer system to record an association between the page description  2010  and the identifier in an index  2011 . If region (or page) identification is implicit via a unique fragment of a larger coordinate grid, then the allocated (and communicated) “identifier” consists of a range of two-dimensional addresses, where the range identifies the coordinate grid fragment and thus the region (or page). 
         [0035]    A number of schemes may be used to represent a collection of identifiers. A range may be represented by a base identifier and a count. The count may be omitted and the range may instead be limited by the physical ink capacity of the cartridge. A range or set of identifiers may be represented explicitly. 
         [0036]    The identifiers may also be generated algorithmically. For example, successive identifiers may be generated recursively, by feeding back at least a portion of a current identifier into an algorithm to generate the next identifier. 
         [0037]    One way of implementing recursive generation is by using a linear feedback shift register (LFSR). An LFSR of length k consists of k 1-bit stages numbered 0 to k−1. On each clock the content of stage  0  forms the next bit of the output sequence, the content of stage i is moved to stage i- 1 , and the new content of stage is a feedback bit calculated by adding together modulo  2  the previous contents of a fixed subset of the stages of the register (see Menezes, A. J., P. C. van Oorschot and S. A. Vanstone,  Handbook of Applied Cryptography,  1997, CRC Press). 
         [0038]    A maximal-length LFSR produces as output a so-called m-sequence with a length of (2̂k)−1, in which every possible non-zero register value appears once before the sequence repeats. M-sequences are also known as pseudo-noise (PN) or pseudo-random sequences, since they exhibit many of the general characteristics of noise without actually being random. The characteristics and construction of PN sequences are discussed extensively in Golomb, S. W.,  Shift Register Sequences,  Aegean Park Press, 1982. In practice, a collection of identifiers can be represented by a base identifier and optionally a count. The base identifier then forms the initial contents of the LFSR. 
         [0039]    A number of schemes may also be used to record the consumption of identifiers. The base identifier may simply be incremented, decremented or re-written. The associated count, if present, may be decremented. Alternatively a usage count may be incremented. If the identifier information is recorded in a read-only medium, then a separate usage count is useful. Usage consumption may also be physically recorded, e.g. by the length of a line or of a collection of marks incrementally recorded on the cartridge. 
         [0040]    The allocation of an identifier from the cartridge  2003  may, from the printer&#39;s point of view, be decoupled from printing. The printer  601  may, for example, respond to a request from a computer system  2009  for one or more identifiers, which the computer system then allocates to one or more regions (or pages)  2010  prior to sending print data to the printer, as shown in  FIG. 9 . The print data may then include the identifiers. Identifiers allocated from a cartridge  2003  may include identifiers which are used by the computer system  2009  to index document, page, region and object data, but which are never included in coded data printed by the (or any other) printer. 
         [0041]    The netpage print cartridge  2003  may provide identifiers  2015  in another machine-readable form, such as in the form of an optical or magnetic encoding which can be sensed and decoded by the printer. For example, the identifier data  2015  may be coded in a linear or two-dimensional barcode  2007  on the surface of the cartridge, which is read by a barcode reader  2008  embedded in the printer  601 , as shown in  FIG. 7 . If the cartridge lacks re-writable memory entirely (e.g. in the absence of QA-chip flash memory), then the printer  601  can maintain identifier consumption data in its own memory  2006 , or on its own disk  2013 , as shown in  FIG. 10 , or on a computer system  2009  to which it has access, or a computer system can maintain identifier consumption data  2013  for a cartridge  2003  to which the printer  601  provides it with access, as shown in  FIG. 11 . Although largely practical, these approaches have the disadvantage that if a partially-used cartridge is moved from one netpage network to another (or even from one printer to another on the same network), then duplicate identifier usage may result. Alternatively, the printer  601  can maintain identifier consumption data on the cartridge, but recorded in a different manner to the identifier data itself. For example, the identifier data may be recorded in read-only form using any of the approaches described above, and the printer may read and write (or re-write) identifier consumption data separately, e.g. via a optical reader for reading consumption-indicative marks or data on the cartridge and a printer (or other marking device) for printing (or otherwise placing) consumption-indicating marks or data onto the cartridge, or via a magnetic reader and writer for reading consumption-indicating data from and writing consumption-indicating data to a magnetic medium on the cartridge. 
         [0042]    However the identifiers are stored in or on the cartridge, it is preferred that some form of encryption be used. Encryption prevents unauthorized tampering with the information stored on the cartridge, which is important if it is desirable to keep the identifiers globally unique across many printers and computer systems. Where the identifiers have commercial value, encryption impedes unauthorized generation of unpaid-for identifiers by end users. 
         [0043]    A suitable encryption scheme is a public-private key arrangement, whereby the identifier information on or in the cartridge is encrypted at some point during manufacture or distribution using a private key. The printer (or computer system) is provided with the public key corresponding to the private key, enabling it to decrypt the identifier information from the cartridge prior to use. Alternatively, the identifier information may be encrypted using a secret key also known to the printer. 
         [0044]    Rather than being encrypted, the identifier information may be stored in the clear but may have an associated digital signature. The printer can verify the digital signature with respect to the identifiers to thereby authenticate the identifier information. The digital signature may have been generated during manufacture or distribution using a secret key or a private key, and the printer may verify the digital signature using respectively the same secret key or a public key associated with the private key. 
         [0045]    Whether the identifier information is encrypted or digitally signed using a secret key, the secret key may be securely stored in a master QA chip embedded in the printer. 
         [0046]    An example of a netpage printer  601  is described in more detail below. 
       Printer Mechanics 
       [0047]    The vertically-mounted netpage wallprinter  601  is shown fully assembled in  FIG. 1 . It prints netpages on Letter/A4 sized media using duplexed 8½″ Memjet™ print engines  602  and  603 , as shown in  FIGS. 2 and 2   a.  It uses a straight paper path with the paper  604  passing through the duplexed print engines  602  and  603  which print both sides of a sheet simultaneously, in full color and with full bleed. 
         [0048]    An integral binding assembly  605  applies a strip of glue along one edge of each printed sheet, allowing it to adhere to the previous sheet when pressed against it. This creates a final bound document  618  which can range in thickness from one sheet to several hundred sheets. 
         [0049]    The replaceable ink cartridge  627 , shown in  FIG. 3  coupled with the duplexed print engines, has bladders or chambers for storing fixative, adhesive, and cyan, magenta, yellow, black and infrared inks The cartridge also contains a micro air filter in a base molding. 
         [0050]    Referring to  FIG. 2 , the motorized media pick-up roller assembly  626  pushes the top sheet directly from the media tray past a paper sensor on the first print engine  602  into the duplexed Memjet™ printhead assembly. The two Memjet™ print engines  602  and  603  are mounted in an opposing in-line sequential configuration along the straight paper path. The paper  604  is drawn into the first print engine  602  by integral, powered pick-up rollers  626 . The position and size of the paper  604  is sensed and full bleed printing commences. Fixative is printed simultaneously to aid drying in the shortest possible time. 
         [0051]    The paper exits the first Memjet™ print engine  602  through a set of powered exit spike wheels (aligned along the straight paper path), which act against a rubberized roller. These spike wheels contact the printed surface and continue to feed the sheet  604  into the second Memjet™ print engine  603 . 
         [0052]    Referring to  FIGS. 2 and 2   a,  the paper  604  passes from the duplexed print engines  602  and  603  into the binder assembly  605 . The printed page passes between a powered spike wheel axle  670  with a fibrous support roller and another movable axle with spike wheels and a momentary action glue wheel. The movable axle/glue assembly  673  is mounted to a metal support bracket and it is transported forward to interface with the powered axle  670  via gears by action of a camshaft. A separate motor powers this camshaft. 
         [0053]    The glue wheel assembly  673  consists of a partially hollow axle  679  with a rotating coupling for the glue supply hose  641  from the ink cartridge  627 . This axle  679  connects to a glue wheel, which absorbs adhesive by capillary action through radial holes. A molded housing  682  surrounds the glue wheel, with an opening at the front. Pivoting side moldings and sprung outer doors are attached to the metal bracket and hinge out sideways when the rest of the assembly  673  is thrust forward. This action exposes the glue wheel through the front of the molded housing  682 . Tension springs close the assembly and effectively cap the glue wheel during periods of inactivity. 
         [0054]    As the sheet  604  passes into the glue wheel assembly  673 , adhesive is applied to one vertical edge on the front side (apart from the first sheet of a document) as it is transported down into the binding assembly  605 . 
       Printer Controller Architecture 
       [0055]    The netpage printer controller consists of a controlling processor  750 , a factory-installed or field-installed network interface module  625 , a radio transceiver (transceiver controller  753 , baseband circuit  754 , RF circuit  755 , and RF resonators and inductors  756 ), dual raster image processor (RIP) DSPs  757 , duplexed print engine controllers  760   a  and  760   b,  flash memory  658 , and 64 MB of DRAM  657 , as illustrated in  FIG. 4 . 
         [0056]    The controlling processor handles communication with the network  19  and with local wireless netpage pens  101 , senses the help button  617 , controls the user interface LEDs  613 - 616 , and feeds and synchronizes the RIP DSPs  757  and print engine controllers  760 . It consists of a medium-performance general-purpose microprocessor. The controlling processor  750  communicates with the print engine controllers  760  via a high-speed serial bus  659 . 
         [0057]    The RIP DSPs rasterize and compress page descriptions to the netpage printer&#39;s compressed page format. Each print engine controller expands, dithers and prints page images to its associated Memjet™ printhead  350  in real time (i.e. at over  30  pages per minute). The duplexed print engine controllers print both sides of a sheet simultaneously. 
         [0058]    The master print engine controller  760   a  controls the paper transport and monitors ink usage in conjunction with the master QA chip  665  and the ink cartridge QA chip  761 , as shown in  FIG. 5 . 
         [0059]    The printer controller&#39;s flash memory  658  holds the software for both the processor  750  and the DSPs  757 , as well as configuration data. This is copied to main memory  657  at boot time. 
         [0060]    The processor  750 , DSPs  757 , and digital transceiver components (transceiver controller  753  and baseband circuit  754 ) are integrated in a single controller ASIC  656 . Analog RF components (RF circuit  755  and RF resonators and inductors  756 ) are provided in a separate RF chip  762 . The network interface module  625  is separate, since netpage printers allow the network connection to be factory-selected or field-selected. Flash memory  658  and the 2×256 Mbit (64 MB) DRAM  657  is also off-chip. The print engine controllers  760  are provided in separate ASICs. 
         [0061]    A variety of network interface modules  625  are provided, each providing a netpage network interface  751  and optionally a local computer or network interface  752 . Netpage network Internet interfaces include POTS modems, Hybrid Fiber-Coax (HFC) cable modems, ISDN modems, DSL modems, satellite transceivers, current and next-generation cellular telephone transceivers, and wireless local loop (WLL) transceivers. Local interfaces include IEEE 1284 (parallel port), 10 Base-T and 100 Base-T Ethernet, USB and USB 2.0, IEEE 1394 (Firewire), and various emerging home networking interfaces. If an Internet connection is available on the local network, then the local network interface can be used as the netpage network interface. 
         [0062]    The radio transceiver  753  communicates in the unlicensed 900 MHz band normally used by cordless telephones, or alternatively in the unlicensed 2.4 GHz industrial, scientific and medical (ISM) band, and uses frequency hopping and collision detection to provide interference-free communication. 
         [0063]    The printer controller optionally incorporates an Infrared Data Association (IrDA) interface for receiving data “squirted” from devices such as netpage cameras. In an alternative embodiment, the printer uses the IrDA interface for short-range communication with suitably configured netpage pens. 
       Rasterization and Printing 
       [0064]    Once the main processor  750  has received and verified the document&#39;s page layouts and page objects, it runs the appropriate RIP software on the DSPs  757 . 
         [0065]    The DSPs  757  rasterize each page description and compress the rasterized page image. The main processor stores each compressed page image in memory. The simplest way to load-balance multiple DSPs is to let each DSP rasterize a separate page. The DSPs can always be kept busy since an arbitrary number of rasterized pages can, in general, be stored in memory. This strategy only leads to potentially poor DSP utilization when rasterizing short documents. 
         [0066]    The infrared (IR) layer of the printed page contains coded netpage tags at a density of about six per inch. Each tag encodes the page ID, tag ID, and control bits, and the data content of each tag is generated during rasterization and stored in the compressed page image. 
         [0067]    The main processor  750  passes back-to-back page images to the duplexed print engine controllers  760 . Each print engine controller  760  stores the compressed page image in its local memory, and starts the page expansion and printing pipeline. Page expansion and printing is pipelined because it is impractical to store an entire 114 MB bi-level CMYK-FIR page image in memory. 
       Print Engine Controller 
       [0068]    The page expansion and printing pipeline of the print engine controller  760  consists of a high speed IEEE 1394 serial interface  659 , a standard JPEG decoder  763 , a standard Group 4 Fax decoder  764 , a custom halftoner/compositor unit  765 , a custom tag encoder  766 , a line loader/formatter unit  767 , and a custom interface  768  to the Memjet™ printhead  350 . 
         [0069]    The print engine controller  360  operates in a double buffered manner. While one page is loaded into DRAM  769  via the high speed serial interface  659 , the previously loaded page is read from DRAM  769  and passed through the print engine controller pipeline. Once the page has finished printing, the page just loaded is printed while another page is loaded. 
         [0070]    The first stage of the pipeline expands (at  763 ) the JPEG-compressed contone CMYK layer, expands (at  764 ) the Group 4 Fax-compressed bi-level black layer, and renders (at  766 ) the bi-level netpage tag layer according to the tag format defined in section 1.2, all in parallel. The second stage dithers (at  765 ) the contone CMYK layer and composites (at  765 ) the bi-level black layer over the resulting bi-level CMYK layer. The resultant bi-level CMYK+IR dot data is buffered and formatted (at  767 ) for printing on the Memjet™ printhead  350  via a set of line buffers. Most of these line buffers are stored in the off-chip DRAM. The final stage prints the six channels of bi-level dot data (including fixative) to the Memjet™ printhead  350  via the printhead interface  768 . 
         [0071]    When several print engine controllers  760  are used in unison, such as in a duplexed configuration, they are synchronized via a shared line sync signal  770 . Only one print engine  760 , selected via the external master/slave pin  771 , generates the line sync signal  770  onto the shared line. 
         [0072]    The print engine controller  760  contains a low-speed processor  772  for synchronizing the page expansion and rendering pipeline, configuring the printhead  350  via a low-speed serial bus  773 , and controlling the stepper motors  675 ,  676 . 
         [0073]    In the 8½″ versions of the netpage printer, the two print engines each prints  30  Letter pages per minute along the long dimension of the page (11″), giving a line rate of 8.8 kHz at 1600 dpi. In the 12″ versions of the netpage printer, the two print engines each prints 45 Letter pages per minute along the short dimension of the page (8½″), giving a line rate of 10.2 kHz. These line rates are well within the operating frequency of the Memjet™ printhead, which in the current design exceeds 30 kHz. 
       Printing Product Labels and Packaging 
       [0074]    The printer  601 , or a variant thereof, may be used to print product codes, product information and product graphics onto the label, packaging or actual surface of a product before, during or after its manufacture and/or assembly. 
         [0075]    The printer may be an add-on infrared printer which prints barcodes and/or netpage tags after text and graphics have been printed by other means, or an integrated color and infrared printer which prints the omnitags, text and graphics simultaneously. Digitally-printed text and graphics may include everything on the label or packaging, or may consist only of the variable portions, with other portions still printed by other means. Thus the printer with an infrared and black printing capability can displace an existing digital printer used for variable data printing, such as a conventional thermal transfer or inkjet printer. 
         [0076]    The printer is typically controlled by a host computer, which supplies the printer with fixed and/or variable text and graphics as well as item ids for inclusion in the omnitags. The host may provide real-time control over the printer, whereby it provides the printer with data in real time as printing proceeds. As an optimisation, the host may provide the printer with fixed data before printing begins, and only provide variable data in real time. The printer may also be capable of generating per-item variable data based on parameters provided by the host. For example, the host may provide the printer with a base item ID prior to printing, and the printer may simply increment the base item ID to generate successive item ids. Alternatively, memory in the ink cartridge or other storage medium inserted into the printer may provide a source of unique item ids, in which case the printer reports the assignment of items ids to the host computer for recording by the host. 
         [0077]    Alternatively still, the printer may be capable of reading a pre-existing item ID from the label onto which the omnitags are being printed, assuming the unique ID has been applied in some form to the label during a previous manufacturing step. For example, the item ID may already be present in the form of a visible 2D bar code, or encoded in an RFID tag. In the former case the printer can include an optical bar code scanner. In the latter case it can include an RFID reader. 
         [0078]    The printer may also be capable of rendering the item ID in other forms. For example, it may be capable of printing the item ID in the form of a 2D bar code, or of printing the product ID component of the item ID in the form of a linear bar code, or of writing the item ID to a writable or write-once RFID tag. 
         [0079]    The invention has been described herein with reference to the specific examples only. Skilled workers in this field will readily recognize many variations and modifications, which do not depart from the spirit and scope of the broad inventive concept. 
         [0080]    Furthermore, it will be appreciated by a person skilled in the art that the cartridge disclosed in the present application may be implemented or used in any printing device where the printing device uses a cartridge. For example, the printing device may be a desktop printer, a workgroup printer, a network printer, a short-run digital printer, or a printer integrated in a mobile device such as a personal digital assistant or a mobile or cellular phone. Such devices and printers are the subject of granted U.S. patents and co-pending U.S. patent applications, details of which are provided in the cross reference section of the present specification.