Arduino Magnetic Stripe Reader

This is my implementation of the magstripe reader application for the Arduino microcontroller. The goal of entry is to provide a precise guide on how to hookup a magstripe reader and get it working. This project is based on the Panasonic #ZU-M2121S451 card reader that is available for $3.50 at All Electronics.


The pins that concern us are painted red. They are located on the right with wires leading to them. The top one is number 1 and the bottom one is number 7. As you can see in the picture that the reader is oriented so the white sticker is readable, the board is towards the bottom and the ZUPM200003 etched in the PCB is upside down.

Pin 1: +5v

Pin 2: Data

Pin 3: Clock

Pin 4: Not Connected

Pin 5: Card Status

Pin 6: Not Connected

Pin 7: Ground


The following is how they are connected to the Arduino:

Pin 2, Data: Digital 2

Pin 3, Clock: Digital 3

Pin 4, Card Status: Digital 4

Pin 1 and 7 obviously go to the 5v and GND positions on the Arduino.

The following code is to be used only for legal purposes. Neither the original author nor I are responsible for misuse of this code. This example illustrates that magnetic stripes are not a secure method of sending and/or receiving data.

Download the code here.

I changed the location of the Status pin to make hooking the reader up easier. In this configuration it only takes up 3 pins.

Here are some links that might be helpful:

This entry was posted in Arduino, Projects and tagged , , , , , , , , , . Bookmark the permalink.

2 Responses to Arduino Magnetic Stripe Reader

  1. C.J. says:

    Hi, Calvin.

    Circuit Cellar magazine is always looking to publish new articles about interesting Arduino projects. If you’re interested in learning about a publishing opportunity, email me at

  2. Pingback: Arduino Magnetic Stripe Reader | The Arduino Project Spotter

Leave a Reply

Your email address will not be published. Required fields are marked *