2012-10-28 11:18:29 -04:00
|
|
|
***************************************************************************
|
2012-10-26 22:18:27 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Unified Gutenprint/CUPS backend for various Dye-Sublimation photo printers
|
2012-10-28 11:18:29 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Copyright (c) 2007-2014 Solomon Peachy <pizza@shaftnet.org>
|
|
|
|
|
|
|
|
This free software comes with ABSOLUTELY NO WARRANTY!
|
|
|
|
Licensed under the GNU GPL, see the 'COPYING' file for more details.
|
2012-10-28 11:18:29 -04:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
The latest version can be found at
|
2012-10-28 11:18:29 -04:00
|
|
|
|
2013-08-20 20:10:21 -04:00
|
|
|
http://git.shaftnet.org/cgit/selphy_print.git
|
2013-07-08 11:44:06 -04:00
|
|
|
|
|
|
|
For a list of known bugs and development plans, see:
|
|
|
|
|
|
|
|
http://bugs.shaftnet.org/index.php?project=4
|
2012-10-28 11:18:29 -04:00
|
|
|
|
|
|
|
***************************************************************************
|
2014-02-09 07:49:33 -05:00
|
|
|
|
|
|
|
If you do not have one of the printers listed below, this backend is
|
|
|
|
not relevant for you and you can just ignore all of this.
|
|
|
|
|
2014-01-16 18:39:20 -05:00
|
|
|
Supported Printers:
|
2013-07-18 21:23:34 -04:00
|
|
|
|
|
|
|
Canon SELPHY ES series
|
2014-01-30 08:49:22 -05:00
|
|
|
Canon SELPHY CP series (except CP520, CP820, and CP910)
|
2013-07-18 21:23:34 -04:00
|
|
|
Kodak Professional 1400
|
2013-11-20 21:35:17 -05:00
|
|
|
Kodak 605 Photo Printer
|
2013-07-18 21:23:34 -04:00
|
|
|
Kodak 805 Photo Printer
|
|
|
|
Kodak 6800 Photo Printer
|
2013-07-26 21:36:24 -04:00
|
|
|
Kodak 6850 Photo Printer
|
2013-12-14 20:55:37 -05:00
|
|
|
Shinko CHC-S2145 (aka "Sinfonia S2")
|
2013-07-18 21:23:34 -04:00
|
|
|
Sony UP-DR150
|
2014-02-01 07:08:36 -05:00
|
|
|
Sony UP-DR200
|
2014-02-04 19:24:20 -05:00
|
|
|
DNP DS40/DS80/DS-RX1
|
|
|
|
Citizen CX/CX-W/CY
|
2013-12-14 20:55:37 -05:00
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
Work-in-progress printers (untested/partial support present)
|
2013-12-14 20:55:37 -05:00
|
|
|
|
|
|
|
Mitsubishi CP-D70DW, CP-D707DW and CP-K60DW
|
2014-02-04 19:24:20 -05:00
|
|
|
Citizen CW-01/OP900/CW-02/OP900II
|
2014-02-01 13:33:37 -05:00
|
|
|
Olmec OP900
|
|
|
|
ICI Imagedata OP900
|
2014-02-03 19:31:33 -05:00
|
|
|
Mitsubishi CP-3800DW
|
2012-11-22 22:23:05 -05:00
|
|
|
|
2014-01-16 18:39:20 -05:00
|
|
|
***************************************************************************
|
|
|
|
|
|
|
|
This intelligent backend is needed to utilize many common dye-sublimation
|
|
|
|
photo printers under Linux, OSX, and other UNIX-like operating systems.
|
|
|
|
|
|
|
|
Although these printers advertise themselves as standard USB Printer Class
|
2014-02-09 07:49:33 -05:00
|
|
|
devices, they do not actually obey those specifications and require
|
|
|
|
special two-way handshaking in order to successfully print.
|
2014-01-17 21:24:18 -05:00
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
This backend can only be used in conjunction with Gutenprint 5.2.10 or
|
2014-02-11 09:53:34 -05:00
|
|
|
newer. Please see the Gutenprint README file (section II D) for more
|
2014-04-04 15:14:10 -04:00
|
|
|
information on use of this backend and integration into CUPS.
|
2014-02-09 07:49:33 -05:00
|
|
|
|
|
|
|
Although this backend is bundled with Gutenprint, this repository is
|
|
|
|
considered the canonical upstream source where all development occurs.
|
2014-02-11 09:53:34 -05:00
|
|
|
As such, when compared to the current Gutenprint release, the code found
|
|
|
|
here is often newer, with additional features or device support. At the
|
|
|
|
same time, it may have half-developed features that don't quite work,
|
|
|
|
with giant bugs that come out at midnight to eat your cat.
|
|
|
|
|
|
|
|
On that note, please keep in mind that this software distributed
|
|
|
|
in the hope that it will be useful, but WITHOUT ANY WARRANTY WHATSOEVER.
|
2014-01-16 18:39:20 -05:00
|
|
|
|
|
|
|
***************************************************************************
|
|
|
|
|
|
|
|
This backend also supports a "standalone" mode that performs various
|
2014-02-09 07:49:33 -05:00
|
|
|
utility functions for selected printers, such as querying status and
|
|
|
|
configuring various parameters. The exact commands supported for each
|
|
|
|
printer are documented below.
|
2014-01-16 18:39:20 -05:00
|
|
|
|
2012-11-13 16:32:53 -05:00
|
|
|
***************************************************************************
|
2013-06-30 12:48:46 -04:00
|
|
|
Compilation:
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2014-03-11 11:10:22 -04:00
|
|
|
This tool requires libusb 1.0 to build. We highly recommend
|
|
|
|
v1.0.16 or newer due to general stability improvements. Versions
|
|
|
|
older than 1.0.10 will require -DLIBUSB_PRE_1_0_10 to be defined
|
|
|
|
(see the Makefile).
|
|
|
|
|
|
|
|
To further complicate things, libusb-1.0 had a temporary fork called
|
|
|
|
libusbx, but that was merged back into libusb as of v1.0.18.
|
|
|
|
Consequently, your distribution package for libusb-1.0 may be
|
|
|
|
called libusbx instead.
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2013-06-30 12:48:46 -04:00
|
|
|
Fedora/RedHat:
|
2014-03-11 11:10:22 -04:00
|
|
|
yum install libusbx-devel libusb1-devel
|
2013-06-30 12:48:46 -04:00
|
|
|
Debian/Ubuntu
|
2014-03-11 11:10:22 -04:00
|
|
|
apt-get install libusbx-dev libusb-1.0-0-dev
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2013-06-30 12:48:46 -04:00
|
|
|
And all you need to do after that is type 'make'
|
2012-11-13 16:32:53 -05:00
|
|
|
|
|
|
|
***************************************************************************
|
2013-06-30 12:48:46 -04:00
|
|
|
CUPS backend usage:
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
DEVICE_URI=someuri \
|
2014-01-22 08:35:12 -05:00
|
|
|
gutenprint52+usb job-id user title num-copies options [ filename ]
|
2013-07-18 21:23:34 -04:00
|
|
|
|
2012-11-13 16:32:53 -05:00
|
|
|
***************************************************************************
|
2013-06-30 12:48:46 -04:00
|
|
|
Standalone usage:
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
This backend is set up as a multi-call executable; that is to say
|
|
|
|
behaivor changes based on the name used to invoke the executable.
|
|
|
|
When compiled, a set of symlinks are created, corresponding to each
|
|
|
|
of the internal backends. Alternatively you may set the BACKEND
|
2014-02-11 09:53:34 -05:00
|
|
|
environment variable to force a specific backend to be used. These
|
|
|
|
commands are all equivalent:
|
2013-07-18 21:23:34 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
BACKEND=backend gutenprint52+usb [ arguments ]
|
|
|
|
gutenprint52+usb -B backend [ arguments ]
|
|
|
|
backend [ arguments ]
|
2013-07-18 21:23:34 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
All backends support the following invocations:
|
2013-07-18 21:23:34 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
backend [ arguments ]
|
2014-02-11 09:53:34 -05:00
|
|
|
backend [ arguments ] filename
|
|
|
|
backend [ arguments ] - < filename
|
|
|
|
somecommand | backend [ arguments ] -
|
2012-11-13 16:32:53 -05:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
The 'filename' here refers to the raw spool data generated by
|
|
|
|
Gutenprint (eg via its gimp plugin) or the Windows print-to-file
|
|
|
|
output.
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
Extra debugging output can be enabled by setting the DYESUB_DEBUG
|
|
|
|
environment variable or passing the '-D' argument on the command line.
|
2013-12-11 07:49:57 -05:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
If you have multiple models of the same printer family connected
|
|
|
|
simultaneously, the backend will choose the first one it finds. If you
|
|
|
|
wish to target a specific device, you may specify its serial number
|
|
|
|
in the 'DEVICE' environment variable or by passing the '-S serialnum'
|
2014-02-11 09:53:34 -05:00
|
|
|
argument on the command line. For example, these are equivalent:
|
2013-07-17 19:47:47 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
DEVICE=N782 backend filename [ arguments ]
|
|
|
|
backend -S N782 filename [ arguments ]
|
2013-07-17 19:47:47 -04:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
All backends support an additional operational mode, to test out
|
|
|
|
unknown models. To use this mode, specify the VID, PID and its
|
2014-02-11 09:53:34 -05:00
|
|
|
internal device type as arguments or environment variables:
|
2013-07-18 00:09:59 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
EXTRA_VID=04a9 EXTRA_PID=3ab1 EXTRA_TYPE=7 backend filename
|
|
|
|
backend -V 04a9 -P 3ab1 -T 7 filename
|
2013-07-18 00:09:59 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
The VID and PID are specified in hexidecimal, and the TYPE is
|
2014-02-11 09:53:34 -05:00
|
|
|
the P_XXX enumeration defined in backend_common.h. The '7' in this
|
|
|
|
example corresponds to most Canon SELPHY CP models, and is what you
|
|
|
|
would use if you were trying to get the backend to detect an
|
|
|
|
otherwise unrecognized SELPHY CP model (eg the CP520, CP820, or CP910).
|
|
|
|
If you are able to successfuly print using this technique, please let
|
2014-02-10 20:10:36 -05:00
|
|
|
us know so we can add the apppriate entry to the internal database.
|
2013-07-18 00:09:59 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Finally, some backends support additional arguments; see below:
|
2013-07-17 19:47:47 -04:00
|
|
|
|
2013-06-30 12:48:46 -04:00
|
|
|
***************************************************************************
|
2013-07-18 21:23:34 -04:00
|
|
|
BACKEND=canonselphy
|
2013-06-30 12:48:46 -04:00
|
|
|
|
|
|
|
Verified supported printers:
|
|
|
|
|
2014-01-29 19:54:10 -05:00
|
|
|
ES1, ES2, ES3, ES30, ES40, CP-10, CP-100, CP-200, CP-300, CP-330,
|
|
|
|
CP400, CP500, CP510, CP710, CP720, CP730, CP740, CP750, CP760, CP770,
|
|
|
|
CP780, CP790, CP800, CP900
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Unverified/untested, but should work: (let us know, please!)
|
2013-06-30 12:48:46 -04:00
|
|
|
|
|
|
|
ES20, CP-220, CP530, CP600, CP810
|
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
NOT currently supported by libusb backend: (USB PIDs unknown)
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2014-01-30 08:49:22 -05:00
|
|
|
CP520, CP820, CP910
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
This backend does not support additional commands.
|
2013-07-08 11:42:36 -04:00
|
|
|
|
2013-06-30 12:48:46 -04:00
|
|
|
***************************************************************************
|
2013-07-18 21:23:34 -04:00
|
|
|
BACKEND=kodak1400
|
|
|
|
|
|
|
|
Verified supported printers:
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
Kodak 1400
|
|
|
|
Kodak 805
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2013-07-08 20:45:46 -04:00
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-C filename Set tone curve [1]
|
2013-07-08 20:45:46 -04:00
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
[1] Format of curvedata file:
|
|
|
|
|
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
|
|
|
Values are unsigned 16-bit big endian, between 0 and ???
|
|
|
|
(unsure as to the bit usage)
|
|
|
|
|
2013-06-30 12:48:46 -04:00
|
|
|
***************************************************************************
|
2013-07-18 21:23:34 -04:00
|
|
|
BACKEND=kodak6800
|
2013-06-30 12:48:46 -04:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
Verified supported printers:
|
|
|
|
|
|
|
|
Kodak 6800
|
|
|
|
Kodak 6850
|
2013-07-08 11:42:36 -04:00
|
|
|
|
2013-07-08 21:59:51 -04:00
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-c filename Query tone curve [1]
|
|
|
|
-C filename Set tone curve [1]
|
2014-04-12 12:41:09 -04:00
|
|
|
-m Query supported media
|
2013-07-08 21:59:51 -04:00
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
[1] Format of curvedata file:
|
|
|
|
|
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
2013-07-08 22:17:22 -04:00
|
|
|
Values are unsigned 16-bit big endian, between 0 and 16383
|
|
|
|
(ie 14-bit)
|
2013-07-08 21:59:51 -04:00
|
|
|
|
2013-11-20 21:35:17 -05:00
|
|
|
***************************************************************************
|
|
|
|
BACKEND=kodak605
|
|
|
|
|
2013-11-24 11:01:44 -05:00
|
|
|
Verified supported printers:
|
2013-11-20 21:35:17 -05:00
|
|
|
|
|
|
|
Kodak 605
|
|
|
|
|
2013-11-21 09:30:50 -05:00
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-C filename Set tone curve [1]
|
|
|
|
-m Query supported media (not fully decoded)
|
|
|
|
-s Query printer status (not fully decoded)
|
2013-11-24 11:01:44 -05:00
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
[1] Format of curvedata file:
|
|
|
|
|
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
|
|
|
Values are unsigned 16-bit big endian, between 0 and ???
|
|
|
|
(unsure as to the bit usage)
|
2013-11-20 21:35:17 -05:00
|
|
|
|
2013-07-08 11:42:36 -04:00
|
|
|
***************************************************************************
|
2013-07-18 21:23:34 -04:00
|
|
|
BACKEND=shinkos2145
|
2013-07-08 11:42:36 -04:00
|
|
|
|
2013-07-18 21:23:34 -04:00
|
|
|
Verified supported printers:
|
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Shinko CHC-S2145 (aka "Sinfonia S2")
|
2013-07-08 11:42:36 -04:00
|
|
|
|
|
|
|
Development was sponsored by:
|
|
|
|
|
|
|
|
LiveLink Technology [ www.livelinktechnology.net ]
|
|
|
|
|
|
|
|
In order to use this backend, you will need to ensure the printer is
|
|
|
|
configured to use the 'DRV' (as opposed to 'DLL') operating mode. See
|
2013-07-14 17:37:48 -04:00
|
|
|
the printer documentation for details on how to set this.
|
2013-07-08 11:42:36 -04:00
|
|
|
|
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-b [ 0 | 1 ] Disable or Enable the printer control panel.
|
|
|
|
-c filename Query User tone curve from flash [1]
|
|
|
|
-C filename Store User tone curve in flash [1]
|
|
|
|
-e Query Error log
|
|
|
|
-f Enable Fast return from prints [2]
|
|
|
|
-F Flash printer LEDs for 5 seconds
|
|
|
|
-i Query printer firmware information
|
|
|
|
-l filename Query Current tone curve from RAM [1]
|
|
|
|
-L filename Store Current tone curve in RAM [1]
|
|
|
|
-m Query media information
|
|
|
|
-r Reset User tone curve to default [4]
|
|
|
|
-R Reset printer to factory defaults
|
|
|
|
-s Query printer status
|
|
|
|
-u Query user string
|
|
|
|
-U somestring Set user string to 'somestring'
|
|
|
|
-X id Cancel print job 'id' [3]
|
2013-07-08 11:42:36 -04:00
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
[1] Format of curvedata file:
|
2013-07-08 11:42:36 -04:00
|
|
|
|
2013-09-30 08:07:35 -04:00
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
2013-07-08 20:15:39 -04:00
|
|
|
Values are unsigned 16-bit big endian, between 0 and 2047
|
|
|
|
(ie only 11 bits used)
|
2013-07-08 11:42:36 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
[2] This terminates the backend as soon as the printer has acknowledged
|
2013-09-30 08:07:35 -04:00
|
|
|
the print job, without waiting for the print job to complete.
|
|
|
|
This can also be enabled by setting the 'FAST_RETURN' environment
|
2014-02-09 07:49:33 -05:00
|
|
|
variable. This is the default behavior when using this backend
|
|
|
|
with CUPS.
|
2013-09-30 08:07:35 -04:00
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
[3] Job ID is the Internal Job ID (reported via status)
|
|
|
|
This cancels a multi-copy print job.
|
|
|
|
To see which jobs are active/pending, see the output of the
|
2014-04-04 15:14:10 -04:00
|
|
|
'-s' command, specifically the 'Bank' output.
|
2014-02-10 20:10:36 -05:00
|
|
|
|
|
|
|
[4] Default printer tone curve is a linear 'val << 3'
|
|
|
|
|
2013-07-14 17:47:11 -04:00
|
|
|
***************************************************************************
|
2013-07-18 21:23:34 -04:00
|
|
|
BACKEND=sonyupdr150
|
|
|
|
|
|
|
|
Verified supported printers:
|
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Sony UP-DR150
|
2013-10-16 21:46:53 -04:00
|
|
|
Sony UP-DR200
|
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
This backend does not support additional commands.
|
2013-10-05 09:55:29 -04:00
|
|
|
|
|
|
|
***************************************************************************
|
|
|
|
BACKEND=mitsu70x
|
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
NOTE: We are looking for someone to help test this backend, as it has
|
|
|
|
received no testing whatsoever.
|
2013-12-13 15:43:30 -05:00
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
Supported but untested printers:
|
2013-10-05 09:55:29 -04:00
|
|
|
|
|
|
|
Mitsubishi CP-D70DW
|
|
|
|
Mitsubishi CP-D707DW
|
2013-12-03 22:20:27 -05:00
|
|
|
Mitsubishi CP-K60DW-S
|
|
|
|
|
2013-10-05 11:52:37 -04:00
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-s Query printer status (Only partially decoded)
|
2013-12-10 21:53:17 -05:00
|
|
|
|
|
|
|
***************************************************************************
|
|
|
|
BACKEND=dnpds40
|
|
|
|
|
2013-12-17 08:31:45 -05:00
|
|
|
Verified supported printers:
|
2013-12-10 21:53:17 -05:00
|
|
|
|
|
|
|
DNP DS40
|
|
|
|
DNP DS80
|
2014-02-04 19:24:20 -05:00
|
|
|
DNP DS-RX1
|
|
|
|
Citizen CX
|
|
|
|
Citizen CX-W
|
|
|
|
Citizen CY
|
2014-01-31 19:55:47 -05:00
|
|
|
|
2014-02-11 09:53:34 -05:00
|
|
|
Work-in-progress printers: (USB PIDs unknown)
|
2014-01-31 19:55:47 -05:00
|
|
|
|
2014-02-04 19:24:20 -05:00
|
|
|
Citizen CW-01/OP900/CW-02/OP900II
|
2014-02-03 19:31:33 -05:00
|
|
|
Olmec OP900
|
|
|
|
ICI Imagedata OP900
|
|
|
|
Mitsubishi CP-3800DW
|
2013-12-10 21:53:17 -05:00
|
|
|
|
2013-12-17 08:31:45 -05:00
|
|
|
Development was sponsored by:
|
|
|
|
|
2014-01-31 19:55:47 -05:00
|
|
|
Marco Di Antonio and [ ilgruppodigitale.com ]
|
2013-12-17 08:31:45 -05:00
|
|
|
|
2013-12-10 21:53:17 -05:00
|
|
|
This backend supports additional commands:
|
|
|
|
|
|
|
|
dnpds40 [command [arg] ]
|
|
|
|
|
|
|
|
Valid commands:
|
|
|
|
|
2014-02-10 20:10:36 -05:00
|
|
|
-i Query printer information (resolution, etc)
|
|
|
|
-n Query printer counters
|
|
|
|
-N [ A | B | M ] Reset Counter A/B/M
|
|
|
|
-p num Set 'P' counter to 'num'
|
|
|
|
-s Query printer status
|
2014-01-29 19:54:10 -05:00
|
|
|
|
2014-02-09 07:49:33 -05:00
|
|
|
***************************************************************************
|