Over the past year, I've written a bit about the situation involving the Sinfonia CHC-S6145 printer and its rebadged sibling, the Ciaat Brava 21. To summarize, the printers worked but required use of a proprietary, binary-only library ('libS6145ImageProcess') to perform thermal compensation and other transformations to the image data in order to generate sane output.
To make a long story short, I set out to reverse-engineer how that library worked... and a couple of weeks ago, I succeeded, with my re-implemented library generating completely identical results.
After some back and forth with Sinfonia, I'm quite pleased to announce that my re-implemented library, called 'libS6145ImageReProcess', is now released to the public under a GPLv3+ license. Except for the differing name, it is a drop-in replacement for the Sinfonia library.
Just to be absolutely clear, Sinfonia is not responsible for this library in any way, and will not support you if you complain that the output is somehow deficient or your printer catches fire when you print images of Donald Trump biting the heads off of adorable kittens.
Now in order to actually utilize these printers, you'll need to compile and install three components:
I should have the necessary backend code in the Gutenprint development repository soon, but due to licensing complications the library will probably remain separately distributed.
Particular thanks go to Sinfonia and Ciaat for providing documentation on the printer communication protocols, and Matt Koglin for his SinfoniaCam(tm) and many, many rounds of testing.
This has been a long time coming, and is the culmination of quite a bit of work. I hope it proves useful, and if you do purchase one of these printers intending to use it with Linux (or a more obscure OS), please let your Sinfonia distributor know. :)
Assuming that your distro already includes an up-to-date Gutenprint (5.2.11 or newer), here is what you will need to do in order to use these printers:
git clone https://git.shaftnet.org/cgit/selphy_print.git/ cd selphy_print make sudo make install cd lib6145 make sudo make install sudo bash echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf ldconfig exit cd ..
Once you have that done, run this with the printer attached:
sudo ./shinkos6145 testjobs/shinko_s6145_4x6.raw
As well as spitting out a page, you should see the following message in the output. Any WARNINGs or ERRORs are a sign that the library wasn't installed properly:
INFO: Image processing library successfully loaded
At this point, you can set the printer up using CUPS or your distro's printer tool, and all will be well.