I’m a bit fascinated by magstripe technology. It’s certainly not cutting edge these days, but it’s something most hobbyists don’t have access to. If you haven’t already, read Count Zero’s “A Day in the Life of a Flux Reversal” – it’s a classic, and a terrific primer on the subject. I cut my teeth on encoding machines at my first job after college when I started fixing them for the largest casino in the US. In those days most of what I learned was by reverse-engineering…and that pretty much still holds true.
Sometime this past summer I grabbed a 3-head read/write magnetic stripe assembly off of ebay. It looks to be made for ATM machines, because it has some security features built in. There is a guillotine-style gate at the card entry that can only be activated by a solenoid, and a magnetic sensor at the front, ostensibly to detect that a valid magstripe equipped card has been entered.
The card path is fairly simple, but there are several rollers that move the card along and multiple sensors along the way. At first I assumed the 4 wires coming from the motor meant it was a stepper, but on closer inspection I think it is a dc motor coupled to an encoder wheel internal to the casing.
I bought this thing just to play around with, really. I already have a decent 3-track HiCo encoder, but it has limitations. I can’t set the cpi or adjust the lead-in or positioning of the tracks. I was hoping to be able to do all that using this machine and a custom Arduino based controller.
I haven’t gotten too far into the circuitry, but recently I sat down and traced most of the sensors and some of the control circuit. I don’t care about what’s on the EEPROM because I know how to put data on a card. I would like to use most of the existing electronics, though. Come to find out, the motor is a dc-type with some sort of optical encoder or tach. I’m not too familiar with dc motor control using feedback. The motor’s speed is kept constant using a motor controller IC that takes a signal from one of the pairs of wires. The other pair goes to the DC motor itself and is powered through another IC which takes its supply voltage from the motor controller IC. With this setup, there are only 3 control signals needed. This enables start/stop/brake and direction control. I plan on cutting the board down with my dremel to remove the unnecessary electronics. Then I’ll solder some wires to the board traces to piggyback on the control circuitry. I might keep the circuitry that interfaces to the sensors, but I’m not sure that I need to. The Arduino can probably interface directly to optical transistors or photoresistors or whatever they are. This is as far as I’ve gotten right now, I’ll post more as I figure it out.