321 lines
9.1 KiB
Plaintext
321 lines
9.1 KiB
Plaintext
***************************************************************************
|
|
|
|
Unified Gutenprint/CUPS Backend for various Dye-Sublimation photo printers
|
|
|
|
(c) 2007-2013 Solomon Peachy <pizza@shaftnet.org>
|
|
|
|
The latest version can be found at
|
|
|
|
http://git.shaftnet.org/cgit/selphy_print.git
|
|
|
|
For a list of known bugs and development plans, see:
|
|
|
|
http://bugs.shaftnet.org/index.php?project=4
|
|
|
|
***************************************************************************
|
|
|
|
Known Supported Printers:
|
|
|
|
Canon SELPHY ES series
|
|
Canon SELPHY CP series
|
|
Kodak Professional 1400
|
|
Kodak 605 Photo Printer
|
|
Kodak 805 Photo Printer
|
|
Kodak 6800 Photo Printer
|
|
Kodak 6850 Photo Printer
|
|
Mitsubishi CP-D70x series
|
|
Shinko/Sinfonia CHC-S2145 (aka "S2")
|
|
Sony UP-DR150
|
|
DNP DS40/DS80
|
|
|
|
***************************************************************************
|
|
Compilation:
|
|
|
|
You will need libusbx to build this tool.
|
|
|
|
Fedora/RedHat:
|
|
yum install libusbx-devel
|
|
Debian/Ubuntu
|
|
apt-get install libusbx-dev
|
|
|
|
And all you need to do after that is type 'make'
|
|
|
|
***************************************************************************
|
|
CUPS backend usage:
|
|
|
|
The simple method is to use Gutenprint 5.2.10 or newer, which bundles
|
|
(possibly older versions of) this backend. Without Gutenprint to
|
|
rasterize the print data, this backend is useless.
|
|
|
|
The backend is called 'gutenprint+usb', and must be installed with 0700
|
|
file permissions and owned by root in order to function properly.
|
|
|
|
To install this backend for use with CUPS, simply type 'make install'.
|
|
|
|
You may need to restart CUPS afterwards.
|
|
|
|
DEVICE_URI=someuri \
|
|
gutenprint+usb job-id user title num-copies options [ filename ]
|
|
|
|
***************************************************************************
|
|
Standalone usage:
|
|
|
|
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
|
|
environment variable to force a specific backend to be used:
|
|
|
|
BACKEND=backend \
|
|
gutenprint [ args ]
|
|
|
|
(OR)
|
|
|
|
backend [ args ]
|
|
|
|
That said, all internal backends support these invocation options
|
|
|
|
backend filename
|
|
backend - < filename
|
|
somecommand | backend -
|
|
backend [ backend-specific-argument ]
|
|
|
|
The 'filename' here refers to the raw spool data generated by
|
|
Gutenprint (eg via its gimp plugin) or the Windows print-to-file
|
|
output.
|
|
|
|
If there is more than one device present that the backend handles,
|
|
the backend will choose the first supported device it finds. If you
|
|
wish to specify the specific device when operating in standalone
|
|
mode, set the 'DEVICE' environment variable to the target device's
|
|
serial number. For example:
|
|
|
|
DEVICE=N782 backend filename
|
|
|
|
All backends support an additional operational mode, to test out
|
|
unknown models. To use this mode, specify the VID, PID and its
|
|
type as environment variables. For example:
|
|
|
|
EXTRA_VID=04a9 EXTRA_PID=3ab1 EXTRA_TYPE=3 backend filename
|
|
|
|
EXTRA_VID is the USB VID, in hex
|
|
EXTRA_PID is the USB PID, in hex
|
|
EXTRA_TYPE is: 3 for SELPHY CP790
|
|
4 for SELPHY CP520 (or other CP-series model)
|
|
(See P_ANY enum in backend_common.h for more)
|
|
|
|
If you have a model the spooler doesn't recognize but it works with
|
|
a VID/PID/TYPE specification, please let me know via e-mail.
|
|
|
|
Finally, some backends may support additional arguments; see below:
|
|
|
|
***************************************************************************
|
|
BACKEND=canonselphy
|
|
|
|
Verified supported printers:
|
|
|
|
ES1, ES2, ES3, ES30, ES40, CP-100, CP-200, CP-300, CP-330, CP400,
|
|
CP500, CP510, CP710, CP720, CP730, CP740, CP750, CP760, CP770, CP780,
|
|
CP800, CP900
|
|
|
|
Unverified/untested, but should work:
|
|
|
|
ES20, CP-220, CP530, CP600, CP810
|
|
|
|
Semi-supported (has problems)
|
|
|
|
CP-10
|
|
|
|
NOT currently supported by libusb backend: (USB PIDs unknown)
|
|
|
|
CP520, CP790
|
|
|
|
This backend does not support additional commands
|
|
|
|
***************************************************************************
|
|
BACKEND=kodak1400
|
|
|
|
Verified supported printers:
|
|
|
|
Kodak 1400
|
|
Kodak 805
|
|
|
|
This backend supports additional commands:
|
|
|
|
kodak1400 [command [arg] ]
|
|
|
|
Valid commands:
|
|
|
|
-stc filename Set tone curve [1]
|
|
|
|
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)
|
|
|
|
***************************************************************************
|
|
BACKEND=kodak6800
|
|
|
|
Verified supported printers:
|
|
|
|
Kodak 6800
|
|
Kodak 6850
|
|
|
|
This backend supports additional commands:
|
|
|
|
kodak6800 [command [arg] ]
|
|
|
|
Valid commands:
|
|
|
|
-qtc filename Query tone curve [1]
|
|
-stc filename Set tone curve [1]
|
|
|
|
Notes:
|
|
|
|
[1] Format of curvedata file:
|
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
|
Values are unsigned 16-bit big endian, between 0 and 16383
|
|
(ie 14-bit)
|
|
|
|
***************************************************************************
|
|
BACKEND=kodak605
|
|
|
|
Verified supported printers:
|
|
|
|
Kodak 605
|
|
|
|
Valid commands:
|
|
|
|
-qs Query printer status (Not fully decoded yet)
|
|
-qm Query supported media (Not fully decoded yet)
|
|
-stc filename Set tone curve [1]
|
|
|
|
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)
|
|
|
|
***************************************************************************
|
|
BACKEND=shinkos2145
|
|
|
|
Verified supported printers:
|
|
|
|
Shinko/Sinfonia CHC-S2145 (aka "S2")
|
|
|
|
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
|
|
the printer documentation for details on how to set this.
|
|
|
|
This backend supports additional commands:
|
|
|
|
shinkos2145 [command [arg] ]
|
|
|
|
Valid commands:
|
|
|
|
-qs Query printer status
|
|
-qm Query media information
|
|
-qf Query firmware version
|
|
-qe Query Error log
|
|
-qu Query User String
|
|
-qtu filename Query User tone curve (stored in flash) [2]
|
|
-qtc filename Query Current tone curve (stored in RAM) [2]
|
|
-su somestring Set User String to 'somestring'
|
|
-stu filename Set User tone curve (stored in flash) [2]
|
|
-stc filename Set Current tone curve (stored in RAM) [2]
|
|
-pc id Cancel print job 'id' [1]
|
|
-fl Flash printer LEDs for five seconds.
|
|
-ru Reset User tone curve to default [3]
|
|
-rp Reset printer to factory defaults
|
|
-b1 Enable printer control panel buttons
|
|
-b0 Disable printer control panel buttons
|
|
-f Enable fast return [4]
|
|
|
|
Notes:
|
|
|
|
[1] 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
|
|
'-qs' command, specifically the 'Bank' output.
|
|
|
|
[2] Format of curvedata file:
|
|
|
|
256 entries each of Yellow, Magenta, Cyan mappings:
|
|
Values are unsigned 16-bit big endian, between 0 and 2047
|
|
(ie only 11 bits used)
|
|
|
|
[3] Default printer tone curve is a linear 'val << 3'
|
|
|
|
[4] This terminates the backend as soon as the printer has acknowledged
|
|
the print job, without waiting for the print job to complete.
|
|
This can also be enabled by setting the 'FAST_RETURN' environment
|
|
variable.
|
|
|
|
***************************************************************************
|
|
BACKEND=sonyupdr150
|
|
|
|
Verified supported printers:
|
|
|
|
Sony UP-DR150
|
|
|
|
Theoretically supportable printers: (Unknown USB PID)
|
|
|
|
Sony UP-DR200
|
|
|
|
This backend does not support additional commands
|
|
|
|
***************************************************************************
|
|
BACKEND=mitsu70x
|
|
|
|
Theoretically supported printers: (Untested)
|
|
|
|
Mitsubishi CP-D70DW
|
|
Mitsubishi CP-D707DW
|
|
|
|
Theoretically supportable printers: (Unknown USB PID)
|
|
|
|
Mitsubishi CP-K60DW-S
|
|
|
|
This backend supports additional commands:
|
|
|
|
mitsu70x [command [arg] ]
|
|
|
|
Valid commands:
|
|
|
|
-qs Query printer status (Not fully decoded yet)
|
|
|
|
***************************************************************************
|
|
BACKEND=dnpds40
|
|
|
|
Supported printers:
|
|
|
|
DNP DS40
|
|
DNP DS80
|
|
|
|
NOTE: This backend has **NOT** been tested with spooling operation, but
|
|
is known to work with various status/etc commands.
|
|
|
|
This backend supports additional commands:
|
|
|
|
dnpds40 [command [arg] ]
|
|
|
|
Valid commands:
|
|
|
|
-qs Query printer status
|
|
-qi Query printer info (media, resolution, etc)
|
|
-qc Query printer counters
|
|
-cca Clear 'A' Counter
|
|
-ccb Clear 'B' Counter
|
|
-ccm Clear 'M' Counter
|
|
-scp num Set 'P' Counter to 'num'
|