Seiko label printer under OSX: almost working, but not quite

Mike mike99 at ber9sted.free9uk.com9
Sun Mar 13 00:54:00 PST 2005


I'm trying to get my Seiko Smart Label Printer Pro working under Mac OS 
X 10.3.8.  I'm almost there, but something's not quite right.  I can 
print to it from the command line using a 3rd-party driver but I can't 
get it to work with CUPS.

The printer has a serial interface and is connected to the Mac via a 
US232B USB-to-serial adapter (www.easysync.co.uk/usbrs232_single.html). 
 This device appears as /dev/tty.usbserial-USAMWDHH.  There's also a 
file called cu.usbserial-USAMWDHH in /dev but I don't know what this is.

I couldn't find any PPD files for this printer on the net but I did 
come across something called 'slap' (www.members.tripod.com/uutil/slap) 
which I downloaded, compiled and installed in /usr/local.  This is a 
command-line tool for printing directly to the Seiko.  Things are fine 
if I enter a command like

echo 'Hello world' | slap -o /dev/tty.usbserial-USAMWDHH

Out pops a label saying 'Hello world'.  But now I want to get it 
working with CUPS so I can print to it from within an application and 
from my networked PC (Win2K).

The slap documentation told me how to create a BSD 'lpd' output filter 
which I've called slppro.if.  Here's the contents of it:

--

#!/bin/sh
# BSD lpd "output filter" for SmartLabel printers driven by "slap".
#
# @(#)bsd.pi    1.0     07jul98 MJS
# Copyright (c) 1998 Mike Spooner
#

#######################
# Customisable stuff: #
#######################
FONT=thames-bold-14     # see the slap manpage for a list of available fonts
MEDIA=std       # see the slap manpage for a list of available media-types
MODEL=auto      # see the slap manpage for a list of printer-models
INSTALL_DIR=/usr/local
MAXBAUD=0       # Set this to 38400, 19200 or 9600 if you have broken
                # serial-port drivers (such as the Solaris "zs" driver
                # that controls the onboard ports of some SPARC systems).
                # Otherwise, set it to zero.
BAUDMAP=0       # If driving an SLP-100, SLP-200 or SLP-240 from an IBM
                # RS/6000 system running AIX 4.x via a 7318 8-port concentrator
                # or 128-port adaptor, then set this to "2".
                # If driving one of those same printers from a Sun SPARCstation
                # or SPARCserver running SunOS 4.x or Solaris 2.1-2.4 via a
                # Magma SBus serial card, then set this to "3".

##############################################################################
# Do not change stuff below here, unless you really know what you are doing: #
##############################################################################
SLAP_FONTPATH=$INSTALL_DIR/lib/slapfonts        ; export SLAP_FONTPATH
SLAP=$INSTALL_DIR/bin/slap

if [ ! -x $SLAP ] || [ ! -f $SLAP ] ; then
        echo "fault: no such program: $SLAP" 1>&2
        exit 1
fi

exec $SLAP -c 1 -f $FONT -m $MEDIA -p $MODEL -b $MAXBAUD -x $BAUDMAP

--

After much mucking about with lpadmin, manual tweaking of 
printers.conf, cupsd.conf, etc., and stopping and restarting cupsd, I 
think I've managed to get this filter installed as a 'System V 
interface'.  At least, a file called 'slppro' appears in 
/etc/cups/interfaces, and it contains the same text as slppro.if.

Here's the contents of my printers.conf file:

--

# Printer configuration file for CUPS v1.1.20rc1
# Written by cupsd on Fri Mar 11 21:08:18 2005
<DefaultPrinter DESKJET_950C>
Info DESKJET 950C
Location Mike's Mac
DeviceURI file:///dev/null
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
<Printer DESKJET_970C>
Info DESKJET 970C
Location Mike's Mac
DeviceURI file:///dev/null
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>
<Printer slppro>
Info Smart Label Printer Pro
Location Mike's Mac
DeviceURI serial:///dev/tty.usbserial-USAMWDHH
State Idle
Accepting Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
</Printer>

--

The Seiko appears in the Printer Setup Utility's printer list and my PC 
can see the printer across the network.  If I send a job to it, either 
from a Mac app, the command line, or from the PC, the job appears in 
the Seiko's print queue but the printer status immediately changes to 
'Jobs stopped'.  If I click on 'Start jobs', it changes back to 'Jobs 
stopped' within a second or two.  The job is reaching the queue but 
it's just not printing.

So there's something I'm not doing right.  The printer works fine if I 
call slap directly, but I'm not familiar enough with CUPS to know what 
else I need to do.  Suggestions welcome, please.

Mike.

--
mike99 at ber9sted.free9uk.com9
Remove all the nines if you want to email me.





More information about the cups mailing list