Storing printer density control parameters in cartridge memory

Abstract
Data may be obtained in the form of a printer control density table from a memory within a replacement toner cartridge. The cartridge may include parity bits to ensure the accuracy of the data.
Description
BACKGROUND

This invention relates generally to controlling the print density in printers.


Mono-laser printers may contain device parameters, commonly called operating points, that control the density or darkness of the print on a page. The density control parameters may be defined for each engine speed and also for special media types.


The operating points may be stored in tables in print engine firmware. The table values in the engine firmware are determined during the printer development cycle. A cartridge and printer pair determined to have nominal components is used to determine the values to be stored in the engine firmware tables.


A density control operating point table may have sixty rows that determine the laser power, duty cycle, and developer bias voltage. The density control operating point selected by the printer depends on the print engine speed, print resolution, user-selected darkness, media type, and other factors.


Changing the print engine's density control table is impractical after the start of printer production because of the large number of printers in customer' hands that would need to receive the revised firmware. Thus, print engine density control tables are modified through the use of adders that are stored in cartridge memory devices. The adders, stored in the cartridge memory devices, modify the index of the current density operating point table that is currently selected.


The resolution of available adjustment with an adder is limited. A four-bit value may used to encode an adder that has only 16 possible values. The adder is typically applied to more than one operating point table with the possibility of unintended effects.


Thus, there is a need for better ways to enable modification of density control tables.




BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic depiction of a printer with an installed toner cartridge;



FIG. 2 is flow chart for a printer according to one embodiment of the present invention;



FIG. 3 shows a data exchange in accordance with one embodiment of the present invention in the course of a read data command;



FIG. 4 shows a data exchange in response to a write data command in accordance with one embodiment of the present invention.




DETAILED DESCRIPTION

Referring to FIG. 1, a toner cartridge 14 may be replaceably plugged into a host 12 via an appropriate receptacle. Thus, the toner cartridge 14 may be periodically replaced as toner is depleted. An electrical connection is automatically made between a host 12, in the form of a laser printer, and the toner cartridge 14 when the toner cartridge is properly installed. The host 12 may also be a programming apparatus that programs the cartridge 14 prior to its installation in a laser printer. The host 12 may include a housing 11.


The toner cartridge 14 may include an interface 16 to facilitate communication between a cartridge controller 18 and the host 12. The controller 18 also communicates with an on-board memory device 20. The memory device 20 may be any conventional memory, but a non-volatile memory, such as a flash memory, may be advantageous in some cases. The memory device 20 may store density control operating points 22 that enables updating of the printer density control table stored in the host 12.


Thus, in accordance with some embodiments of the present invention, when the toner cartridge 14 is replaced because the toner has been consumed, an updated printer density control table may be supplied with the toner cartridge 14. All that needs to be done is for the host 12, in this case the laser printer with the cartridge, to read out the data from the memory device 20 and to store it on board within the host 12. The host 12 may then implement the new printer density control table.


This solves the problem of how to update the printer density control table after production has begun when a large base of installed printers already exists and updating each one manually would be impractical. In this way, as cartridges of toner are consumed, the update of the printer density control table is provided with the replacement toner cartridge. In some cases, the printer density control table is not in need of updating, and in such case, cartridges may be distributed without the memory or with a memory which implements other functions.


Conventionally, the density control operating point data structure may include four fields. In one embodiment, the four fields are implemented through twenty-four bits or three bytes. Bits 0-7 may provide the developer bias voltage, bits 8-15 may provide the laser power, bits 16-22 give the laser duty index, and the parity bit may be bit 23 in one embodiment of the present invention. The most significant bit may be the parity bit used to check the integrity of the memory cells that store the data structure. The laser duty index is an index into a table to be included in the engine firmware that holds the available laser duty cycles. However, the illustration of the three fields and their uses may change over time and other data structures may be used as well.


Once installed within the host 12, the toner cartridge memory device 20 may be read out. The cartridge memory device 20 responds to a Read Data command from the host by extracting the first requested memory location from the message packet. The memory at the current address is then read. For reading density control operating points, a parity flag is set in the data packet. The cartridge memory device 20 performs a parity check on the three bytes of data making up the data structure. If the data at the current memory location fails the parity check, an error code may replace the three bytes of data in the response from the memory device 20 to the host 12. If the data structure passes the integrity check, the three bytes will be placed in a response data packet. The packet to be sent to the host or print engine in response to the read data command with parity may contain 180 data bytes in one example, made up of 60 data structures, each of three bytes.


Referring to FIG. 2, the process 22, shown in FIG. 2, may be implemented from the memory device 20 by the cartridge 14. In some embodiments, the process may be implemented in software or firmware. Initially, a check of diamond 24 determines whether any command has been received from the host 12. If so, a check of diamond 26 determines whether the received command is a read data command. If so, the first read address is fetched, as indicated in block 28. The data at the current address is then read, as indicated in block 30. A check of diamond 32 determines whether a parity flag is set. If so, the data parity is calculated at block 34.


A check of diamond 36 determines whether the calculated parity and bit 23 match. If not, the data is set to an error code as indicated in block 38. If the calculated parity and the bit 23 match as determined in diamond 36, or if the parity flag is not set, the data is added to a response packet at block 40. Then the address pointer is set to the next address in block 42. Once the last entry is reached, as determined in diamond 44, a response packet is transmitted as indicated in block 46.


Thus, referring to FIG. 3, a host read command may include a device address 50, a command length 52, a Read command 54, flags 58 (including parity flag), and addresses 0-59 for the sixty data structures.


In response to the read data command in the format on the left side of FIG. 3, the memory device responds with a memory read with parity response packet. The memory read with parity response packet may include the device address 50, the command length 52, a read response 56, and the requested data as indicated at 60. Thus, Density Control Operating Point (DCOP) data 0.0 to 0.2 are the three bytes of data for one address, et cetera, all the way through addresses 0-59.


Thus, a programming host device writes the data density control operating point to the cartridge memory device at the time of cartridge manufacture. The programming host and the reading hosts are different devices. The programming host device is responsible for calculating the appropriate parity value for bit 23 before writing to the device. Thus, referring to FIG. 4, the write data command response transmission packet structure is shown. In this case, the programming host may be a programmer in a manufacturing facility. The host write command data structure includes the device address 50, a command length 52, a write command 64, and the addresses 680 through 6859, each of which include the three bytes of data plus the parity bit in one embodiment.


The memory device 20 response to the write command may include a device address 50, a command length 52, a write command 64, and a write success or failure indicator 66 in some embodiments.


In this way, the cartridge 14 may be programmed at the factory and, when received and mounted appropriately as a replacement cartridge within a printer, the printer can read out the memory device obtaining the new printer density control tables. Because of the imposition of parity, the transfer of data may be implemented in a secure, error free fashion in some embodiments.


References throughout this specification to “one embodiment” or “an embodiment” mean that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one implementation encompassed within the present invention. Thus, appearances of the phrase “one embodiment” or “in an embodiment” are not necessarily referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be instituted in other suitable forms other than the particular embodiment illustrated and all such forms may be encompassed within the claims of the present application.


While the present invention has been described with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover all such modifications and variations as fall within the true spirit and scope of this present invention.

Claims
  • 1. A method comprising: providing a printer density control table in a memory associated with a toner cartridge; and reading and parity checking the data from the cartridge after the cartridge is installed in a printer.
  • 2. The method of claim 1 including providing a printer density control table from a memory associated with the toner cartridge, receiving a parity bit, calculating a data parity, and comparing the calculated data parity to the parity bit.
  • 3. The method of claim 2 including sending an error message to a printer instead of a printer density control table entry when the calculated data parity does not match a parity bit received from the memory.
  • 4. The method of claim 2 including storing an entire printer density control table in a toner cartridge and, upon receiving a read command, transferring the printer density control table to a printer.
  • 5. The method of claim 2 including calculating data parity in the toner cartridge.
  • 6. The method of claim 1 including providing information to the printer in response to a printer read request specifying the addresses of the requested data, said information including a confirmation and the requested data.
  • 7. A toner cartridge comprising: a controller; a memory device coupled to said controller, said memory device storing a printer density control table; and said controller to perform a parity check on the data in said memory device.
  • 8. The toner cartridge of claim 7 wherein said controller to compare an externally received parity bit to a data parity calculated by said controller.
  • 9. The toner cartridge of claim 7, said controller to receive a parity bit, calculate a data parity, and compare the calculated data parity to the received parity bit.
  • 10. The toner cartridge of claim 9, said controller to transmit said printer density control table to a printer when said cartridge is installed in said printer and when the data passes the parity check.
  • 11. The toner cartridge of claim 10, said controller to send an error signal to a printer when said parity check does not pass.
  • 12. The toner cartridge of claim 7, said controller to provide said printer density control table to a printer in response to a read request from said printer.
  • 13. A printer comprising: a housing; and a toner cartridge in said housing, said toner cartridge including a controller, a memory device coupled to said controller, said memory device storing a printer density control table, said controller to perform a parity check on data in said memory.
  • 14. The printer of claim 13, said printer to provide a parity bit to said toner cartridge, said controller to compare said parity bit to a data parity calculated by said controller.
  • 15. The printer of claim 13, said printer to provide a parity bit to said controller, said controller to calculate a data parity and compare the calculated data parity to the parity bit from said printer.
  • 16. The printer of claim 15, said controller to transmit said printer density control table to said printer when said cartridge is installed in said printer and when said data passes the parity check.
  • 17. The printer of claim 16, said controller to send an error signal to said printer when said parity check does not pass.
  • 18. The printer of claim 13, said controller to provide said printer density control table to said printer in response to a read request from said printer.
  • 19. The printer of claim 13, said printer to provide a read request to said memory device, said read request including the address of data to be read, a read command, and a parity flag.
  • 20. The printer of claim 19 wherein said memory device to respond with a read response to said read request together with the requested data making up a printer density control table.