|
Primitive Model 170 Card Reader Reverse Engineering --------------------------------------------------- Introduction: ------------- Recently I, *ahem*, acquired an American Magnetics model 170 card reader. Originally, I thought I was getting a 171, which have various SDKs and even an RS-232 jack on the back of them, which would have made it very easy to produce some software for it. But in an effort to always look on the bright side of things, I've embarked on a small effort to find a method of interfacing one of these things with a PC, but thanks to the inaccurate documentation available, it's turning out to be a bit of a struggle. If you have any info on these card readers, I'd love to hear about it. Official Specs: --------------- These card readers are supposed to support reading from magstripes, and reading/writing to smart cards. They are supposed to be incredibly durable little machines, specifically tuned toward fraud protection. They apparently have an anti fraud censor that will be able to detect any wires attached to an inserted card which is supposed to defeat a common smart card attack. It's supposed to operate comfortably between -25 and 70 degrees celcius, and is guaranteed for at least .5 million card insertions. It is supposed to come with a 26 pin, right angle, mount header with a Molex part number of 87049-2616, and has an option for a latch motor inside of it. Actual Specs: ------------- The one that I got is quite a bit different. All of the physical specs seem to coincide with the published details. The pictures match up, and mine even says "170 TDA,HD UP,FLG,SM,NT" on it, whatever the fuck that means. It also has "P/N 509892-002C REV:C" below that. I assume that means Part number and Revision. It also has an S/N on it, which I assume stands for serial number. It has 2 cool insertion detection mechanisms on it. It has the very cool smart card thingies on it, and an even cooler magnetic read head on it, but no latch motor, unfortunatley. By the way, it's got the cool American Magnetics Eagle logo on it, a bar code, and, if you were wondering, American Magnetics has their products made in China. A little ironic, hm? But that's where the similarities stop. Mine has an unlabeled ribbon cable connector with only 14 pins on it, making their pin listings in their PDF completely useless to me. Oh well. Reverse Engineering: -------------------- So, what do you do if you've got a piece of undocumented hardware that you desperatley want to interface with a PC? Good old mind numbing, painstakingly tedious reverse engineering. What I've done so far is measure the resistance between every pin while there is no current flowing in the circuit at all, and while the card reader was in 3 different states: Empty, Card partially inserted, and Card fully inserted. Here's my results: Resistance between pins: 2 and 4 - Norm: Low resitance. Once fully inserted, jumps to high resistance. 2 and 6 - Norm: Medium resistance. Seems to be slight changes in resistance as card is inserted. 2 and 9 - Norm: Low resistance. Jumps to high when card is partially inserted. 2 and 12 - Same as 2 and 4. 4 and 6 - Norm: Medium resistance. Slight change when card inserted. 4 and 9 - Same as 2 and 4. 4 and 10 - Same as 2 and 4 with more subtle jumps in resistance. 4 and 11 - Same as 2 and 4. 6 and 9 - Same as 2 and 4. 6 and 11 - Medium, unchanging resistance. 6 and 12 - Same as 2 and 4. 9 and 11 - Same as 2 and 4. 9 and 12 - Same as 2 and 4. 11 and 12 - Medium, unchanging resistance. Note: All combinations not mentioned didn't permit electrical flow between them. Smart card connections: Ok, another thing I've done is check the conductivity between the smart card contacts and the pins on the ribbon cable. Ok, I'm not exactly sure about wether there is some sort of convention about calling the card contacts certain numbers, so I'll just give you some ASCII art: Here's your card: Here's my numbering scheme: /-------------\ /-------------\ | | | | | O O O O | | 1 2 3 4 | | O O O O | | 5 6 7 8 | | | | | | | | | | | | | | | | | \-------------/ \-------------/ As you can see, the one towards the end of the reader is the first row. Anyways, it turns out there is a direct path between the contacts on the card reader and the pins on the ribbon cable. Here they are: Contact Pin 1.........10 2.........7 3.........2 4.........5 5.........13 6.........8 7.........14 8.........3 I can't really see any pattern. Hmm... No bother. Summary: -------- So, what does this tell us? Not much, unfortunatley. However, knowledge of these pins will be essential in the final software, I imagine. However, it would be concievable that somebody would want to make a short little program than once hooked up to the card reader would tell you on your monitor wether there was a card inside it or not. I think I'll try to make this as soon as I can get enough time to hack around with a serial port, or go buy a bi-directional parallel cable... The smart card can concievably be much more useful. You could directly connect it to a parallel port and run software directly from that. See the references section at the bottom for more info. Eventually, I'd like the software set that I hope to produce to be able to support smart cards in full. Eventually I would like to see a full software set with all the bells and whistles available for it, so everyone can see what exactly is stored on their magstripes or smart cards. Let me know if you would like to help out with this project. Also, more stuff you might want to read: This proves to be an effective way to get a model 170 card reader. And the price is right: http://www.hackcanada.com/canadian/payphones/payfone_assault.html This documentation doesn't help a lot... But it's still useful... Kinda... http://www.magstripe.com/manuals/UG-170F(C).pdf Info on interfacing a smart card reader (Possibly The 170) with a parallel port. http://hackcanada.com/ice3/card/pcsmart.html Some (ugh) BASIC programs on manipulating certain types of smart cards. Not to practical, but great proof of concept examples. http://hackcanada.com/ice3/card/1smart.bas http://hackcanada.com/ice3/card/2smart.bas Good luck, Fractal 06/17/2001