Gutenprint + CUPS backends for Dye Sublimation printers
Find a file
2012-10-28 09:45:39 -04:00
.gitattributes Initial commit of current sources. 2012-10-26 22:06:47 -04:00
.gitignure [build] Add a makefile 2012-10-27 10:22:12 -04:00
COPYING [misc] Add GPLv3 license text. 2012-10-26 23:41:11 -04:00
es_print_common.h [common] Move printjob parser into common code. 2012-10-27 10:46:56 -04:00
es_print_libusb.c [misc] Update cmdline 2012-10-28 09:45:39 -04:00
es_print_linux.c [misc] Update cmdline 2012-10-28 09:45:39 -04:00
Makefile [build] Add a makefile 2012-10-27 10:22:12 -04:00
README.TXT [misc] Move common comments into docs. 2012-10-27 10:27:31 -04:00

 *
 *   The SELPHY ES-series printers from Canon requires intelligent buffering
 *   of the raw spool data in order to keep the printer from locking up.  
 *
 *   Known supported printers:
 * 
 *     SELPHY ES1, SELPHY ES2, SELPHY ES30 
 *
 *   Supported but untested:
 *
 *     SELPHY ES20, SELPHY ES3 
 *     SELPHY CP-760 and all other CP-series printers EXCEPT for CP-790
 * 
 *   NOT currently supported:
 *
 *     SELPHY ES40, CP-790
 *       (They use different stream formats, and may have different readbacks;
 *        I will update this as needed and as I get hardware to test..)

/* 

 Selphy ES1:

   Init func:   40 00 [typeA] [pgcode] 00 00 00 00 00 00 00 00
   Plane func:  40 01 [typeB] [plane] [length, 32-bit LE] 00 00 00 00 

   TypeA codes are 0x10 for Color papers, 0x20 for B&W papers.
   TypeB codes are 0x01 for Color papers, 0x02 for B&W papers.

   Plane codes are 0x01, 0x03, 0x07 for Y, M, and C, respectively.
   B&W Jobs have a single plane code of 0x01.

   'P' papers pgcode of 0x11 and a plane length of 2227456 bytes
   'CP_L'     pgcode of 0x12 and a plane length of 1601600 bytes.
   'Card'     pgcode of 0x13 and a plane length of  698880 bytes.

   Readback values seen:

   02 00 00 00 02 01 [pg] 01 00 00 00 00   [idle, waiting for init seq]
   04 00 00 00 02 01 [pg] 01 00 00 00 00   [init received, not ready..]
   04 00 01 00 02 01 [pg] 01 00 00 00 00   [waiting for Y data]
   04 00 03 00 02 01 [pg] 01 00 00 00 00   [waiting for M data]
   04 00 07 00 02 01 [pg] 01 00 00 00 00   [waiting for C data]
   04 00 00 00 02 01 [pg] 01 00 00 00 00   [all data sent; not ready..]
   05 00 00 00 02 01 [pg] 01 00 00 00 00   [?? transitions to this]
   06 00 00 00 02 01 [pg] 01 00 00 00 00   [?? transitions to this]
   02 00 00 00 02 01 [pg] 01 00 00 00 00   [..transitions back to idle]

   Readbacks for other paper types are currently unknown.

   Known paper types for all ES printers:  P, Pbw, C, Cl
   Additional types for ES3/30/40:         Pg, Ps

   Known pg codes:   0x01   -- P-size
                     0x03   -- C-size

   P*   sizes are 100x148mm "postcards"
   CP_L sizes are 89x119mm "labels"
   Card sizes are 54x86mm "cards"

*/

/* 

 Selphy ES2/20:

   Init func:   40 00 [pgcode] 00  02 00 00 [type]  00 00 00 [pg2] [length, 32-bit LE]
   Plane func:  40 01 [plane] 00  00 00 00 00  00 00 00 00 

   Type codes are 0x00 for Color papers, 0x01 for B&W papers.

   Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
   B&W Jobs have a single plane code of 0x01.

   'P' papers pgcode of 0x01 and a plane length of 2227456 bytes
   'CP_L'     pgcode of 0x02 and a plane length of 1601600 bytes.
   'Card'     pgcode of 0x03 and a plane length of  698880 bytes.

   pg2 is 0x00 for all media types except for 'Card', which is 0x01.

   Readback values seen:

   02 00 00 00 [pg] 00 [pg2] [xx] 00 00 00 00   [idle, waiting for init seq]
   03 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00   [init complete, ready for Y]
   04 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00   [? paper loaded]
   05 00 01 00 [pg] 00 [pg2] [xx] 00 00 00 00   [? transitions to this]
   06 00 03 00 [pg] 00 [pg2] [xx] 00 00 00 00   [ready for M]
   08 00 03 00 [pg] 00 [pg2] [xx] 00 00 00 00   [? transitions to this]
   09 00 07 00 [pg] 00 [pg2] [xx] 00 00 00 00   [ready for C]
   09 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [? transitions to this]
   0b 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [? transisions to this]
   0c 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [? transitions to this]
   0f 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [? transitions to this]
   13 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [? transitions to this]
   02 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [back to idle, waiting for init seq]

   [xx] can be 0x00 or 0xff, depending on if a print job has completed or not.

   14 00 00 00 [pg] 00 [pg2] 00 00 00 00 00   [out of paper/ink]
   14 00 01 00 [pg] 00 [pg2] 00 01 00 00 00   [out of paper/ink]

   [pg] is:  0x01 for P-paper
             0x03 for C-paper

   [pg2] is: 0x00 for P-paper
             0x01 for C-paper (label)
*/

/* 

 Selphy ES3/30:

   Init func:   40 00 [pgcode] [type]  00 00 00 00  00 00 00 00 [length, 32-bit LE]
   Plane func:  40 01 [plane] 00  00 00 00 00  00 00 00 00 

   End func:    40 20 00 00  00 00 00 00  00 00 00 00

   Type codes are 0x00 for Color papers, 0x01 for B&W papers.

   Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
   B&W Jobs have a single plane code of 0x01.

   'P' papers pgcode of 0x01 and a plane length of 2227456 bytes.
   'CP_L'     pgcode of 0x02 and a plane length of 1601600 bytes.
   'Card'     pgcode of 0x03 and a plane length of  698880 bytes.

   Readback values seen with standard 'P-Color' and 'C-Label' cartridges:

   00 ff 00 00 ff ff ff ff 00 00 00 00   [idle, waiting for init seq]
   01 ff 01 00 ff ff ff ff 00 00 00 00   [init complete, ready for Y]
   03 ff 01 00 ff ff ff ff 00 00 00 00   [?]
   03 ff 02 00 ff ff ff ff 00 00 00 00   [ready for M]
   05 ff 02 00 ff ff ff ff 00 00 00 00   [?]
   05 ff 03 00 ff ff ff ff 00 00 00 00   [ready for C]
   07 ff 03 00 ff ff ff ff 00 00 00 00   [?]
   0b ff 03 00 ff ff ff ff 00 00 00 00   [?]
   13 ff 03 00 ff ff ff ff 00 00 00 00   [?]
   00 ff 10 00 ff ff ff ff 00 00 00 00   [done, ready for footer]

*/

/* 

 Selphy ES40:   (May be supported if necessary)

   Init func:   40 00 [pgcode] [type]  00 00 00 00  00 00 00 00 [length, 32-bit LE]
   Plane func:  40 01 [plane] 00  00 00 00 00  00 00 00 00 

   End func:    40 20 00 00  00 00 00 00  00 00 00 00

   Type codes are 0x00 for Color papers, 0x01 for B&W papers.

   Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
   B&W Jobs have a single plane code of 0x01.

   'P' papers pgcode of 0x00 and a plane length of 2227456 bytes.
   'CP_L'     pgcode of 0x01 and a plane length of 1601600 bytes.
   'Card'     pgcode of 0x02 and a plane length of  698880 bytes.

   Readback codes are unknown.

*/

/* 

 Selphy CP790:   (May be supported if necessary)

   Init func:   40 00 [pgcode] 00  00 00 00 00  00 00 00 00 [length, 32-bit LE]
   Plane func:  40 01 [plane] 00  00 00 00 00  00 00 00 00 

   End func:    40 20 00 00  00 00 00 00  00 00 00 00

   Plane codes are 0x01, 0x02, 0x03 for Y, M, and C, respectively.
   B&W Jobs have a single plane code of 0x01.

   'P' papers pgcode of 0x00 and a plane length of 2227456 bytes.
   'CP_L'     pgcode of 0x01 and a plane length of 1601600 bytes.
   'Card'     pgcode of 0x02 and a plane length of  698880 bytes.
   'Wide'     pgcode of 0x03 and a plane length of 2976512 bytes.

   Readback codes are unknown.

*/

/*

 Selphy CP-XXX (except for CP-790):
 
   Init func:   40 00 00 [pgcode] 00 00 00 00 00 00 00 00
   Plane func:  40 01 00 [plane] [length, 32-bit LE] 00 00 00 00 

   plane codes are 0x00, 0x01, 0x02 for Y, M, and C, respectively.

   'P' paper     pgcode 0x01   plane length 2227456 bytes.
   'CP_L'        pgcode 0x02   plane length 1601600 bytes.
   'Card' paper  pgcode 0x03   plane length  698880 bytes.
   'Wide' paper  pgcode 0x04   plane length 2976512 bytes.

   Known readback values from a SELPHY CP-760:

   01 00 00 00 00 00 [pg] 00 00 00 00 00   [idle, waiting for init]
   02 00 00 00 70 00 [pg] 00 00 00 00 00   [waiting for Y data]
   04 00 00 00 00 00 [pg] 00 00 00 00 00   [waiting for M data]
   08 00 00 00 00 00 [pg] 00 00 00 00 00   [waiting for C data]
   10 00 00 00 00 00 [pg] 00 00 00 00 00   [?]
   20 00 00 00 00 00 [pg] 00 00 00 00 00   [?]

   'P'    paper has a code of 0x11
   'CP_L' paper has a code of 0x22

   Readback codes for other paper types are unknown.

*/