CUPS Dyesub Backends

This is my personal to-do list for printer-related tasks, encompassing both changes to Gutenprint ( and the CUPS backends (

IDTask TypeCategorySummary  descStatusLast Edited
 552 Feature RequestCanon Selphy CP/ES Write network backend for CPnP printers Closed2019-01-30 Task Description

The 'selphy_go' code showed how to detect CPnP models and send JPGs over to be printed..

Using the CP900, I discovered how to send raw YMC data over CPnP.  This means we can write a native CPnP CUPS+Gutenprint backend for that model.

Unfortunately we won't know if the newer selphyneo models support non-jpeg CPnP printing -- The Windows driver uses WSA/WSD and Macs appear to use AirPrint.  The only way to find out is to write it first.

537Feature RequestOther printersWrite backend for Shinko DP-1045 and Kodak D4000New2015-08-26 Task Description

They're the same thing, an 8" wide duplex printer. No support in Gutenprint yet.

 534 Feature RequestOther printers Write backend for S6145 Closed2015-12-06 Task Description

This is a sibling of the Mitsu D70 family, but differing in that it uses Shinko's own protocol that's similar to the other Shinko models.

It will need its own backend; however the backend needs to deal with color scaling/dithering. I have binary x86/x86_64 libraries that implement this algorithm, but that is not acceptible for use with GPL code.

535Feature RequestOther printersWrite backend for Kodak 8810 and 7000/7010/7015New2016-09-08 Task Description

The 8810 is also known as a Shinko CHC-S1845-5A.

It appears closer to the S1245 mechanically, but S6245 programically.

The 7000/7010/7015 models are Shinko CHC-S1645-5A/5B/5C, respectively.

Probably not worth wasting any time on unless someone steps up with docs and hardware.

 595 Feature RequestCommon Code When trying to enumerate printers, don't block for a lo ...Closed2019-01-17 Task Description

This is a particular problem when we have more than one model of the same printer family attached, and one or more of them are busy doing something -- but we can't query the serial number when the printer is claimed.

This may require a two pass approach -- first try to probe everything with minimal timeouts.  If we don't succeed in finding the one we want, re-try the probe with longer timeouts.  In both cases, we shouldn't report a failure until we finish walking the entire list.

 504 TODOMitsubishi CP-D70 family Verify support for the Mitsubishi CP-D70x printers Closed2014-09-29 Task Description

I have initial backend code written, but no idea if it works.

533TODOShinko CHC-S6245Verify support for S6245Requires testing2016-08-24 Task Description

Code complete, but needs testing.

 532 TODOShinko CHC-S1245 Verify support for S1245 Closed2018-01-27 Task Description

Code complete, but needs testing.

 506 TODOOther printers Verify support for Mitsubishi CP-9550 Closed2014-05-13 Task Description

Experimental support is present in Gutenprint, but it needs to be tested.

505TODOOther printersVerify support for Mitsubishi CP3020D/DA printersRequires testing2013-10-18 Task Description

Experimental support is in gutenprint, but this needs testing.

502TODOOther printersVerify support for Kodak 8500 and 9810/8800.Requires testing2016-08-18 Task Description

The 8500 is a rebadged Mitsubishi CP3020, but the 9810 and 8800 is unique.

Both need sniffs to determine if they need an intelligent spooler.

 487 TODOKodak 605 Verify support for Kodak 605 Closed2013-11-23 Task Description

The Kodak 605 is the successor of the 68x0 series. It uses a slightly different spool format.

If access to a '605 can be obtained, obtain a sniff and see about adding a backend.

 550 TODOMitsubishi CP-D70 family Verify support for D707 Closed2018-09-18 Task Description

Code's complete, but needs to be verified.


479TODOCanon Selphy CP/ESVerify ES20, CP-220, CP530, CP600, CP810Requires testing2014-01-30 Task Description

All are supposedly supported, but nobody's reported test results.

 483 TODOCanon Selphy CP/ES Verify CP810 Closed2014-01-30 Task Description

CP810 is supported but untested.

 482 TODOCanon Selphy CP/ES Verify CP600 Closed2014-01-30 Task Description

CP600 is supported but untested

 481 TODOCanon Selphy CP/ES Verify CP530 Closed2014-01-30 Task Description

CP530 is supported but untested.

 480 TODOCanon Selphy CP/ES Verify CP-220 Closed2014-01-30 Task Description

CP-220 is supported but untested.

 541 Feature RequestMitsubishi CP-D70 family Validate Mitsubishi CP-D90 support Closed2018-05-20 Task Description

It looks like it's an evolution of the D70 family, with one critical exception -- it appears as if the color/thermal compensation is performed in the printer instead of the driver!

561Feature RequestCommon CodeUse USB VID/PID instead of 'UNKNOWN' when we can't dete...New2017-03-12 Task Description

 493 Feature RequestShinko CHC-S2145 Use 'unique string' in lieu of serial number Closed2013-07-25 Task Description

The Shinko S2145 doesn't return a serial number in its USB descriptor. Unfortunately this means there is no way to distinguish between multiple printers on a single system.

The printer does have a user-configurable string; the backend allows for this to be queried and set. Perhaps we could add the ability to use this string in lieu of the serial number?

 604 Feature RequestCommon Code Use a simpler URI scheme Closed2018-09-18 Task Description

Currently the URI scheme is a little convoluted:


I'd like to move to something much simpler:


Now that the core code returns a unique, per-model string that can be used to look up the backend, this is a far simpler approach to take.  We'll have to support the old scheme indefinitely though.

 489 Feature RequestShinko CHC-S2145 Update s2145 'read tone' command to return binary blob Closed2013-07-09 Task Description

The 'read tone' command returns formatted, human-readable output. Fix this to use a similar binary blob as the 'write tone' command expects.

 497 TODOCommon Code Unify all backends into one. Closed2013-07-19 Task Description

We'll call it 'gutenprint+usb' or something like that, and it will handle all printers.

This means we'll have two independent invocation methods; when called via CUPS, we'll have a URI and will consequently know the spool format to match.

When called directly, we'll need to specify the printer type somehow (symlink and $0 detection?) and use that as a filter for printer format.

This has to be carefully planned. Sigh.

 603 Feature RequestMitsubishi MedSci Support using external LUT Closed2018-12-16 Task Description

The official drivers come with a file called 'P95D.lut' that consists of a 16-byte header followed by 34 bytes of LUT that neatly fit into the "gamma" header.  I see two approaches:

  1. Add another gamma enumeration, for "external LUT"
    • Have the backend read the file and fil the job at runtime
    • Permanently store the file in the backend, fill job at runtime
  2. Have Gutenprint fill in the gamma table from hardcoded value
  3. Allow gutenprint's gamma table to be overridden.

I'm thinking that pushing this into Gutenprint (hardcoded, but overridable via an option) is the right way to do this.

 517 Feature RequestCommon Code Support multi-page print jobs Closed2014-01-20 Task Description

The backends should handle multi-page jobs by splitting it into individual prints. This is presumably handled by concatenating multiple spool files together...

The entire structure of the backends are designed around single-page operation.

Many of the backends are smart enough to tell when a page ends, but some aren't. Extend the backend core so that it can handle this when the backend supports it.

563TODOCommon CodeSupport more printer attributesNew2018-02-16 Task Description

...especially the printing started/finished stuff.


 584 Feature RequestOther printers Support Magicard Card printers Closed2017-11-24 Task Description

A backend's in place that can read the printer status but it doesn't parse/send over jobs yet.  Still haven't figured out the image dara format.

602Feature RequestCommon CodeSupport combining print jobsAssigned2018-06-21 Task Description

As a way to prevent wasting media, when using 6x8" media, automagically combine consecutive 4x6" jobs to a single 8x6" print and submit that to the printer behind the scenes.

The D90 and Kodak 68xx do this automatically in the printer, and others (eg Mitsu D70 family) do this in the driver.

Extend the backend core to support this generically, and try to add specific support to printers/families that can use this feature.

556Feature RequestSony UR-DP150/200status queries and flow controlNew2016-12-19 Task Description

It would be really nice if we could figure out how to query the UP-DR200's printer status, media counts, flow control, etc etc.

573Feature RequestShinko CHC-S6145S6145: Have Gutenprint generate planar YMC directlyRequires testing2017-11-24 Task Description

That way the backend won't have to do the conversion, saving some processing overhead.

(Re-purpose an unused field in the header, and clear it afterwards.  Not unlike how the D70 backend does it!)

 574 TODOOther printers S6145 -- don't generate an OC layer if not needed Closed2017-03-30 Task Description

And don't bother sending it over unless it's a matte print.


Actually I think the library already handles this okay, but we still have to allocate the space and generate things regardless.  A waste of CPU cycles, but otherwise harmless.  Probably not worth doing without direct access.

 476 Bug ReportShinko CHC-S2145 s2145 hangs on subsequent requests Closed2013-07-16 Task Description

The first request succeeds, but subsequent requests hang when trying to talk to the printer.

I suspect what's going on here is that the response buffers we're posting are simply too small and the printer loses its mind.

 530 Feature RequestMitsubishi CP-D70 family Reverse-engineer color scaling/dithering algorithm Closed2016-10-07 Task Description

Mitsubishi CP-D70, D707, K60, D80, and their siblings (Kodak 305, Fuji ASK300) all rely on the driver to dither/scale their output data based on an unknown algorithm.

Figure out what this is, so that these printers can be properly supported.

588Bug ReportMagicard familyRegistration/Alignment issue with Black planeNew2018-01-04 Task Description

K extraction appears to work well, but when printing there's a registration problem.  The black layer appears to print several pixels higher than the color layers.

I'm not sure if this is something that needs a fixed offset applied, or is something that can vary printer-printer.

 518 Feature RequestCanon Selphy CP/ES Recover from Error conditions (ES models) Closed2014-03-12 Task Description

There's a special command the driver sends to clear the printer's error state.

We know this for the CP-series, but none of the ES-series.

The backend supports this just fine now, but we don't know how the ES models recover.

 562 Bug ReportMitsubishi CP-D70 family Quality problem with the D70 family image processing li ...Closed2017-03-19 Task Description

It's most obvious when printing something with a deep black; you'll see it bleed past a bit.

It's worse in Fine, better in SuperFine/UltraFine.


 559 TODOCommon Code Pull copy generation out of backend Closed2017-11-09 Task Description

Gutenprint 5.2.12 now supports generating multiple copies.  The backend shouldn't do it internally (nor should it print hte PAGE output)

 * Printers that have a copy count in the job header -- use the printjob number if it's >= the cmdline copy one.

 * Otherwise, backend should loop and generate copies.

 * If *not* invoked from within CUPS, print the PAGE output.

 523 Feature RequestCommon Code Proper media/ribbon status messages Closed2016-08-21 Task Description

CUPS has a standard reporting mechanism for attributes, including media/ribbon/etc levels. The general syntax is:

ATTR: foo=bar[,baz,etc]

There's also the notion of state that can be reported in a unified manner:

STATE: +media-empty [reasontext]
STATE: -media-empty


1) Altering backends to report media empty using this mechanism
2) Alter backends to report remaining media, if known, using this mechanism.

For further details:

 560 Bug ReportMitsubishi MedSci P95: Failure to parse printjob when 'clear memory' is e ...Closed2017-02-12 Task Description

The problem is that two commands of different length use the same 2-byte prefix.  To distinguish between them we'll need to read the third byte, but only in that case as there are some commands that are only 2 bytes.


Or re-architect the command parser to handle this without extra hacks.

 525 Bug ReportMitsubishi CP-D70 family Output on CP-D70 is way too dark Closed2015-07-23 Task Description

This suggests we need to apply a correction curve to the raw 16-bit data sent to the printer.

Uncertain if user was using the ICC profile.

Unfortunately it'll probably take some careful analysis of printing calibration targets to come up with an appropriate correction factor.

 478 TODOCanon Selphy CP/ES Need USB ID for SELPHY CP790 Closed2014-01-27 Task Description

Without it, we can't add support.

 477 TODOCanon Selphy CP/ES Need USB ID for SELPHY CP520 Closed2014-05-18 Task Description

Unknown USB IDs.

 531 Bug ReportMitsubishi CP-D70 family Mitsu K60 and Kodak305 don't work properly Closed2016-09-01 Task Description

There's something funky with the backend.

608TODOCommon CodeMake Gutenprint more cross-compile friendlyNew2019-01-17 Task Description

The problem is that, at compile time, we rely on some host-compiled stuff to generate data files and whatnot. We need to compile the same stuff for the target.

I wonder if it may be worth moving to a more unified Make environment..

 570 TODOCommon Code Iterate through all printer interfaces and altsettings  ...Closed2017-11-08 Task Description

We assume that the first interface/altsetting is what we need.  And, for that matter, that the first set of endpoints is what we want.

 511 Feature RequestMitsubishi CP-D70 family Investigate the Mitsibishi CP-K60DW Closed2015-07-23 Task Description

Outwardly it appears nearly identical to the CP-D70DW. Spec-wise it seems the same (even using the same media!) except for a lower print speed.

Find out if it speaks the same spool file format.

 528 Feature RequestMitsubishi CP-D70 family Investigate the CP-D80DW Closed2015-07-23 Task Description

At first blush it looks like the "professional" version of the K60DW-S with higher-speed operation.

Should be straightforward.

 491 TODOSony UR-DP150/200 Investigate Sony UP-DR200 Closed2014-02-03 Task Description

On the gutenprint mailing list, a user reported partial success using the UP-DP10 driver. They claimed it worked, except for the presence of margins.

No feedback yet if they had borderless turned on.

Investigate the windows spooler on this printer to see if the format is similar, and if so, just add an entry to gutenprint so we formally support this printer.

 495 TODOOther printers Investigate Sony UP-DR150 Closed2013-07-14 Task Description

We have a report of the UP-DR150 not working.

I'm working on obtaining sniffs so we can actually see what's going on. Maybe it'll need a backend too.

Showing tasks 1 - 50 of 111 Page 1 of 31 - 2 - 3 -

Available keyboard shortcuts


Task Details

Task Editing