The Stripe Snoop project was the first electronics project that I attempted in 2008. This is the project that propelled me into wanting to do electronics for a living.
Since it has been over three years and closer to four, I am not showing the steps to make this. The second reason is that Make published a good tutorial by Billy Hoffman on how to construct this exciting project. This is another online tutorial using an octal buffer. What I will show is what mine looks like and a few things that I didn’t know “back then”.
The first item up for bid: I didn’t know what an octal buffer did. The octal buffer that the project called for was the 74LS541. The main objective of the buffer is to ensure that there is enough power to signal the parallel port of the computer, to keep anything crazy from going through to the parallel port, and to ensure that the card swiper is not heavily loaded.
I also didn’t know that it doesn’t matter which pins you use as long as your input and output are on the same “line”. Input to A1 is output on Y1 (A2 to Y2, and so on). I didn’t know that since I was new to the hobby. Order really didn’t matter. I know that now. Any hex or octal buffer would have worked as long as it was non-inverting.
Now, here’s the fun stuff. Last night (9-27-2011), I decided to go to my junk bin and pull out my card reader. It was dusty from being near my CNC router. Before that I kept chicks (peep peep) in there. I’ll never keep chickens in my hobby shed again!
I dusted it off and downloaded Stripe Snoop. I ran it, but nothing happened. No input or reaction. Several years ago this happened and I always thought that I had a short on the circuit board. Now I have an oscilloscope so I poked in the box while swiping the card. I found that my swiper and the octal buffer both worked and that the info was making it all the way through my parallel connector. There was no reason why it shouldn’t have worked.
The only problem was that I had forgotten how to use Stripe Snoop. It is not automatic with the parallel port. It was created to use with a game port, but I don’t have game ports. I barely have parallel ports. To enable Stripe Snoop to work with parallel ports, you have to specify the hardware address. In Linux I couldn’t figure that out. In Windows XP using SS version 1.6A, I had it working. The command line looks like -> [C:\Stripe Snoop\>ss -P 0x0379]. The address 0×3## may vary from machine to machine. That part will take a little investigation. The word PORT! should appear. This means it will work (in my case, at least).
The next thing that I didn’t know is the actual limitation on Stripe Snoop knowing everything. Sometimes a stripe may contain data that it doesn’t know what to do with. This usually happens when a card issuer has their own protocol for data. The following few paragraphs show that it is possible to figure out what is on those tracks using the raw mode in Stripe Snoop.
This link is where you can look for information about the data contained on the stripes of magnetic cards: Card-O-Rama: Magnetic Stripe Technology and Beyond. Using the information on that page I was able to determine and decode the data on my Winn-Dixie Fuel Perks card.
This is what is contained on track #1 of the card using the raw output of Stripe Snoop. [C:\Stripe Snoop\>ss -r -P 0x0379].
The bottom of the picture is the raw data pasted into Notepad and arranged to fit the window. Then I separated the codes into 7-bit segments. I started with 1010001 which is %. According to Stripe Snoop’s Card-O-Rama page, this is a “Start Sentinel”. Then I put a space every 7 bits. The space allowed me to easily find and replace exact matches of 7 bits. Using the ASCII chart on the Card-O-Rama link, I decoded the file one character at a time using the ctrl-find-replace-all (ctrl+h). I should write a program to do this for me, but it’s more fun just doing it by hand. Not all cards are this nice.
Below are the photos of my card reader. I also want to note that the battery that I used was the original battery that I used in 2008. It was 8.42 volts. I measured the current draw of the whole circuit (power LED included) and it was about 33mA. Now that I learned about the raw mode of the Stripe Snoop program I think I’ll be using it more to detect and decode what is stored on all of my cards.