Jul 26, '06 07:30:06AM • Contributed by: Moebius
I have an old Epson Stylus Scan 2500, which is still a perfect solution for my small office. I can make copies (even in color), print at fair quality and speed, and scan documents. And finally, it's a robust device, at least compared to the actual Epson printers.
Unfortunately, Epson decided to classify this all in one device as "unsupported by Mac OS X," and therefore never released updated drivers. Starting from Mac OS X Jaguar, with the help of CUPS and gimp-print, I can use this device as a printer (the printer part is essentially an Epson Stylus Color 740). But what about the scanner? A viable solution would be to use VueScan, which is a very good software, but I would like to have something more integrated with Mac OS X and, possibly, free. Therefore I investigated how Image Capture works, and found a solution.
This solution should probably work for every unsupported Epson USB scanner (like the Perfection 6xx series) or the Stylus Scan 2000. However, I have only tested it with the Stylus Scan 2500. Additionally, the solution was tested on Mac OS X 10.4 Tiger, and I dont' know if works for Panther or Jaguar. It should work with Intel Macs, too.
This hint require the modification of a couple of .plist files, therefore having a plist editor such as the Property List Editor included with the Developer Tools is suggested. Anyway, TextEdit is still usable.
First of all, connect your USB scanner and turn it on. Then open the System Profiler application, which is located in you /Application -> Utilities folder. Alternatively you can select About This Mac from the Apple menu, and press the More Info... button on the About This Mac window.
Once System Profiler is open, click on the USB entry to see all the connected USB devices. Locate your scanner on the USB device tree and click on it. The bottom panel will show detailed information about your device. Take a note (or copy and paste somewhere) of the following informations:
- Name of the device. In the bottom panel of System Profiler, it's located at top and written in bold with a colon (:) following. In my case, this is "Stylus Scan 2500:" Ignore the colon and take note only of the name exactly as is written, including spaces and dashes if any. This is how the device identifies itself to the Mac.
- Product ID. This is a numeric value expressed in hex notation. In my case this is 0x0106. The Vendor ID should be 0x04b8, which is the USB code for Epson products.
We are about to make modifications to this file, therefore make a backup copy first and keep it in a safe place, in case something go wrong.
Control-click the EPSON Scanner file and, from the contextual menu, select Show Package Contents. Open the Contents folder and then locate the Info.plist file. Open this file using your preferred plist editor. In the plist editor, locate the USB dictionary and the inner IOUSBDevice array of dictionaries, which contains a lot of USB device descriptions.
We need to replicate an existing dictionary to add a new device. So keep an existing device as a template and create a new array element.
In the newly created device description dictionary, fill in the idProduct string with the ProductID value previously copied from System Profiler. Then fill the Production Identification string with the Device Name reported from System Profiler. Be sure to enter or paste this string exactly as System Profiler reported it, or Image Capture will fail to recognize your scanner. Save the Info.plist file
This is the plist entry added for my Stylus Scan 2500:
<dict>
<key>Production Identification</key>
<string>Stylus Scan 2500</string>
<key>device events</key>
<array>
<string>scan</string>
</array>
<key>device type</key>
<string>scanner</string>
<key>idProduct</key>
<string>0x0106</string>
<key>idVendor</key>
<string>0x04b8</string>
</dict>
Now open the Resources folder (EPSON Scanner.app -> [Control click and choose Show Package Contents] -> Contents -> Resources) and locate the file DeviceInfo.plist. For this step, I suggest you use TextEdit or another text editor like TextWrangler to edit this file, because we need to duplicate a long list of items, and the Property List Editor doesn't permit you to copy and paste an entire dictionary.
Open Deviceinfo.plist with TextEdit, and locate the sixth line, which is <key>***Generic***</key>. Start selecting from this line (included), and following the <dict> structure, until the corresponding closing tag. Copy the selected text, then scroll to the end of the file and insert (paste) the copied text just before last </dict> tag. Now scroll up to the first line you just pasted, which says <key>***Generic***</key>, and modify the ***Generic*** text with the name of your scanner, prefixed by the EPSON string. In my case, that was EPSON Stylus Scan 2500. Save the plist file and close it.
That's (almost) all! Now you only need to restart you Mac. I don't know why this is requested, but if you don't restart, Image Capture won't recognize the scanner.
After restarting and with your scanner connected and turned on, open Image Capture, and your scanner should be already recognized as EPSON USB Scanner. If it's not, just use the Browse Devices menu of Image Capture, and look for the EPSON USB Scanner.
Now you can scan from Image Capture and best of all, your scanner's Scan button is fully functional (press Scan on the scanner, and watch Image Capture automatically open!). You can also share this scanner with other Macs on the LAN.
Going one step beyond, we can also provide Image Capture with the standard ColorSync profile for the scanner. To do this, just go to the Epson web site and download the TWAIN driver for Mac OS Classic. Run the installation in Classic (sorry not possible for Intel Macs), and then copy the ColorSync profiles installed by the Classic driver. If your scanner supports an optional transparency unit, you have two ColorSync Profiles: one for reflective scanning and one (with the name ending with TPU) for transmissive scanning. Put these files in the EPSON Scanner package in the folder EPSON Scanner.app -> Contents -> Resources.
Now again open the DeviceInfo.plist file located in Resources and locate the scanner entry added above. Open the tree by clicking on the disclosure triangle and locate the ColorSync profiles dictionary. You must change the path property of the scanner.reflective.RGB.positive dictionary, substituting the default value with the path and name of the added profiles. In my case, Resources/EPSON Stylus Scan 2500.icc. Then do the same for the scanner.transmissive.RGB.positive dictionary, but use the TPU ColorSync profile. Again, for my Stylus Scan 2500, it's Resources/EPSON Stylus Scan 2500 TPU.icc. Do not touch the RGB.negative and Gray entries. Leave them set to default.
Save and restart again (not sure if needed, but better to do it). Now your scanned photos will have embedded the right profile for you scanner.
Enjoy you old scanner brought to a new life.
