The end of an era...(really)

After three nail-biting months and in the midst of a global pandemic, my old house in Melbourne is now officially Somebody Else's Problem(tm).

...I wish its new owners all the best.

Assuming the country doesn't collapse into a road-warrior-esque distopian hellscape by this summer, the majority of the proceeds will go towards completely paying off what I still owe on the Tick Farm.

DNP QW410 & Citizen CZ-01


This is landing more than a month later than I wanted (thanks, COVID-19) but I'm happy to finally announce that Gutenprint now has full support for the DNP QW410 and Citizen CZ-01 photo printers.

These are pretty sweet little cubes, well suited for event photography and other situations where portability is more important than raw speed.

You'll need to grab gutenprint out of git, or a snapshot (or release) dated after 2020-05-01.

Mitsubishi CP-M1 and other developments

Since my last update, a lot has landed in the wonderful world of dye sublimation printing, but I have this annoying habit of preferring to write more code than talk about it as I go along. C'est la vie...

New models added, and confirmed working:

  • Citizen CX-02W
  • Mitsubishi CP-M1
  • Sony UP-DR80MD
  • Stryker SDP1000

Models that have seen notable enhancements:

  • HiTi P520L / P525L
  • Mitsubishi CP-D70/D80/K60 family
  • Mitsubishi CP-D90DW
  • Mitsubishi CP-D9800DW / CP-D9810DW
  • DNP DS820

Other noteworthy bugfixes or enhancements:

  • More robust error handling
  • Use larger of CUPS or job-specified number of copies
  • Ability to restrict printer enumeration to a specific model
  • Build system improvements
  • Print combining (see below)
  • Standardized status query, in text or JSON format (see below)
  • Preliminary support for running backend under Windows

Further notes:

  • The Mitsubshi CP-M1 family, like most other recent Mitsubishi models, requires lib70x and data tables bundled with selphy_print. It is feature complete but detailed quality tests have not been performed, and sharpening has not been tested at all.
  • The Mitsubishi CP9800 family should now be usable, with all features implemented except for image sharpening, but remains completely untested. It also requires lib70x and its data tables.

Print combining:

When a printer is loaded with a larger media size (eg 6x8") but the user wants to print a smaller size (eg 4x6"), traditionally this has resulted in the unused portion of the dye ribbon being wasted. Some models are able to rewind the media so that the unused portion can be reused. Other models can automatically combine two prints into a larger panel, print them as one, then cut the panel in half at the end. The rest can do neither.

For models that allow sufficient control over their cutter, the backend can now automatically combine multiple prints to speed up printing and reduce ribbon waste. Here is the list of models that can utilize this backend feature, at least for some print size/media combinations:

  • All DNP models
  • Shinko/Sinfonia CS2/S6145 and Ciaat Brava 21
  • Mitsubishi D70/D707/D80, Kodak 305, and Fujifilm ASK300

This feature is enabled for multi-page and/or multi-copy print jobs, but due to limitations with the CUPS printjob model, it cannot combine prints between print jobs.

Status queries

Most models supported by the backend support some sort of media and status reporting. When available, this information is reported to CUPS via its standard marker attribute messages, but that is only updated when prints are made, and is also very limited in what information that can be returned.

While each backend family driver has already supported dumping pretty much everything a given printer reports, I had never defined a standard subset of information or a model-independent way to extract it. That has now finally changed. Here's an example of the output:

$ BACKEND=dnp-ds820 BACKEND_STATS_ONLY=2 ./dyesub_backend
        "backend": "DNP DS-series / Citizen C-series",
        "version": "0.105 / 0.132",
        "timestamp": "2020-03-17 21:19:58",
        "manufacturer": "Dai Nippon Printing",
        "model": "DS820A",
        "serial": "12345678",
        "firmware": "DS820A 01.05",
        "decks": {
                "Roll": {
                        "status": "Idle",
                        "mediatype": "8x10 SD",
                        "medialevel": "OK",
                        "medialevelnow": 95,
                        "medialevelmax": 110,
                        "counters": {
                                "lifetime": 162

At this point, more models than not support this generic query method:

  • All DNP / Citizen models
  • All Hiti models
  • Kodak 605 and 7000 series
  • Kodak 6800 series
  • Mitsubishi CP-D70/D707/D80/K60, Kodak 305, and Fujifilm ASK-300
  • All Shinko/Sinfonia models
  • Mitsubishi CP-D90 and CP-M1 family (partial)

Anyway. I'll try to be more diligent in posting new developments.

Comments, feedback, and material support welcome!

The end of an era...(almost)

Fifteen and a half years after I bought my house in Melbourne, and six and a half years after I rented it out, it's finally on the market.

1401 Holland St, Melbourne, FL 32935

Getting this place ready for sale has taken part of nearly every weekend since about Halloween, and is the main reason why I haven't had the time (or money) to get up to much of anything else for even longer. Hopefully someone out there is looking for a nice turnkey home in Melbourne with no pesky HOA!

New Year's Sunrise, 2020


Taken at the Guana Tolomato Matanzas National Estuarine Research Reserve, just north of St. Augustine, Florida.

2019 saw a lot of turmoil and upheaval. Here's to 2020 being a calmer year!

Is it supposed to look like that?

It's been a while since I've posted anything about the Tick Farm. The simple explanation is that very little work has been accomplished over the past two years, due to a lack of time and money.

I hope that will change just after the new year, when I finish getting my now-tenant-free Melbourne house fixed up and put on the market, freeing up a pile of capital and greatly improving my cash flow. My agent tells me it should sell pretty quickly.

In the mean time, last weekend I popped up there for the first time in three months, and encountered this:


The service line was completely tangled up in the downed tree, but thankfully the damage was isolated to the formerly-attached-to-the-pole conduit, which needed to be completely replaced.

The local power cooperative came out to kill the power so I could effect repairs, and two days, $30 worth of supplies, a great deal of cursing (punctuated by a severe bout of no-running-water assplosions) later, the county inspector signed off, SVEC hooked me back up, and the Tick Farm was returned to its half-completed, neglected glory.

The Melbourne house was intended to be on the market a month ago, but thanks to the time of year, it's been impossible to schedule painters, which is just as well as I've needed the time to effect a pile of necessary repairs. With luck, I'll complete all but one of them this weekend. The three hour drive each way is getting quite old though...

Hedging one's bets


There is a scene in The Mummy where Beni, confronted with the titular Mummy, cycles through prayers of multiple religions in an attempt to find the one that will work.

This sight, next to a porcelain throne at work, reminded me of that scene.

(Or maybe this post should be called Teach the Controversy?)

Toilet Paper Orientation - Wikipedia

HiTi P520L, working!


I'm happy to announce that I just committed support for the HiTi P520L to Gutenprint and the selphy_print backend repos. There's still some more work to be done to round out the feature set (eg the full complement of print sizes and job accounting), but it works well enough to generate properly corrected 4x6" prints.

As per tradition, I included the first successful print, and followed it up with a color chart to make sure the color correction was functional.

This was an independent implementation, using HiTi's "Open Source (All Rights Reserved)" driver, USB sniffs, and decompiled chunks of the Windows drivers as references.

Looking forward, the P525L, P720L, and P750L should work with only minimal additional effort, but their other models will require generally more work -- Despite HiTi's use of a consistent command language across most of their model line, they rely on host-supplied data tables and a lot of magic nubmers.

Consequently, additional models will require direct access to the specific printers (or at least detailed USB sniffs). Donations, hardware, and/or documentation welcome!

...onto the next bit of joy!

Update 2020/01/20: P520/P525 firmware v1.19-v1.21 fail to communicate under Linux. This affects HiTi's official drivers as well. v1.22 finally fixed the problem, but I was able to implement a workaround.

Kodak 7000/7010/7015 and 8810

I'm pleased to announce that the recent Gutenprint 5.3.3 release includes nearly-complete support for Kodak 7000/7010/7015 and 8810 printers. This effort has led to enhancements and bugfixes in other Sinfonia models, most notably the Kodak 605 and Sinfonia CE1/CHC-S6245, but all models have seen further robustness improvements.

I say 'nearly complete' because over the last couple of weeks, I've been enhancing their capabilities beyond the features exposed by their Windows drivers, notably:

  • Additional print sizes (eg multicut sizes on the 8810)
  • Backprinting support for the Kodak 7010/7015 models Note: completely untested, likely broken!


Last week I stumbled upon a major bug in Gutenprint's dyesub driver core. It's a very old bug, going back all the way to the beginning, resulting in an incorrect gamma curve being applied. It's now fixed, yielding visibly improved output, with better contrast and tonal range. It's win-win-win!

To get this fix you will need a post-5.3.3 release, snapshot, or compile the code out of revision control.

Be it so Humble...


After nearly two months of insanity, I'm happy to say that I've closed on this house outside of High Springs, Florida. It's on about 3/4 of an acre, nestled beneath mature hickory and water oaks.

The movers show up in three weeks. I'm finally getting out of South Florida!