I recently heard about a free bar code
scanner available at Radio Shack (tm). Not one to pass up free hardware, I
went and grabbed one to play with. Not one to jump right in, I checked
around on the Internet to see what could be done with my free barcode
scanner - and lo and behold, it turns out that not only was there a linux
driver, but that the author had been sent a cease and desist order!
It seems that the manufacturer of these freebie scanners didn't like
the idea of people developing decoding software that didn't provide them
with lucrative marketing info. (Lets not even mention the serial number
that is sent everytime you scan something with this reader...)
Now, not one to give up, I kept doing research on the subject until I
found a curious note from a guy named Jeff Dobkin. It seems he poked
around on his scanner, with board revision FM+H Ver 0.3 and found that
adding a jumper caused it to output plain ASCII - and just the data, not
the serial number or type. Wow! I thought, but I have a newer rev board -
the TM+H Rev 3. Would it work? Only one way to find out - fire up the old
soldering iron.
The upside is that since it can be reasonably
asserted that you own the hardware outright, this modification is
perfectly legal. You don't need any additional software, either the
original or recently released drivers, to get useful output. It outputs
plain text. This means that you can use it in DOS apps, where the clever
hacks don't seem to work so well. Since you are messing with your own
stuff, you can do what you like to it, even solder wires onto the PCB! The
downside, if you want to call it that, is that the reader will no longer
work with the supplied software package. (boohoo... ;)
Here are
some pictures of my scanners board, with colored dots noting areas of
interest.
This second image
shows the backside of the board with the jumper wire.
The yellow dot covers the pad that you
should jumper to. You need to apply +5 volts to this pad, so jumper a wire
from the RED LED power wire (Vled+) to this pad. Jumpering to other pads
doesn't seem to have any effect on the scanner, but also doesn't harm the
scanner either. As a side note, I suggest you "tin" the wire before
inserting it into the plated hole. Tinning just means heating the wire and
letting it soak up a little solder until it looks like a solid wire. Don't
use too much solder, though, or it won't fit in the hole.
Lastly,
it is possible to disable the serial number embedded in each scanner as
well. If you will notice the red shaded pads near X1 - you will discover
that they connect a certain serial EEPROM chip, a S93C46DV03. By removing
the shorting "blobs", you will disconnect the serial EEPROM from the
microcontroller, effectively declawing the board. Note, if you apply the
above hack, there isn't any point in applying this one, as the serial
number data isn't sent. If, however, you want to "anonymize" your cat,
then by all means - desolder those connections!
As a side note, I
have read that you can still use a reader with the serial EEPROM disabled
with the original software. By only applying this second
modification, you get a reader with no serial number at all.
Here
is a closeup showing the pads that should be desoldered. Use a find
desoldering braid, available at any decent electronics store, to remove
the blobs
Note, none of the
info on this page was original thought. The text clipping I made indicates
a certain Jeff Dobkin found out about this first. I found the reference at
http://www.topica.com/lists/pla_upl/read/message.html?mid=1702776249
I would like to note Michael Guslick's excellent hardware discussion at http://air-soldier.com/~cuecat/.
From this site, I understood the importance of the serial EEPROM
chip. Desoldering these pads was merely an extension of this. :)
Obviously, I don't need the driver software anymore, but I did go to the
trouble of understanding how the encoding scheme works - and it is
terribly simple. (laughable, if this was the basis for any kind of legal
protection). There is a great site http://www.fluent-access.com/wtpapers/cuecat/
kept by Stephen Satchell regarding the encoding scheme.
So, now
where? Well, you have a fully generally purpose barcode reader - you do
the math. Personally, I'm whipping up an Access database based on both the
modified, and unmodified readers. The unmodified reader can be used to
provide accountability - see who changed that data by storing the serial
number along with the data!
Good luck!
UPDATE
Apparently, the decryption on/off switch is different for different
boards. The FM+H Ver 0.3 and TM+H Ver 0.3 both appear to use the second
pad from the left. The HO+E Ver 0.2 board uses the *FOURTH* pad from the
left. This corresponds to a scanner model 05A00 - the 07A00 all appear to
use the TM+H Ver 0.3 boards.
Here is a picture of the HO+E board
with a jumper wire inserted. The purple mark points to the correct hole
(though this may not be true on your board!)