I imagine we've all seen those parking systems where, to enter the parking lot, you need to get, from a dispenser, a card which has a magstripe on the back, and then, when you leave, you feed it into another box which calculates what you owe. Some systems also support passes, where, in lieu of inserting money at the exit kiosk, you feed it your pass (which looks just like the other magstriped cards) and you get your pass back and are allowed to exit.
Out of boredom and hacker curiosity, I'm wondering what the format of the data on the magstripes is. They're not as wide as credit-card stripes. Because these cards are proprietary, they don't have to conform to any standard, so I'd be starting from square-one.
Assuming that I have access to an oscilloscope and could obtain a magstripe reader:
- How would I even figure out how many tracks the stripe has? I imagine that I can keep swiping the card, offsetting the stripe from the read-head a little differently each time, looking for "twin" signals when the read-head is straddling two tracks. But what would those twin signals look like on a scope?
- Are there any common encoding techniques used on magstripes (kind of akin to the way clock bits are/were kinda folded into the data on floppy disks with MFM)? Or is it standard to have a dedicated clock track? Or would there not need to be a clock track since the kiosk is in total control of how fast the stripe is swiped over the read-head?
- Any tips of how to construct an adjustable reader? All of the readers I've seen for sale seem designed for credit-card form factors. Are there generic read-heads I could find, somewhere?