Samsung SPP-2020 Photo Printer driver for Linux (CUPS 2.2.1)

0. Preface

SPP-2020 is a cheap photo printer from Samsung. The print quality is great and usage costs are acceptable. However the manufacturer doesn't provide a Linux driver which is somewhat strange for Samsung.

The rastertospp is a CUPS raster converter that takes a cups-raster as its input, and on the output spits a stream of data suitable for direct sending to the printer. This is one possible form of a driver for CUPS, the one which makes most sense in the case of this printer.

Print quality of this driver seems the same as from the Windows driver, no color profiling is done. As of version 1.1 there is an "Avoid clipping" option (default: on) which in some cases yields better results than stock Windows driver.

Data format suitable for the printer was derived by analysing several print-to-files made on Windows.

Only best-quality on 4x6" (~10-15cm) photo paper is implemented but it seems the only use-case anyway.

1. Changelog

2. Requirements

3. Download

The current version is always available at http://koprowski.org/rastertospp. As of now this is rastertospp-1.4.tar.gz.

4. Compile

Unpack the tar.gz archive, enter the rastertospp-1.4 directory and compile with the following command:

$ gcc -O2 -Wall -o rastertospp rastertospp.c -lcups -lcupsimage

In case of Debian you will need libcupsimage2-dev, libcupsfilters-dev and libcups2-dev to build properly.

5. Install

Copy the compiled rastertospp to /usr/lib/cups/filter/. Make sure your CUPS is configured for use with rasterto* filters, it should be someplace in the CUPS docs, but in short: you must use the ESP version of ghostscript which can output with a 'cups' device (do gs -help|grep cups if unsure), you should have /etc/cups/pstoraster.convs present and in mime.convs the following lines should be uncommented:

application/postscript  application/vnd.cups-postscript 66      pstops
application/vnd.cups-postscript application/vnd.cups-raster     100     pstoraster
application/octet-stream        application/vnd.cups-raw        0       -

6. Configure

Configure your printer as usual with the web interface to CUPS. Provide it with the included PPD file when asked for. If in doubt you the docs. You should be able to print a test page. Enjoy!

7. Problems

In case of bugs or problems with the driver feel free to contact me at tomek(at)koprowski(dot)org. Please don't ask me any general CUPS-related questions though, I don't know CUPS all that well myself. There are support forums for that kind of stuff. Also please note that I no longer have a working SPP-2020 so my capacity to maintain this driver is very limited.

Appendix A - The "Avoid clipping" option

Someone at Samsung probably decided that more contrast in prints is a good thing, so the printer seems to be enhancing contrast internally. Unfortunately it over-does it, which results in some color clipping. If you print a picture of white clouds on a blue sky you may end up with burnt-out (uniform white) spots instead. There's some detail loss in shadows as well. The "Avoid clipping" option prevents just that -- by sacrificing global contrast it prevents loss of detail in very bright and very dark areas. In my opinion the prints look much better that way, but as always YMMV, so you can disable it if you don't like it.