SonikTech
A collection of projects by Jarek Lupinski, dedicated to inspiration and innovation
|
Resume |
|
Necessary Preamble - Do not do anything illegal with this. My reasons for building the SDMCE were legal. If yours are not, do not build this device. Its potential for good is valuable to many people out there, do not ruin a good thing for the rest of us by using it to access somewhere you do not belong. |
|
|
|
||
| Concept - Based on powerpants' Magnetic Card Spoofer, I set out to build something more portable, which would let me program combinations on the go. http://www.instructables.com/id/Magnetic_stripe_card_spoofer/ allows you to use a program on the computer to compile a wav file, which you play through an mp3 player through an amplifier, which drives the electromagnet. While this is fine if you know the card data beforehand, in the field it would be time-consuming to find a code, take it back to your computer/laptop, compile the program, and then return with the sequence saved as a waveform. I built this on the concept of outputting not a waveform through an amplifier into an electromagnet, but instead pulses from a microcontroller, and found through trial and error that an ATMega168 can produce enough power to drive the electromagnet directly. This system is still very beta, and I hope to build on it some more before posting a final version. |
|
|
| Click any of the pictures to get a larger version. The schematic is huge, please save it before viewing. This schematic is just for illustrative purposes, there's probably a misplaced wiresomewhere in this jumble. Power supply additions are up to the DIYer, I used a 9V battery and a 7805 5V Voltage Regulator for VCC and GND. After you wind the electromagnet, you'll have 2 wires coming out, either one can be In or Out. I highly recommend prototyping this entire system on solderless breadboard first, as there might be a few things that go wrong. Values for R are all 10K, and experiment with the dampening capacitor between VCC and GND. I haven't found any value that doesn't dim the backlight on the LCD when the data is sent through the electromagnet. |
|
|
|
I used wire from an Ethernet cable, as it was the thinnest stranded wire I had at the time (student's budget ;) ) A more professional build would likely contain PCB's and headers. Well, there's always version 2.... |
|
|
|
My ATMega168 assembled according to the schematic. Not shown are all the dampening capacitors I added later due to my backlight dimming every time the data stream was sent through the electromagnet. Does anyone have any suggestions on a good value? I ended up using .1uF ceramic. Note the 7805 in the top left and the pull down resistors on the right. Also this prototype doesn't have an ISP header, as the jumble of wires was already getting silly. |
| |
|
A simple 4x4 button array. Individual rows and columns lead back to the microcontroller. Be very careful with tactile switches; they each have 4 leads, but each of them is always connected to another one. Engineers' motto - test twice, solder once. This is interfaced by the Arduino keypad library, which can be found on www.arduino.cc |
|
|
|
The electromagnet. I haven't counted the number of turns or dimensions or anything. I passed the 30 gauge enamel coated magnet wire back and forth over the stainless steel shim about 7 times, or until "it looks powerful enough". Looking at how much is left on my roll, I used about 25 feet of wire on the shim, which is a T shape 3/16" wide at its narrowest, then expanding to 1/2" at the end, by 2 1/2" total length. The shim itself is really thin; just pick something that slides smoothly into your card reader. Also, after you cut it down to the T shape, it will have sharp edges. I carefully wrap one layer of electrical tape over the entire shim (leave the part of the electromagnet that touches the card reader uncovered), then attach one end of the magnet wire to a multimeter, and set it to measure continuity. Attaching the other end to the exposed metal part, I wind the electromagnet, and if my multimeter goes off, that means there's a short between the wire and electromagnet, and I carefully unwind that part, and rewind it on top of another layer for a few turns, the continue more carefully. Shorts tended to occur more frequently in the corners. |
|
|
|
The completed circuit, with a power switch in the top right. Note there is electrical tape over the button array so it doesn't short with the main board. |
|
|
|
I bought the smallest enclosure from digikey that could contain both the LCD and a 9V battery. It was the most expensive part of the project, at ~8$USD. |
|
|
|
The program turns on the LCD and shows the current status of the program. You then choose between 2 modes - Number and Normal. Number mode is used when you know that the codes your institution uses have the same bits in a few places, and would like to save yourself the trouble of inputting start and end sentinel bits every time. You need to modify the source in order to use this feature. Otherwise, in Normal mode, the 10 numbers and 2 special characters (start sentinel and end sentinel) are available for you to input. Once you input your desired data, the code translates that into binary, calculates the LCR, and then outputs the resulting binary stream through the electromagnet. For a more in-depth reference to how a magnetic card is encoded, please refer to the many datasheets available online. The one I found to be the most useful was http://stripesnoop.sourceforge.net/devel/magtek-io.pdf . For even more info, read everything on this page http://stripesnoop.sourceforge.net/devel/index.html . |
|
|
|
You can modify the source to allow you access to all 16 Hex characters, I just had no use for the other special characters. Just change the switch cases, easy. |
|