Gutenprint / CUPS Dye-sublimation drivers

This is my personal to-do list for printer-related tasks, encompassing both Gutenprint (https://gimp-print.sourceforge.io/) development and CUPS backend work (https://git.shaftnet.org/gitea/slp/selphy_print.git)

ID Task Type Category Summary Status  desc Last Edited
 633 Feature RequestDNP/Citizen Support Panorama on DS620 and DS820 families Closed2023-12-29 Task Description

DS620 supports 6x14 and 6x20" prints, and DS820 supports 8x18/8x26 and 8x20/8x32 sizes.

 642 Bug ReportMitsubishi CP-Dxx family Faint yellow-ish bands visible on a predominantly white ...Closed2020-02-27 Task Description

Does not happen on the official Mac drivers, but Gutenprint + lib70x shows it.

Best guess is that we have an inverted sign or off-by-one error in a compensation function that's causing the yellow channel to not get scaled correctly.

 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.

 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.

 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.

 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.

 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?

 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.

 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.

 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.

 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?)

 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

So:

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:

https://www.cups.org/documentation.php/doc-1.7/api-filter.html#ATTR_STRINGS

 525 Bug ReportMitsubishi CP-Dxx 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.

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

it prints the first page successfully, then keels over.

 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.

 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.

 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.

 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.

 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.

 601 Feature RequestCommon Code Figure out a way to add a generic test harness for file ...Closed2018-05-13 Task Description

Right now there's no way to parse the input files without the printer being attached first.

Would require shimming libusb...

 602 Feature RequestCommon Code Support combining print jobs Closed2020-01-22 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.

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

Currently the URI scheme is a little convoluted:

     prefix://iManufacturer/iModel?backend=XXX&serial=YYYY

I'd like to move to something much simpler:

     prefix://backend/serial

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.

 612 TODOCommon Code Unify the various Shinko/Sinfonia backends Closed2019-05-25 Task Description

For the most part, the shinko/sinfonia printers are quite similar in how they operate. There are unfortunately differences in specific commands and how some of the fields in the headers are parsed.

So, now that the backend infrastructure is decoupled from the "model name", look into unifying:

  • Sinfonia S2145
  • Sinfonia S6145
  • Sinfonia S6245
  • Kodak 605

These two are different than the others, but close to each other:

  • Sinfonia S1245
  • Kodak 6800/6850

Meanwhile, these new models are likely similar to models in the first set:

  • Sinfonia 2245
  • Kodak 7000/7010/7015
  • Sinfonia 8145
  • Kodak 8810
  • Sinfonia DP-1045
  • Kodak D4000

What I expect to do is that when/if support for one or more of these new models is implemented, it will be bolted onto an existing backend, and that will be the basis for merging in the others.

 622 Feature RequestDNP/Citizen Support Windows Spool format for DNP printers Closed2019-07-16 Task Description

Gutenprint generates a spool file of native printer commands. The windows drivers use an intermediate format instead. To support folks printing from windows, the backend should support the windows spool format.

This will have to cover the RX1[HS], DS40, DS80, DS80DX, DS620, DS820.

 625 Feature RequestShinko CHC-S6245/ Kodak 8810 Support and Custom sizes and cuts on EK8810 Closed2019-12-12 Task Description

EK8810 supports arbitrary print sizes (up to media max) and full cutter control. See if it's feasible to export "custom" sizes, asymmetric sizes (eg 8x6+8x4 on 8x10 media), and maybe even allow the cutter to be directly controlled.

 490 TODOOther printers Investigate DNP-40/DNP-80 Closed2013-10-16
 494 Feature RequestCommon Code Improve detection to include printer status Closed2014-02-18
 499 Feature RequestCanon Selphy CP/ES Better error detection & handling Closed2014-01-30
 519 TODOOther printers Investigate Mitsubishi CP-W5000 Closed2018-01-26
 524 Feature RequestOther printers Figure out Mitsibishi CP-D9550's USB comms. Closed2015-07-23
 528 Feature RequestMitsubishi CP-Dxx family Investigate the CP-D80DW Closed2015-07-23
 529 Feature RequestOther printers Investigate Kodak 8800 Closed2016-10-18
 536 TODOCommon Code Consolidate Shinko backend code Closed2016-01-14
 545 Bug ReportCanon Selphy CP/ES Figure out how to make the CP820/CP910/CP1000/CP1200 ac ...Closed2017-04-21
 546 Feature RequestCommon Code Extend Gutenprint's option infrastructure to allow for  ...Closed2016-09-09
 547 Feature RequestCommon Code Add printer icons to Gutenprint Closed2016-10-13
 553 Bug ReportCanon Selphy CP/ES Back-to-back CP1200 prints hang the printer Closed2016-12-03
 555 Feature RequestMitsubishi MedSci Investigate Mistubishi P93 and P91 Closed2017-02-10
 561 Feature RequestCommon Code Use USB VID/PID instead of 'UNKNOWN' when we can't dete ...Closed2020-03-27
 563 TODOCommon Code Support more printer attributes Closed2020-03-27
 566 TODOMitsubishi CP-Dxx family Dig up firmware update package for CP-K60DW-S 1.04 Closed2017-07-19
 570 TODOCommon Code Iterate through all printer interfaces and altsettings  ...Closed2017-11-08
 574 TODOOther printers S6145 -- don't generate an OC layer if not needed Closed2017-03-30
 575 TODOOther printers Investigate Sony B&W Thermal MedSci models  Closed2019-03-26
 576 TODOMitsubishi MedSci Investigate P91DW Closed2019-11-17
 577 Feature RequestMitsubishi MedSci Add ability to query status from cmdline Closed2018-01-08
 581 Feature RequestCanon Selphy CP/ES Add status query to Canon Selphy backends Closed2018-01-04
 584 Feature RequestOther printers Support Magicard Card printers Closed2017-11-24
 586 TODOCommon Code Add JSON output Closed2019-12-13
 589 Bug ReportMagicard family Fix 8bpp->6bpp color scaling Closed2018-01-04
Showing tasks 101 - 150 of 172 Page 3 of 4

Available keyboard shortcuts

Tasklist

Task Details

Task Editing