how_to_add_a_printer
Author: Jean-Jacques Sarton

### Adding a new printer

The file printer.desc.bldin which must reside under the directory /usr/lib/xw, /usr/local/lib/xw or /opt/mtink describe the printer capabilities. This file can be used as template for creating the description file printer.desc which will be read by the status monitors mtink and ttink.
If the printer.desc file is found, the remaining directories are not scanned.
The scan order is /usr/lib/mtink /usr/local/lib/mtink, /opt/mtink
The description find into the printer.desc file prevail.

#### FILE printer.desc:

This file contain blocks which describe the printer capability.
A block look like this:

    .PRINTER
       .name:                Stylus C20SX
       .colorsNb:            4
       .mainProt:            D4
       .stateFlg:            True
       .exchangeFlg:         False
       .exchangeSeparateFlg: False
       .cleanSeparateFlg:    True
       .resetProt:           D4
       .alignProt:           OLD D4
       .idFlg:               True
       .passesNb:            3
       .choicesNb:           15
       .colorPassesNb:       2
       .colorChoicesNb:      9
       .alignFunctionName:   -
    .END

.PRINTER | declare that a new description begins. The following words up to the .END word, but not including it, describe the capabilities for the printer.
| Please don't begin a line with a dot '.', this character tell the ttink/mtink as well as the help program rdPrtDesc that a description line begins.
.name: | must contain the name of the printer as returned by the printer name query.
| .colorsNb: | tell ttink/mtink how many inks are used. |  | The designer ending with Prot: tell the programs which protocol is to be used.
| Newer printers know a new protocol which is named the D4 protocol. This new protocol allows to communicate with the printer via independant c This allows for example to query the remaining ink quantity or the printer status while printing. The D4 protocol includes also a set of commands, so that most of the old commands has a replacement. Unfortunately not all printers offer the full set of D4 commands. Due to this, and also for compatibility to drivers which don't know the D4 protocol, it is possible to tell the printer that the D4 protocol must be disabled. According to this the following combinations values are possible:
| OLD | The printer don't know anythings about D4.
| OLD D4 | Use non D4 command, but send this via the D4 protocol.
| OLD EXD4 | Use the normal commands and set the printer into the compatibility mode.
| D4 | The printer know a special D4 command, use this.
.mainProt: | declare the default mode.
.resetProt: | declare the protocol type top use for the reset command. D4 printers may all know this command but not perform the operation as needed (e.g. Stylus Color 980 or the Stylus Scan ...).
.alignProt: | This command seem not to have a D4 counterpart and the classic command will alltime be used. Here you may declare only D4 (OLD is implied).
| Words ending with Flg: tell if the printer has a particular capability. The assigned value may be True or False.
.stateFlg: | Tell if the printer is able to return if it is busy, working,...
.cleanSeparateFlg | A few printers allow to clean separately the nozzle. For those printers declare True.
.idFlg: | The Stylus Scan 2500 and probably the Stylus Scan 2000 don't return an identification. For such model this flag must be set to False.
.exchangeFlg: | A few printers (Stylus Color 480/580) don't allows to do this via button on the printer.This must be done by software. For such printers set the value to True.
.exchangeSeparateFlg: | Both above mentionned printers need a selection of the cartridge which is to be exchanged. Set the value to True.
| The remaining designer ending with Nb:
.passesNb: .ChoicesNb: .colorPassesNb: .colorChoicesNb: | are for the aligment procedure. The first two entries tell how many passes are needed, and how many choices are allowed. These values can be seen from the windows or Mac OS driver delivered by EPSON. If the printer don't allow an adjustement for the color head, set the value for .colorChoicesNb to 0.
.alignFunctionName | was introduced specially for the Stylus Photo 820. This printer don't have a buildin code which print the desired pattern. The pattern must be supplied by ttink/mtink. For the Stylus Photo 820, enter Pattern820, for others set the value to "- ".

The following apply only for the source distribution:

#### Installing a printer.desc file

If you want to modify the description for one of the given printers, extract the data with rdPrtDesc and modify the value for the wanted file, then copy the resulting printer.desc file to one of the above mentioned directory.

#### Compiling a new printer into ttink/mtink:

Generate your printer.desc file under the directory .../mtink/utils and call
rdPrtDesc -c > ../mainSrc/model.c
The file for actual printers and the new one is then automatically generated.
return then to the mtink directory and call make and make install.