Scanners were around since first days of computer graphics. The first scanners evolved from phototelegraphy devices used since 1940s - a photo, attached to rotating drum, was exposed line by line to a light. Reflected light passed to photocell/photomultiplier inducing electricity change. On the other side of the wire this electricity lit a small bulb which exposed, line by line, a raw photo paper building a photo. The first scanners, as seen e.g. in this video, were using the same principle.
When home computers became powerful enough to process high-resolution image data, simple hand scanners have been developed. For archiving purposes professional scanners were using a tripod technology, in which reflected light was captured by photosensor (like a small camera) located on a vertical tripod-like stand. This is still present in modern book scanners. From handheld scanners, a rolling sheet scanners evolved - they use a rolling mechanism to pass the paper through it. The main disadvantage is that it needs separate sheets. In late 1980s, when servomechanisms became cheap, flatbed scanners became available, and today they are the most popular units. Unfortunately the biggest problem was its diversity. There are lots of protocols, interfaces and access methods for scanners. TWAIN, a common interface introduced with late Windows 3.x did not solved problem because it regulated only how programs can talk with drivers, not how drivers talk to hardware. So after each Windows release starting from Windows 95, lots of working scanners became unusable only because there were no compatible drivers. In Unix world, SANE system is a typical scanner driver framework, but it does not, and will not support many devices.

There are a few ways to connect scanner to computer:
- Dedicated, proprietary board, usually in ISA slot, with interface like GSIF (Genius) or MTS (Mustek/some Primax). Although they generally use mini-DIN connector, their pinout may be different and protocol to speak with board's and scanner's chip usually is different, so you need a specific program (later: TWAIN driver), specific board and specific scanner of one set.
- SCSI bus - more professional scanners are connected with SCSI. They usually require proprietary tool which has definition for scanner's capabilities like VueScan. In Linux, SANE system can cope with many of these scanners.
- Parallel port - Slow connection, first home/small office scanners were connected with parallel port. Requires driver (usually TWAIN). In Linux, although some are supported, drivers usually cannot access parallel port in enough stable manner to make scanning as fast as possible.
- USB - since early 2000s scanners are connected by fast USB connection. They usually require installation of drivers FIRST and then plugging the scanner in to make system install a proper driver. In Linux, they work with SANE system or not, depending on driver compatibility.

Genius GeniScan GS-4500 Type: Handheld scanner
Manufactured by: Genius / KYE

Colors, dpi: 16 grayscale, 400dpi
Interface: ISA board
A typical early-1990s handheld scanner, with 400dpi maximum resolution. Although technically it's 4-bit grayscale (16 levels), it's usually classified as monochrome. Its LED illumination is green, so it's not so good with non-contrasting colours in documents.
It is connected by ISA board and is supplied with own DR.GENIUS software for scanning and image processing. Some versions were supplied with OCR program. Everything packed in a nice portable box.
It works under DOS, but there is an old Linux driver which requires some significant work to run in modern distributions... if modern distributions can run on ISA-based systems.
DOS drivers
Old Linux drivers on Author's site.
Photos of scanner, package, interface board. The board is GSIF II. Configuration jumper settings can be seen in Linux driver page.


A4Tech a4Scan AS-8000P Type: Handheld scanner
Manufactured by: A4Tech

Colors, dpi: ?256 grayscale?, 400dpi?
Interface: ISA board
Information: I can't say much about this scanner as I got it in a bad shape without board nor drivers. It is probably 256-grayscale one, looks quite standard, running on Mitsumi chip, LED illumination and there is not much information about it in the net. I think it may be similar to some Logitech's ScanMans, but I haven't seen a board for it.
Old drivers, probably incompatible
You probably need this: IMAGE72
Linux driver, but for old 1.2.x kernel


Primax HandScanner 256 Type: Handheld scanner
Manufactured by: Primax

Colors, dpi: 256 grayscale, 400dpi
Interface: ISA board
Another 400dpi handheld scanned from mid-1990s. This time it's a full 8-bit grayscale. Also connected with proprietary ISA board.
This scanner had a Windows TWAIN driver, FinishingTouch image manipulation program and ReadIRIS OCR (for some unknown reasons my unit has only one ReadIRIS disk - second was lost?).


Mustek CG-8000 Type: Handheld scanner
Manufactured by: Mustek

Colors, dpi: 24-bit, 400dpi
Interface: ISA board
And now something totally different - a colour handheld scanner. Mustek CG-8000T was a handheld scanner from mid-1990s (ca. 1994) which could scan in 24-bit color and resolution was probably 300dpi. It was connected to the PC still with ISA board and simple interface so even this high resolution was hardly accessible, requiring to move scanner slow enough to scan 3 base colours by means of filtering, process it and send to PC.
It's safer to say that usable resolution was around 100-150dpi. Higher - and it was almost impossible not to miss a line. Unfortunately because colour detection mechanism was not so ideal, scans made with this scanner frequently suffered vertical desynchronization of base colour rasters, especially in higher resolutions.
This scanner is supplied with TWAIN driver so it can be used in Windows 95/3.x programs. There is also Ulead graphics manipulation application and GO-CR.
Photos of the inside in collector's site


HP ScanJet 3200c Type: Flatbed scanner
Manufactured by: Hewlett-Packard

Colors, dpi: 24-bit, 1200x600
Interface: Parallel port (1:1 cable)
A typical late-1990s home/office flatbed scanner, with quality a bit bumped up to 1200x600 (usually 600x600 was enough these times). Connected to parallel port, slow, but can be used if time and high-quality is not essential.
If you plan to use it in Linux, it may fail as SANE has numerous problems when speaking to parallel port.
Driver in HP's site

Linotype-Hell Saphir Ultra2 Type: Flatbed scanner with transparency
Manufactured by: Linotype-Hell, Umax

Colors, dpi: 24-bit, 1200x2400
Interface: SCSI
This is how a professional flatbed scanner from 1990s looks like. It is connected by SCSI bus, so it can be used in PC or Mac. 1200x2400 resolution is much more than 300 or 600dpi popular in home scanners these times. It has a transparency adapter in a full range, so even large transparent materials can be scanned, and the power supply is built-in. In 1990s these scanners were very expensive and only graphics studios could afford them.
To make this scanner operate, the simple way is to use Linux with SANE, and its UMAX backend will support this scanner from the box. In Windows, commercial tools like VueScan can be used.

This scanner has 3 LEDs: Power ON, Ready and TA - for indicating operation of Transparency Adapter. The SCSI connector is Centronics-like, Transparency adapter is connected with smaller cable (in my unit it's missing).


Plustek and other USB scanners Type: Flatbed scanner

In late 1990s USB standard became popular in mainboards. First, slowly, AT 586 boards became equipped with USB 1.1 pin headers to have sockets mounted in slot brackets. With ATX mainboards standard, USB connectors found their place in rear brackets of computers. Fast scanners, connected with SCSI bus, became more obsolete as more scanners got USB cables.
Unfortunately while SCSI scanners had quite standardized communication, USB scanners land was a wild west in this matter. Every manufacturer made own protocol, communication method and software. Here you can see my USB scanners which accumulated over time. All of these scanners work perfectly and... are totally useless with modern systems.

Plustek OpticPro U12 was my first USB scanner bought ca. 2002. With Windows 98, it works perfectly. It can also work with Windows 2000. The driver (for scanners with serial numbers like: 52F602000000) has note that it works with Windows XP... well, nope. It just hangs when trying to communicate. The only way is to... buy a new scanner!
And if you think that you can use it in Linux because it has "basic" support in SANE, well, "basic" means it can turn the lamp on and off. No picture, only garbage pixels. In SANE it DOESN'T scan. Well, this can be understood if you look inside - this scanner was designed as parallel port one! Only USB-parallel bridge in programmable chip 98003 is implicitly added.

For some time I used a HP ScanJet 3570c from around 2003 because I got it for free, after failure with Plustek U12 and UT24. This is a HP alternative in 1200dpi market segment and it has support in Windows XP and Windows Vista (driver, warning: large file, 230MB), unofficially, Windows 7 (description, driver)
Unfortunately its support in Linux is awful, it can perform only full-range scans and cuts/downscales from it. Transparency scans are not supported in Linux at all. At 600dpi, randomly it can skip calibration, calibrate wrong or just throw garbage bitmap. Dear Linux isers, please avoid this scanner if you do anything more than full-page copies.

I purchased Plustek OpticPro ST28 around 2005 because it was cheaper, had 2400dpi and offered transparent scanning and... I got the same thing as with UT12. Support stopped with Windows XP. If you want driver, they are still in Plustek site (driver for serial like 52K2XXXXXXXX, driver for 52G4XXXXXXXX) If no serial number is in stickers, try zeros instead of X in templates supplied. This scanner failed in Linux totally. No support at all and probably there will be no support at all.
WARNING: Under Windows XP install driver first, then plug the scanner in or installation will totally fail. This is important.
Plustek OpticPro S24 is a 1200x2400dpi simple flatbed USB scanner from ca. 2006. It is compatible up to Windows Vista, but can be unofficially used in Windows 7.
I got it for a price of a beer when I desperately needed a Linux scanner. And it works in SANE very well, however warmup time is quite long.
If you really want to install it in Win7, the method is to install its driver in Vista compatibility mode (NOT Vista SP1/SP2) BEFORE connecting the scanner. Then restart computer and connect the scanner. It will fail to install driver - find scanner in device manager, "Update driver", point the extracted driver directory.
Now I have Epson Perfection 2400 Photo (according to labels it's from 2006, but in fact it's an older technology). 2400x4800dpi, nice transparency unit, and a full support in Linux using free SANE Epson2 driver or non-free Epkowa driver. I hope this one will last a bit longer, because its quality is better than Samsung scanner made 10 years after Epson (2017). The only disadvantages are that it lights its lamp for 15-20 minutes after use/power-on and that colour negative definitions are poor and definitely if you write/copy ones, they will be better.