Manipulating Optical Mark Readers
Depending on your point of view, this is either a pointless exercise or an intriguing challenge...! Anyway, here goes.
We have a couple of OMRs (DRS CD210 models) that are used extensively (excessively?!) for registration. One recently required some attention to get it back on top form, and the process of sorting it out led me to the conclusion that they're pretty robust devices, and could have other uses. For example - DIY survey and form collection, etc. Also, one of the IT teachers noticed the device in my office and asked if it could be used to show the pupils another form of input device (they get bored with keyboards, mice and so on), and I thought I might be able to produce some demo forms for them to play with etc.
I looked for some freeware that might interface with the OMR but with no success. So, I've started interrogating the serial data that flows when the OMR is being used for registration, and worked out what controls are sent from the PC to the OMR to get it 'ready' for scanning; this process clearly also sets up the parts of the page to scan (via a hexadecimal string which requires some further investigation; for now, I'm using the one the register program sends it). I've managed to get a sheet fed through, the result of '0' returned (as it was a blank page!) and sent the 'accept' or 'reject' commands back to the OMR, which either ejects the sheet into the output bin or throws it backwards for a retry.
In my opinion, this would be enough to demonstrate the principle to the students, but I'd ideally like to make a little interface program to send and receive the appropriate commands via simple buttons, rather than have to type in loads of ECHO statements into a DOS window. Also, if they could 'code up' a sample OMR sheet and see the reader interpret their marks, that would be quite nice. Does anyone have any thoughts on this, please?
If anyone's interested in my discoveries so far (including the commands for controlling the OMR etc) then I'm more than happy to share!