Pizza is currently certified at Master level.

Name: Solomon Peachy
Member since: 2001-10-04 19:49:21
Last Login: 2014-02-20 04:23:15

FOAF RDF Share This

Homepage: http://www.shaftnet.org/users/pizza

Notes:

A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, pitch manure, solve equations, analyze a new problem, program a computer, cook a tasty meal, fight efficiently, die gallantly.
Specialization is for insects.

-- Robert A. Heinlein, "The Notebooks of Lazarus Long"

Currently residing in sunny Melbourne, Florida, I'm employed by AbsoluteValue Systems to write 802.11 network drivers for Linux and other miscellaneous embedded-type stuffs.

My main passion these days is photography; here is the portal to it all.

Projects

Recent blog entries by Pizza

Syndication: RSS 2.0

More on the Kodak 6850

The venerable Kodak 6800 and 6850 printers are true workhorses; it's not uncommon to see them flogged on eBay with upwards of 200,000 prints on them -- not because they are worn out, but because they tend to outlast the systems they're plugged into.

I originally added support for these models to Gutenprint the better part of two years ago, and through some helpful volunteers, I was able to reverse-engineer enough of the printer communications to write an open-source CUPS backend to enable them to print under Linux.

That seemed to be good enough, and I generally forgot about these models.. until a few months ago, when the folks over at LiveLink arranged to have an Kodak 6850 sent my way. (These guys are awesome, BTW!)

Having full access to one of these things made it far easier to poke and prod and generally reverse-engineer the printer communications.
Consequently, I've mostly decoded the printer media status (now with print counts!) and media query messages, and greatly improved error detection and recovery.

It's probably safe to say it now works better under Linux than it ever did with the Official Windows/OSX drivers, though without access to a 5x7 conversion kit and media I'm sure there's something I've missed.

In other news, I'm still hunting down some bugs involving the Sony UP-DR200, Canon CP900, and Mitsubishi CP-D70/CP-K60 models, but with only indirect access progress is slow.

It would be so much easier if the manufacturers of these things could toss some documentation my way. It could only help them sell more printers and media, after all..

Back to the bit mines..

Syndicated 2014-07-11 18:56:40 from Solomon Peachy

Canon CP820 and CP910, Redux

It seems my early enthusiasm was a little misplaced, as "some degree of driver-side color management/mapping" became considerably more involved than I'd first expected.

It turns out that rather than the subtractive Cyan/Magenta/Yellow primary data sent to the earlier CP-series printers, or even the additive Red/Green/Blue primary data used by many others, The CP820 and CP910 expect their data in a perceptual, Luminance-based format, not unlike what one finds in television and video formats.

My best guess is that the printers use the JPEG YCbCr444 format and coefficients (as opposed to the ITU-R BT.601, BT.709, or BT.2020, or various YUV colorspaces). Conversion between these colorspaces is fairly straightforward. Here's the code for the JPEG transformations:

  /* All values are in the range of 0-255 */

Y  = R *  0.29900 + G *  0.58700 + B *  0.11400
Cb = R * -0.16874 + G * -0.33126 + B *  0.50000 + 128
Cr = R *  0.50000 + G * -0.41869 + B * -0.08131 + 128

R  = Y +                       + (Cr - 128) *  1.40200
G  = Y + (Cb - 128) * -0.34414 + (Cr - 128) * -0.71414
B  = Y + (Cb - 128) *  1.77200

Unfortunately, due to Gutenprint's internals and the fact that the printer expects the YCbCr data in a plane-interleaved format, this will be a little more invasive to implement. Consequently, it will likely not land in Gutenprint until after the 5.2.10 release.

In other photo printer news:

  • Multi-cut support for selected printers is in the works
  • Support for the Sony UP-CR10L (and DNP DS-SL10) is in the works
  • Improved Kodak 6800/6850 status reporting
  • I'm awaiting sniffs from Mitsubishi CP-K60DW-S and CP-D9550DW-S printers, which should lead to improved support
  • The Mitsubishi CP-D70W is confirmed to work, but apparently needs major color curve tweaking

As always, the best way to improve a printer's support is to send one my way, preferably accompanied by programmer documentation. :)

Syndicated 2014-05-08 13:57:00 from Solomon Peachy

Canon SELPHY CP910 and CP820

For more than a decade, Canon's SELPHY printers have been largely evolutionary. While their bolt-on features have steadily improved (in-printer touchup, better screens, UIs, etc) the core printer engine itself has remained nearly unchanged from the outset. This is most visible when you consider they've used the same media packs the whole time.

The outlier here was the SELPHY ES series; they used different, all-in-one media packs to improve printer handling, but putting aside the physical differences, under the hood it was the same basic print engine, supporting the same print dimensions. Also unique to the ES series were a few minor variations in the printer spool data format, but with the exception of the CP790, the CP series has remained completely compatible for the entire life of the family.

Until the CP820 and CP910, that is. These two use an entirely new print data format (different headers, and RGB instead of CMY data) and despite using the same CP-series media, also sport a slightly different print engine that runs at a slightly higher resolution than the older models.

Another major change is that the CP820 and CP910 break from tradition and no longer need a special driver/backend to interactively send data over; now the whole thing is just dumped over in one big blob. This was an unexpected (and welcome!) change.

Unfortunately it looks like the printers still need some degree of driver-side color management/mapping; figuring that out is going to be tricky. Still, with luck, these printers will be supported in Gutenprint 5.2.10.

Syndicated 2014-05-07 12:47:56 from Solomon Peachy

Yet more Dyesub printer hacking

Over the past month, there's been a push to get the Gutenprint codebase in shape for the long-overdue 5.2.10 release. This will be the first release incorporating the various CUPS backends I've written plus an expanded supported printer list.

This has resulted in a flury of bugfixes and improvements to the backends, including:

  • Support for multi-page print jobs
  • Sony UP-DR200 support
  • Canon SELPHY CP790 support
  • Vastly improved error detection and recovery for all Canon SELPHY models.
  • Printjob pipelining support for the DNP DS40/DS80
  • Support for the Citizen CX/CX-W/CY printers

The Citizen printer support deserves its own set of comments. It turns out that the DNP DS40/DS80/DSRX1 models are just rebadged Citizen CX/CX-W/CY models (down to the same USB IDs!) and they all use an indentical command language.

There are more Citizen models (CW-01, CW-02, OP900, OP900II) that have been rebadged by others too, and every single one of these supposedly supports the same command language as the CX/CX-W family. Most notably, Mitsubishi's CP3800 appears to be a rebadged CX-W.

I like it when things JustWork(tm)! Unfortunately, since I don't know the USB IDs for that second list of printers, I can't add them to the backend match list.

My interest in adding more printers to Gutenprint for the sake of it has waned somewhat, for several reasons -- First, my personal and professional printing needs are now well-met. Second, I have less free time to devote to such things. And finally, the norm for these dye-sublimation photo printers seems to be to require an intelligent backend, and I can't begin to write one without access to the particular printer.

The Mitsubishi CP3800, CP9550, and CP3020 series haven't been tested.
The CP-D70/D707/K60 models are known to need a backend (and it's written!) but my original tester disappeared. (I've also started reverse-engineering the CP9600 spool file format, but that's on hold until after tax season..)

The Kodak 9810 and 8500 (itself a rebadged CP3020) also remain untested.

So, if anyone out there has access to one of these printers and is interested in helping improve their Linux support, speak up!

Similarly, if there's some other dye-sublimation photo printer you'd like to see working under Linux, we can probably help each other out.
The recent Citizen/DNP and Shinko/Sinfonia additions/suppport were the result of such collaborations.

Syndicated 2014-02-07 15:00:10 from Solomon Peachy

A little Photo Organizer love

The software that powers my photo archive (aptly named Photo Organizer) hasn't seen much attention in the past few years or so. That's mostly because it does what I need with little fuss, and the other users either don't exist any more or are satisfied with what it is.

The other reason it hasn't seen much attention is that there's so much tecnhical debt in that codebase that all of the substantial feaures I have on my eventual to-do list require some major plumbing work.

So, the result is that in the past three or so years, development's slowed to a trickle of bugfixes. The notable exceptions are addition of a few more esoteric image formats, and updating the default themes to take advantage of now-common CSS3 constructs. Not exactly earth-shattering!

Last night, I finally sat down and added a major new feature, a (read-only) JSON-RPC interface that exposes the same sorts of information as the RSS feed generator.

My primary goal is to enable gnome-photos to directly interface with Photo Organizer, but this JSON-RPC interface will enable many more things. Unfortunately the data exported through the RPC API is far from complete, but I only see that improving as I figure out what to do with this thing.

Syndicated 2014-02-07 14:07:59 from Solomon Peachy

150 older entries...

 

Pizza certified others as follows:

  • Pizza certified Pizza as Journeyer
  • Pizza certified rpl as Journeyer
  • Pizza certified alan as Master
  • Pizza certified jameson as Journeyer
  • Pizza certified proski as Master
  • Pizza certified Stevey as Master
  • Pizza certified joey as Master
  • Pizza certified etbe as Master
  • Pizza certified davej as Master
  • Pizza certified marcelo as Master
  • Pizza certified BrucePerens as Master
  • Pizza certified miguel as Master
  • Pizza certified davem as Master

Others have certified Pizza as follows:

  • Pizza certified Pizza as Journeyer
  • rpl certified Pizza as Journeyer
  • jameson certified Pizza as Journeyer
  • mobius certified Pizza as Apprentice
  • lev certified Pizza as Apprentice
  • sprite certified Pizza as Apprentice
  • Denny certified Pizza as Apprentice
  • gp certified Pizza as Journeyer
  • mattr certified Pizza as Journeyer
  • ishamael certified Pizza as Journeyer
  • mascot certified Pizza as Journeyer
  • mrsbrisby certified Pizza as Journeyer
  • realblades certified Pizza as Journeyer
  • richdawe certified Pizza as Journeyer
  • proski certified Pizza as Master
  • mpr certified Pizza as Journeyer
  • ebf certified Pizza as Journeyer
  • Stevey certified Pizza as Journeyer
  • nixnut certified Pizza as Master
  • fzort certified Pizza as Journeyer
  • sye certified Pizza as Journeyer
  • ncm certified Pizza as Master
  • dangermaus certified Pizza as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page