I've got an HP Deskjet 610 printer, and a Genius ColorPage 3X scanner. I've also got a pretty heterogeneous network, with Linux (on permanently), Windows 98 (on a lot of the time, but not guaranteed to be on), Windows NT 4.0 (running headless, permanently on), and Windows 2000 (on a lot, not guaranteed) boxes. Everyone needs to be able to print to the printer. The scanner has a "copy" button on the front of it; when you put something in the scanner and press it, it should scan whatever's in the scanner and print it to the printer, without requiring any other keypresses or clicking on dialog boxes. That's all I wanted.
So why did it take ten hours to set up?
It was almost all due to the malignity of one major computer corporation and their obsessive desire to pimp their other products and control how you use what you've paid good money for.
No, not Microsoft. HP.
First attempt
- Scanner: Win98
- Printer: WinNT
So, the scanner software's on the 98 box, and scanning works. The Copy button pops up a little "Scan next page to copier?" dialog box on the screen of the 98 box, but that's not too much of a crisis. The scanner also doesn't work with the 98 box turned off, so there's a rule in place that you ensure the machine is turned on before scanning. Printer works in the NT box and is shared, and the other machines can print to it. All OK.
Then I built the Win2K box. So, where do I get the drivers so that it can print to the network printer? Off the CD that came with said printer? Nuh-uh. There aren't real printer drivers on that CD. There's an installer application, and there's a .INF file called something like dont_use_this_run_the_setup_program_instead.INF. This file does not work as a printer driver. So, off to hp.com to download the Win2K drivers; no joy. Exactly the same. HP do not want you to use this printer as a network printer -- if you want to do complex stuff like not buy one printer per computer on your network, you can damned well fork out for an expensive laserjet or something. Hours of fiddling ensure before I give up.
Second attempt
- Scanner: Win2K
- Printer: Win2K
We'll try them both on the 2K box. That's nice and up-to-date, it's kept well patched; we'll daisy-chain them. Now, the scanner is parallel, as is the printer; none of this brand-new USB pony for Castle Aquarius (motto: one man's rubbish is another man's test server). So, you use the pass-through port on the scanner to plug scanner into computer and printer into scanner. Install drivers (we're not worried about network issues at this point, just getting scanning and printing working). Print a test page: printer whirrs for ages (why is it that inkjet printers have to move the print cartridges a minimum of one mile along their little roller before they're allowed to print anything? Just feed in a page and print on it! Whirr, whirr, whirr, judder-judder-judder, whirr, judder, do some printing. Only the last step there is useful), prints the top inch of a test page (you can see the top half of the words "Windows 2000 Test Page", and then pops up a dialog box saying "Printer disconnected".
What? How the fuck can it be disconnected? You've just managed to print a bit to it!
Oh, yeah, and then it does the typical "You've set me up wrong and must be punished" move of printing one single letter on a few pages, just so you can't use that paper again. And then it formfeeds. Until it runs out of paper. I was making a cup of tea, so it had fed nearly a ream of paper through itself before I discovered it and put a stop to it. Lucky it didn't print a letter on each, eh?
RTF scanner M. Ah, the parallel port needs to be EPP or ECP. Reboot machine and go into BIOS. Spend some time looking at screens before finding it. Parallel port can be "SPP", "ECP", "EPP", "ECP+EPP". Set it to "ECP+EPP" (if one's good, two must be better) and reboot. Win2K gets as far as attempting to show login box and reboots computer. Watch for a while as it does this four or five times in a row. Go into BIOS, set printer port to "EPP", reboot. 2K starts up fine. Whirr, whirr, whirr, judder-judder-judder, whirr, judder, print a test page. Same thing as last time.
So, maybe the scanner's configured wrong or something; perhaps it's not passing through data as it should. Do a scan to wake up scanner (works fine). Run scanner configuration utility. "Scanner not found."
What? It must be found, you've just used it!
Try again. Still no joy. Reboot and try again. Nothing. Try ECP instead of EPP, nothing. Try a test page (whirr, whirr, whirr, judder-judder-judder, whirr, judder) -- one inch of page and then "printer disconnected".
Go out on the net to look for help. Genius site offers new drivers. Download and install: realise part way through install that these are the drivers for the USB version of the scanner. Back to website: the reason I downloaded the USB one by mistake is that that's all they offer. Google for help on printer, on scanner, on combination. Nothing. Strong subtext in all messages that it's because it's parallel -- parallel stuff is hard to get right, that's why we invented USB. No-one actually says this, but it's there all the same. I've got a problem? Buy new hardware. Install new software. The Linux community is just as guilty of this, but at least there getting the new version of the software doesn't cost money. Net no help at all, not one little bit.
Smash all computers into tiny pieces with a 14lb lump hammer. Smoke two cigarettes and spin around on my bottom in thought.
Third attempt
- Scanner: WinNT
- Printer: Win2K
Install scanner on NT. Installation utility throws up an error box with nothing in it but the big red cross in a circle. No error message. Browse around CD, find actual scanner installation program rather than stupid "click here to install, click here to view documentation" frontispiece program. Install scanner and test; works fine.
Install printer on 2K. No problem. Share printer. Ah, cunning plan. Tell 2K to install additional drivers for other operating systems; that way, the fact that you can't install the HP DJ610 driver on the NT and 98 boxen won't matter, because they'll get their drivers from the 2K box! God, I'm clever. "Please insert your Windows 2000 Server CD-ROM."
Huh? I haven't got Server. This is a workstation. Browse around on 2K Professional CD. Browse around internet. Ah, 2K Pro doesn't come with other drivers. Instead, you need either a Server CD, which I don't have, or...
Q260107: Windows 2000 Professional Prompts for Server CD-ROM When You Add Printer Drivers for Windows NT 4.0 or Windows 95/98. Ah! Bloody well done, Microsoft. That's exactly my problem. So, let's see: install the printer as a local printer on NT, then upload drivers to 2K. Cunning!
Naturally, of course, it doesn't work. Why? (sing-song voice) Because the deskjet 610 driver isn't a real driver, it's a weird executable thing. If it were a real driver, remember, then you'd be able to use it as a network printer, and that's bad.
Blow my own head off with a twelve gauge. Clean up mess while decapitated. Replace head.
Fourth attempt
- Scanner: WinNT
- Printer: Win2K
Notice that both NT and 2K have drivers supplied with Windows for a Deskjet 600 (rather than the 610). They can't be that different, surely? I wonder if I can just lie to the bastard and tell it it's a 600?
Remove printer on 2K. Uninstall weird bullshit HP executable driver thing. Add new printer, no, don't autodetect it (because you'll correctly detect it as a 610), choose HP in manufacturers, scroll down, find two Deskjet 600 drivers, one called "Deskjet 600 (A234329)" (or similar) and one called "Deskjet 600 (A234328)". Two basically identical numbers and no indication of what they mean. Install first one. Whirr, whirr, whirr, judder-judder-judder, whirr, judder, print a test page. Prints one line of fixed-width random text and then stops. Hm. Uninstall printer, install with other DJ600 driver. Whirr, whirr, whirr, judder-judder-judder, whirr, judder, print a test page. Same thing: one line of fixed-width random text. (Obviously not random, because it's the same as the last one.) Uninstall, reinstall printer, scroll through HP list, find more HP Deskjet 600s, one just called "Deskjet 600" and one called "Deskjet 600 (Monochrome)". Ah, that's what the NT ones are called. Install "Deskjet 600". Test page prints fine. Move to NT box, install local printer as Deskjet 600. Follow instructions in MSKB article above to upload drivers. Add printer on NT box: network printer, point to deskjet on 2K box. Success! Numfar! Do the Dance of Joy!
Configure scanner to print to printer when button is pressed. Ah,
crisis. The scanner will only print to local printers. Arse! Can I fool
it into thinking that a network printer is local? Browse around on
Google for a bit. Ah! net use lpt2: \\win2kbox\deskjet
/persistent:yes from a DOS prompt as administrator on NT box.
Now add a local DJ600 printer, tell it to use lpt2. So we have a local
printer that's actually a remote printer! Scanner works, scans and
sends copy to what it thinks is a local printer but is actually a
network printer. Success!
Well, nearly. Remember, right up at the top, I said that the scanner software popped up a little confirmation dialog box when it did a (scan-and-print) copy? Well, this is not such a problem when the scanner's connected to an available machine, but when it's running on a headless box it's a big problem. So, off to google for a solution. NoNags came up with AutoIt, which solves it very nicely: simply use the following AutoIt script:
; An AutoIt script to automatically click on the
; "scan next page to copier" prompt when using the COPY
; button on the 3X scanner.
SplashTextOn, 200,100,Automation,Ready to autoprint scanner copies!
Sleep, 2000
SplashTextOff
Repeat, 0
; Wait forever until the dialog comes up
WinWaitActive, Genius ColorPage-Vivid3X,Scan next page to copier
; Tell it "no"
Send, n
SplashTextOn, 200,100,Automation,Copy automatically printed!
Sleep, 2000
SplashTextOff
EndRepeat
Put a shortcut to it in your Startup folder, and reboot to check everything works. Now, when the scanner's confirm dialog box comes up, AutoIt clicks on "No" for me! Excellent piece of software.
Finished
So, there you have it. Nice and easy. It only took about 12 hours of fiddling and configuration to get this far. But, it's one more thing that's done. Moreover, because I've written this to help other people, I now have some documentation for when I need to do it again. Ha ha!
The key problem in all this is that the 610 driver from HP refuses to be used as a network driver. I can't think of any reason for this other than HP wanting you to buy more expensive printers. Since it works perfectly well (even if it took me 12 hours to get it so), this is an insidious and frankly appalling technique from their marketing depart.
The second thing I've learned is that if there are MS drivers supplied with Windows for hardware, try using them. Or drivers for similar hardware. While Microsoft aren't great on sharing information to other operating systems, they're set up very well to allow different versions of Windows to communicate.
Thirdly: if you're out buying a scanner and a printer, buy USB ones. It's so much easier...
© sil, October 2003