Magnetic Read-Head

Hi everyone, I'm a electronics student and I'm working on a project in which I need to decode the information from a magnetic stripe, I'm trying using arduino for the first part of this, but I'm having troubles retrieving the data signal from the card, I'm using a magnetic head-read, just the magnetic head, no circuitry whatsoever :open_mouth: , the head is a 3-track reader like this one and I wanna retrieve the information from the middle track, any help would be really appreciated XD

Thanks in advance guys


The magnetic read head is probably producing only a few millivolts. You will need an amplifier to get the signal level up much higher. I would look for articles about magnetic read head amplifiers.

Might it be possible to salvage or copy circuitry from (old) tape drives to do the amplification or would it be simpler to use transistors/op-amps?

This article supplies some background info:

Looks like you have to look for positive and negative pulses of about 25 millivolts.

TY. My understanding so far has been bits and pieces about the equipment I lived and worked with though my favorite explanation is from The Secret Life of Machines.

hi guys thanks for the replies, you think it'll be possible to do the apmlification with the Arduino?? or do i need an external amplifier?? 'cause the arduino isn't going to be on the final implementation of the project, and then again do you know how to connect the head that I'm using?? I'm guessing that the signal goes from the pin labeled "track 3" but do I ground the head common pin???

Many thanks for the help XD

Lady ada did a youtube video on something like this from what I remember.

I am not sure it is on adafruit or not. If i remember right it was on her citizen engineer or social engineer or one of her other tutorials.

I am not sure it will help you but may point you in the right direction.

good luck with your project.

johnwasser: Looks like you have to look for positive and negative pulses of about 25 millivolts.

So you only need to boost the signal about 160 times?

The faster the card is swiped, the stronger the but shorter the pulse?

That chip you linked to, black magic! I bet it could be used for some evil circuit by evolution scheme.

I'm not much of an electronics wizz, but since a mag head reader is not a million miles from a tape-deck, how about boosting the output signal with a LM386 before you feed it to the Ardu'?

V. cheap, reasonably low noise and adjustable gain to 200x, LM386 should give you a signal you can read on the Ardu with a pretty low part-count. If the pulses are really +/- 25mV, you might need to bring the +ve input up to 2.5V and feed your signal in to the -ve input with a gain around 50-80. It would invert your signal but I'm not sure it would matter.

Dr_Ugi: It would invert your signal but I'm not sure it would matter.

Actually, the polarity doesn't seem to matter. It's the time between polarity changes that matters.

I think any op-amp would work. Connect the read head to the + and - inputs of the amp. That will turn all pulses into the same polarity and amplify them. Hook the output to an Arduino interrupt pin (2 or 3) and trigger on the rising edge to detect polarity changes. Long times are 0's and two short times are 1's.

Something for me to learn more about, I found this link to a PDF that looks like it will help:

:smiley: you guys rock!! thanks for all the help, I’ll try the several options you’re posting and keep you updated on how it goes, again thanks for all the help :smiley: … and by the way, really not sure… do I connect the common pin to the “head common” pins to ground??

Again, many thanks guys XD