CUPS Dyesub Backends

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

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

Unknown USB IDs.

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

Without it, we can't add support.

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.

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

CP-220 is supported but untested.

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

CP530 is supported but untested.

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

CP600 is supported but untested

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

CP810 is supported but untested.

 484 Bug ReportCanon Selphy CP/ES CP-10 hangs after first print Closed2014-01-28 Task Description

Not sure why. Perhaps a USB sniff under Windows would be helpful.

 499 Feature RequestCanon Selphy CP/ES Better error detection & handling Closed2014-01-30 Task Description

The remaining chunk of the patch set Ake Koomsin sent over considerably improves error detection, handling, and recovery from the CP-XXX handler. (The other models are TBD)

Wade through the patch set to make sure everything relevant is integrated.

(FWIW, this is a lot easier now that the backend is unified; it simplified the code quite a bit)

 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.

 526 Bug ReportCanon Selphy CP/ES CP900 not printing properly. Closed2014-10-30 Task Description

it prints the first page successfully, then keels over.

 545 Bug ReportCanon Selphy CP/ES Figure out how to make the CP820/CP910/CP1000/CP1200 ac ...Closed2017-04-21 Task Description

It would be *really* nice if we could figure out a way to ditch the component Y'CbCr output and use native YMC, but it's likely that only Canon ultimately knows if that's possible, and how.

552Feature RequestCanon Selphy CP/ESWrite network backend for CPnP printersAssigned2016-12-22 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.

 553 Bug ReportCanon Selphy CP/ES Back-to-back CP1200 prints hang the printer Closed2016-12-03 Task Description

User repors that back-to-back prints cause the printer to hang.  This is with the stock USB backend that relies on standard flow control.

Fixing this will first require printing stuff back-to-back under Windows and sniffing it to see if there's any flow control in use.  Bleh

 554 Feature RequestCanon Selphy CP/ES Get USB IDs for Canon SELPHY CP820 Closed2017-03-27 Task Description

They're needed by the 'canonselphyneo' backend, and I've been unsuccessful in scrounging them up. 

580Bug ReportCanon Selphy CP/ESDetect when on battery power and handle it gracefullyNew2017-04-11 Task Description

User reported the CP800 failed to print when on battery power, turns out one of the status fields changed causing us to fail.  I believe that's resovled for the older SELPHY CP models, but the newer ones (including the CP790) and the ES series are likely to have a similar problem.

Not sure what can be done about this without getting the battery and experimenting...

 581 Feature RequestCanon Selphy CP/ES Add status query to Canon Selphy backends Closed2018-01-04 Task Description

Query printer status -- eg loaded paper type, error codes, and whatnot.

The raw data is already there, but it would require a different code path to parse things for human output.

 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.

 494 Feature RequestCommon Code Improve detection to include printer status Closed2014-02-18 Task Description

When you have more than one printer in the system, how about ignoring the ones that are busy when trying to service a print job?

For printers that support multiple media types, it would be handy to be able to return which media the printer has loaded, so we
can more intelligently route print jobs.

This is probably beyond the scope of a CUPS backend, but may be handy for standalone operation.

Just a WIBNI.

 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.

 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:

 536 TODOCommon Code Consolidate Shinko backend code Closed2016-01-14 Task Description

Shinko S1245 and Kodak 68x0 (very closely related)

Shinko S2145
Shinko S6245
Shinko S6145 (sort of a special case due to the image library)

Kodak 605 (AKA Shinko S1545) (similar to S2145?)

And for those not yet written:

Brava 21 (AKA Shinko S6145!)
Kodak 8810 (AKA Shinko S1845) (similar to S6245?)
Kodak 70xx (AKA Shinko S1645)
Kodak D4000 (Aka Shinko DP-1045)

 546 Feature RequestCommon Code Extend Gutenprint's option infrastructure to allow for  ...Closed2016-09-09 Task Description

The work's done, but it's not merged yet.

 547 Feature RequestCommon Code Add printer icons to Gutenprint Closed2016-10-13 Task Description

*OPIcon Manufacturer: "...."

*OPIcon ModelName: "...."

The data is UUEncoded/Base64 64x64 PNG or an SVG image.


I see printers.xml gaining a reference to the image files, and the PPD generation code reading the image, encoding it, and shoving it into the PPD.  It's a minor thing, but nice to have.


 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.

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

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

...especially the printing started/finished stuff.


 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.

586TODOCommon CodeAdd JSON outputNew2017-11-24 Task Description

This might not be feasible in a general sense due to the need to interact with CUPS.  But it's worth investigating.

595Feature RequestCommon CodeWhen trying to enumerate printers, don't block for a lo...Assigned2018-02-16 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.

 597 Feature RequestCommon Code Allow for aliases in backend names? Closed2018-03-16 Task Description

That would allow us to present a 'modern' name for the backend but still provide backwards compatibility.

eg: dnpds40 -> dnp_citizen or mitsu9550 -> mitsu9xxx or mitsup95d->mitsu_p9x

Another approach would be to make things more fine-grained.


 507 TODODNP/Citizen Get USB IDs for Citizen OP900/OP900II Closed2016-07-17 Task Description

DNP DS80 and Mitsu 3800 are rebadged Citizen CX-W models. (8" wide media)

The others use 6" wide media:

DNP DS40 is a rebadged Citizen CX.
DNP DS-RX1 is a rebadged Citizen CY.
The Citizen CW-02/OP900II are updated CW-01/OP900.

The CY and its derivatives don't support 6x9 prints, but otherwise all of these printers are identical from a software perspective.

With the additions of their USB IDs to the backend, they are expected to JustWork!

We have:
DNP DS40 / Citizen CX
DNP DS80 / Citizen CX-W / Mitsubishi CP-3800DW
DNP DSRX1 / Citizen CY

Citizen CW-01 and Citizen CW-02

We need:
Citizen OP900/OP900II

 512 Feature RequestDNP/Citizen Enhance DS40/DS80 backend Closed2013-12-17 Task Description

There's now a backend for the DS40/DS80 that will handle things like multiple copies and whatnot.

Verify it works with both a DS40 and an DS80.

Enhance it so it properly reads the printer status, buffer state, and whatnot to ensure we're good to submit a new print job.

538Feature RequestDNP/CitizenAdd support for DS80DXRequires testing2016-06-28 Task Description

It has all the joy of the DS80, but also supports sheet-fed simplex and duplex operation. It's a veritable mess to support cleanly.

539TODODNP/CitizenConsolidate CW-01 and DNP backendsNew2018-03-17 Task Description

There's a great deal of overlap; the main difference is the format of the print job. It may make sense to fold the CW-01 stuff into the DNP backend (including the spool format), but alternatively perhaps just a shared library?

 544 Feature RequestDNP/Citizen Investigate and support new RX1HS Closed2016-10-07 Task Description

DNP's introduced the RX1HS to replace the RX1.  I'm told it's the same hardware, but requires different media.

Initial investigation shows it's added some features that were first introduced in the DS620.  (iSerial support, maybe more).  Backend changes will likely be minimal, but Gutenprint may require a tweak to expose any new features.

Further work will have to work until I get documentation or access to a printer.

596TODODNP/CitizenFigure out if Citizen CW-02/OP900II are closer to CX or...New2018-02-22 Task Description

...or if they need their own designation in Gutenprint and selphy_print.

It looks like they don't map entirely cleanly to either for avialable print options, but the real question is the firmware version tests for features.

 485 Feature RequestKodak 1400/805 Add support for the Kodak 805 Closed2013-07-18 Task Description

The 805 uses an identical spool format as the 1400, and is phyiscally an updated model.

Obtain a sniff of a print under Windows, and update the backend to work as appropriate, or write a new spooler if the format is radically different.

 488 Feature RequestKodak 1400/805 Add support for setting tone curves Closed2013-10-18 Task Description

The raw format and command structure are already known. Add backend support for setting tone curves, not unlike what s2145 backend provides.

 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.

571Feature RequestKodak 605Check for error statuses in the Kodak 605 processing lo...New2017-03-23 Task Description

We don't check any error codes at all.  In part because I don't know what's an error and what isn't.  With access to a printer this would be a lot easier..

 486 Feature RequestKodak 6800/6850 Add support for Kodak 6850 Closed2013-07-27 Task Description

The Kodak 6850 uses an identical spool format. Somehow obtain sniffs of the printing sequence and update the spooler as necessary.

 492 Feature RequestKodak 6800/6850 Add support for setting tone curves Closed2013-10-18 Task Description

The Kodak 6800 is supported by Kodak's "visual profiler" tool; get a USB sniff of what it does and use that to add support to the backend.

 522 Feature RequestKodak 6800/6850 Better status reporting Closed2014-06-04 Task Description

Need to detect media type, number of remaining prints, error conditions, and whatever else is possible given our lack of documentation of the printer internals.

(Maybe decompiling the driver would help?)

 587 Feature RequestMagicard family Figure out Magicard Duplex and Mag-stripe encoding. Closed2017-12-16 Task Description

Support is in for basic stuff, but it's not clear how to proceed with Duplex and Mag-stripe stuffs.

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.

 589 Bug ReportMagicard family Fix 8bpp->6bpp color scaling Closed2018-01-04 Task Description

Right now we just shift the color data over by 2bits.  It looks like that's naive; it looks like we need some sort of gamma-aware 8->6 mapping on a per-channel basis.  This may require Gutenprint to spit out RGB data, and we perform the YMC conversion at the same time we apply gamma?  (not unlike the Mitsu D70 family..)

The printer's "gamma curve" settings don't seem to have any major effect.

It's also possible that my printer's head is just plain shot (there's already a bad row of pixels..), and that everything is actually fine.

 599 Feature RequestMagicard family Enhance Magicard driver to allow for different options  ...Closed2018-03-18 Task Description

At minimum, the overcoat hole is different on front vs back (eg smartcard vs magstripe).

Magstripe probably only belongs on the back, smartcard on the front.

Holokote and holopatch likely need to be different too.

 551 Feature RequestMitsubishi CP-9xxx family Add CP-9600, CP-9800, CP-9810 support to CP-9550 backen ...Closed2016-12-03 Task Description

They're all closely related, so this is the right thing to do.

565Feature RequestMitsubishi CP-9xxx familyCP-9600 family supposedly supports some sort of multicu...New2017-03-23 Task Description

This references a lot of firmware images, including 'Firmware CP9600 for 13x18,10x15(x2),11.5x15(x2).zip -- None of those sizes are covered in the current Gutenprint code.

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

Available keyboard shortcuts


Task Details

Task Editing