Genius logo scanned with geniusvp2-0.2 geniusvp2 SANE backend

Home | Supported Devices | History | Tools

Back to 2002, my search for a Linux driver for this scanner started with looking at the scanners supported by SANE: None of the existing drivers seemed to support my specific model. Further investigation (which included searching for the FCC ID and opening my device looking for part numbers) revealed that this scanner was in fact a Primax device, so I started looking for Primax Linux drivers and found this project:

Trying the available code was unsuccessful as quickly showed that my model was not supported. Even worst, my scanner's MODEL ID, when compared to the list at says it's a Primax Colorado D600, but that's not true.

I then started looking at the alternatives listed at and found this one very promising: At first, the latest version didn't do anything to my scanner (it even didn't "wake up"), but testing previous versions (specially the first two) made my scanner do some movement, but still no scanning. I then downloaded Bochs source, modified it to make it communicate directly with the parallel port instead of emulating it, and added some code to make a communication log (this is called "sniffing"). You can find the patch I made to Bochs on the Tools section.

Next, I tried to read the trace and understand how the communication protocol works, comparing it with pxscan's code. Then I found some patterns and made some modifications to pxscan (usually changing values sent to registers) based on the data from the trace. After months studying the trace and modifying pxscan, I finally could do a successful scan, although it had bad quality.

After having some code that could at least scan something, I started the geniusvp2 project and released geniusvp2-0.1 (which was a standalone program). The next versions had the SANE backend.

Last Updated: Saturday, 28-May-2005 21:04:42 UTC