Tuesday, May 23, 2006

UMAX Astra 1220S

Hardware: UMAX Astra 1220S, PowerMac G4 tower with Apple's SCSI card

Software: OS X 10.3.9, Image Capture (part of OS X)

My mother has my old scanner, a UMAX Astra 1220S (I don't plan on buying another UMAX given their non-support of OS X, and I'm happy with my HP ScanJet 5470C). I wanted her scanner to work in OS X so she doesn't have to boot to OS 9 anymore. (For a while, she said scans were working under Classic, but now they're not. It's not a problem I want to troubleshoot. Plus she'd rather use OS X exclusively too!)

My first attempt was dig around until I found a copy of MagicScan 5.1 for OS X. It's not supposed to work with low-end scanners (although the pre-X version does!), and it's not supposed to work with anything newer than OS X 10.2.6. Well, I thought I'd try anyway, but it failed because I didn't have a supported scanner (well, not officially, but I used to use MagicScan!). So I used HexEdit to change "PowerLook 2100XL" to "Astra 1220S" just in case, but then it said

Application Launch Failure

The application "MagicScan" could not be launched because of a shared library error: "<magicscan><><><>"

so that trick didn't work either. On to the second attempt!

I went to Mac OS X Hints and found a tip that worked! I downloaded OS X TWAIN SANE software. I installed the binary packages for libusb 0.1.12, SANE backend 1.0.17-cvs 2006-02-07, TWAIN SANE interface 1.7, and SANE Preference Pane 0.4 in that order. Then I rebooted because this SCSI scanner has to be on when the computer boots, or it's not seen.

I opened SANE in System Preferences after the reboot to configure it. I disabled all of the drivers except umax because that driver supports my scanner, and then I hit the Configure button. I made the UMAX configuration look like this:

# Options for the umax backend

# define scsi queueing depth

option scsi-maxqueue 2

# define scsi buffer size in bytes

option scsi-buffer-size-min 65536

option scsi-buffer-size-max 262144

# define scan lines that shall be read in one block

option scan-lines 100

option preview-lines 20

# define how to handle bad sense codes

# 0 = handle as device busy

# 1 = handle as ok

# 2 = handle as i/o error

# 3 = ignore bad error code - continue sense handler,

option handle-bad-sense-error 0

# define if a request sense command shall be executed

option execute-request-sense 0

# define if the preview bit shall be set when scanning in rgb mode

#option force-preview-bit-rgb 0

# define if slow speed flag shall be set

# BE CAREFUL WITH THIS OPTION, IT MAY DESTROY YOUR SCANNER WHEN SET FALSE

# -1 = automatically set by driver - if known

# 0 = disabled

# 1 = enabled

#option slow-speed 0

# define if care-about-smeraring flag shall be set

# BE CAREFUL WITH THIS OPTION, IT MAY DESTROY YOUR SCANNER WHEN SET FALSE

# -1 = automatically set by driver - if known

# 0 = disabled

# 1 = enabled

#option care-about-smearing 0

# define if the calibration shall be done for selected scanarea or for each ccd pixel

# -1 = automatically set by driver - if known

# 0 = disabled

# 1 = enabled

#option calibration-full-ccd 1

# define if an offset of the calculate calibration with has to be used

# -99999 = auto

#option calibration-width-offset -99999

# define the number of pixels that is used for calibration

# -1 = disabled

# 0 = not set

# 1 = 1 byte/pixel,

# 2 = 2 bytes/pixel

#option calibration-bytes-pixel -1

# define if scanner uses the same exposure times for red, green and blue

# -1 = automatically set by driver - if known

# 0 = disabled (own selection for red, green and blue)

# 1 = enabled (same values for red, green and blue)

#options exposure-time-rgb-bind 0

# define if shading data shall be inverted befor sending it back to the scanner

# -1 = automatically set by driver - if known

# 0 = disabled

# 1 = enabled

#option invert-shading-data 0

# define if the scanner supports lamp control commands

# 0 = automatically set by driver - if known

# 1 = enabled

#option lamp-control-available 0

# define how 16 bit gamma data is padded

# -1 = automatically set by driver - if known

# 0 = gamma data is msb padded

# 1 = gamma data is lsb padded

#option gamma-lsb-padded 0

# define connection type of following devices

# 1 = scsi

# 2 = usb

option connection-type 1

# linux device identification:

#scsi vendor model type bus channel id lun

scsi UMAX * Scanner * * 4 1

#scsi UMAX * Scanner

#scsi LinoHell JADE

#scsi LinoHell Office

#scsi LinoHell Office2

#scsi LinoHell SAPHIR2

#scsi LinoHell SAPHIR3

#scsi Linotype SAPHIR4

#scsi LinoHell OPAL2

#scsi HDM LS4H1S

#scsi Nikon AX-110

#scsi Nikon AX-210

#scsi KYE ColorPage-HR5

#scsi EPSON Perfection600

#scsi ESCORT "Galleria 600S"

#scsi TriGem PowerScanII

# Umax Astra 2200 via USB:

# usb vendor product

#usb 0x1606 0x0230

# scsi device list

option connection-type 1

/dev/scanner

# usb device list

#option connection-type 2

#/dev/usbscanner

I uncommented lines that seemed to apply, and I commented out the USB lines that don't apply to a SCSI scanner.

I have this scanner set to SCSI ID 4 using the dial on the back by the power plug. In Apple System Profiler, it shows up at 4 on every possible LUN! I vaguely remember from SCSIprobe in pre-OS-X days that the external bus on this card was LUN 1, so that's why I added the line scsi UMAX * Scanner * * 4 1 so the SANE software wouldn't get confused. Do the right thing for your SCSI!

Then, following the directions, I ran sane-find-scanner that saw the Astra on 8 LUNs and my sleeping ScanJet. Next I tried scanimage -L and saw more about the Astra.

So finally it was time to launch Image Capture and scan a page. Hey! It works!

No comments:

Post a Comment