SparkFun Forums 

Where electronics enthusiasts find answers.

All things pertaining to wireless and RF links
By kim
#36808
Hi there,

I just received my ID-12 rfid reader yesterday, but haven't been able to get any sign of life from it. I initially set up the circuit exactly as the following site describes (using an Arduino Diecimila):

http://hcgilje.wordpress.com/resources/ ... tagreader/

I was wondering what the simplest test was for checking if the module is dead. Right now I have pin 11 to 5V, pin 1 to ground, and pin 10 connected to the positive lead of an LED (which is of course also connected to ground). Is this enough to check that the unit can pick up an rfid card? So far I'm getting nothing.

Thanks in advance!

~ Kim
By kim
#36902
It took a couple of days, but I finally got this working. It turns out you have to be careful to place a resistor in series with the LED attached to pin 10, otherwise you might burn out the board. From what I can tell, I burned out the circuit that drives pin 10 (the LED), but the rest of the board miraculously survived. I connected it to the Arduino Diecimila and can now monitor incoming RFIDs on my computer. I'll be posting my code on the Arduino forums, since you have to use SoftwareSerial and some careful looping to catch the whole ID.

Anyways, great reader, now to stick it inside of a teddy bear :)

~ Kim
By Krogoth
#38029
A 1K resistor will probably make the LED very, very dim... a general rule for most LEDs that are connected to 5V is to use a 220 or 330 ohm resistor - this ensures it's bright enough to see without drawing too much current.
By hcgilje
#38034
Thats probably true, but I just followed the advice from ID-innovations who make the RFID chip who told me this: "The circuit diagram for the ID12 has an error. It will blow up the ID12 because the diode is driven directly without a 1k series resistor!!!"


hc
User avatar
By leon_heller
#38040
1k is fine with modern LEDs, it should be clearly visible indoors.

Leon
By DarioG
#38542
Yep I agree :)
470 makes it more lit than average, and twice the current.
By jaytee0108
#38802
Hi,
I was just wondering what kind of range are you guys getting with the ID-12? I know in the specs its says that the read range is 12cm but is that true? I actually want to develop a project with with this module but I need at least a 1 meter range. Do you guys have any suggestions?
By rpcelectronics
#39360
A couple of months ago I got my ID-12 in and within an of hour I had it up and working on a breadboard. The spec sheet was enough info to get it hooked up and running. I added an LED and small piezo buzzer for visual and audible indication when it decodes a HID card. (BTW, the DB9 adapter board is my own simple design, not SparkFun's)

Image

I wrote a small VB6 program to collect, parse, strip the checksum chars and log each decode. I'm looking at developing a simple card reader that will report the data over an RF link. One of the many projects I have on my bench to work on.

As for reading range, I have not seen anything better than about 6 inches or so. I did play around with laying different things over the reader and reading a HID through them. The range did'nt seem to be reduced that much by anything. I never tried anything metal, but I did try magazines, cardboard, abs plastic and other things I had laying around the shop.

One thing I have not figured out yet is making the bi-color LED that I have tied to it stay red until it decodes a HID, flash green and then go back to red. I was trying to do this without a PIC, but I think I might have to add one in eventually.
By robstar
#41294
Hi folks!
i've got my ID-12 hooked up to a 9600 8N1 serial port (is that right?) and when i flash the 5 cards i bought past it, i get confusing, inconsistent results. can anybody shed some light on my problem? i think the device is properly configured in ASCII mode.

thanks!
--Robstar

here is the data i'm seeing from a simple perl program to read (several passes for each card - note that these vary):
Code: Select all
$ stty raw < /dev/ttyUSB0
$ perl -e '$|=1; use Term::ReadKey; open(TTY,"</dev/ttyUSB0") or die; while(1) { my $c = ReadKey 0, *TTY; printf("%02x ", ord $c); print "\n" if(ord $c == 0) }'

# card 1
3f a6 f9 e6 e6 4c 97 cc 52 b9 a9 99 a6 cf 4f 00 
3f a6 f9 e3 e6 4c 97 cc a9 b9 a9 99 a6 cf 4f 00 
3f a6 f2 e6 e6 4c 97 cc a9 b9 a9 99 83 cf 4f 00 

# card 2
3f a6 f9 e6 e6 4c 97 99 2e 5e 64 67 c6 e5 d6 f2 00 
3f a6 f9 e6 e6 4c 97 99 2e 5e 64 67 46 e5 d6 f2 00 
3f a6 f2 e6 e6 4c 97 32 2e 5e 64 67 46 e5 d6 f2 00 

# card 3
3f a6 f2 e6 e6 4c 97 cc d2 66 a6 a6 4c 9e 3d 7e 00 
3f a6 f9 e6 e6 4c 97 cc d2 66 a6 a6 4c 9e 3d 7e 00 
3f a6 f2 e6 e6 4c 97 cc d2 66 a6 a6 4c 9e 3d 7e 00 
3f a6 f9 e3 e6 4c 97 cc e9 66 a6 a6 4c 9e 3d 7e 00 
3f a6 f2 e6 e6 4c 97 cc d2 66 a6 a6 4c 9e 3d 7e 00 
3f a6 f2 e6 e6 4c 97 cc d2 66 a6 a6 4c 9e 3d 7e 00 

# card 4
3f a6 f2 e6 e6 4c 97 32 97 cc cc 99 99 3c 3d 7e 00 
3f a6 f2 e6 e6 4c 97 32 97 cc cc 99 99 3c 3d 7e 00 
3f a6 f2 e6 e6 4c 97 32 97 98 cc 99 32 79 3d 7e 00 
3f a6 f2 e6 e6 4c 97 32 97 98 cc 99 30 79 3d 7e 00 
3f a6 f2 e6 e6 4c 97 32 97 98 cc 99 32 79 3d 7e 00 
3f a6 f9 e3 e6 4c 97 32 97 98 cc 99 30 79 3d 7e 00 
3f a6 f9 e6 e6 4c 97 99 97 98 cc 99 32 79 3d 7e 00 

# card 5
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 3d 7e 00 
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 3d 7e 00 
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 7a 7e 00 
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 7a 7e 00 
3f a6 f2 e6 e6 4c 97 cc 2e 5d 99 2e 2f 79 7a 7e 00 
3f a6 f9 e6 e6 4c 97 cc 17 5d 99 2e 2f 79 7a 7e 00 
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 7a 7e 00 
3f a6 f9 e6 e6 4c 97 cc 2e 5d 31 2e 2f 79 7a 7e 00 
3f a6 f2 e6 e6 4c 97 98 2e 5d 32 2e 2f 79 7a 7e 00 

# hmm..

# consistent, regardless of which card:
3f a6 .. .. e6 4c 97 .. .. .. .. .. .. .. ..    00
 ?              L

# consistent, given a card:
                     cc .. b9 a9 99 .. cf 4f
                     .. 2e 5e 64 67 .. e5 d6 f2
                     cc .. 66 a6 a6 4c 9e 3d 7e
                     .. 97 .. cc 99 .. .. 3d 7e
                     .. .. 5d .. 2e 2f 79 .. 7e
User avatar
By ds18s20
#41314
Could someone post a true unmodified raw output of what the serial stream looks like when you swipe a card?

I mean check digit and all? I am just curious?

Also is there a good tutorial on the different standards? I mean how does one decide between $30 SKU#: SEN-08419 or a $10 reader from eBay?

Thanks
~B
By robstar
#41733
putting the output of pin 9 ("TTL (inverted)") through a MAX3232 TTL-to-RS232 converter made everything work just dandy when connected to my computer's serial port. (RX, pin 2 on the D-SUB connector)

here's the full hex output for my 5 cards (one per line):
02 30 45 30 30 38 45 38 42 31 32 31 39 0d 0a 03
02 30 45 30 30 38 45 39 46 45 34 46 42 0d 0a 03
02 30 45 30 30 38 45 35 46 43 36 31 39 0d 0a 03
02 30 45 30 30 38 45 35 44 39 38 34 35 0d 0a 03
02 30 45 30 30 38 45 38 42 45 44 45 36 0d 0a 03

as the datasheet says, each of these lines is:
STX (0x02)
DATA (10 ASCII bytes -- "0E 00 8E 8B 12" for the first one)
CKSUM (2 ASCII bytes -- "19" for the first one, which is XOR(0E,00,8E,8B,12))
CR (0x0d)
LF (0x0a)
ETX (0x03)

sadly, i can't find any other 125kHz cards around the house to try -- my work-badge must be a more secure HID card and doesn't even register.
User avatar
By ds18s20
#41847
robstar wrote:sadly, i can't find any other 125kHz cards around the house to try -- my work-badge must be a more secure HID card and doesn't even register.
Cool, thanks for the post robstar. You got me thinking - what do you mean by "more secure"

I mean the rfid is just a low-range wireless medium that doesnt need power supply. how can it be secure, more secure, etc? it just pushes some sequence from the transmitter to the receiver.

if I had to guess, a "more secure" would be a some kind of sequence (may be random) which is encrypted with pre-shraed key that the HID card already has programmed inside its specialized IC?

But then even if the stream was different evey time what would prevent someone to just sniff it and then repeat it? (here I am trying to figure out how one could be prevented from duplicating their HID)

~B
By Ryansway
#42049
I.D. badges typically use 13.56, but can potentially use any number of protocols.

It would be rare for an I.D. badge to be using 125khZ, and usually because 13.56 has a slight range advantage.

13.56 readers can read multiple tags at one time (like at places where cards are played for money, which do use encryption in 13.56 btw),

I don't know of any 125khZ readers that can do that. 13.56 IC's also store more information than 125's, and scan more reliably with a lower rate of error.
By raygeeknyc
#42548
Hi
I've attached my id12 to a breakout board with 2 headers to connect it to a prototyping board, and am trying to get a simple test circuit to see if I have a working configuration.

Following this thread, I've connected pin 1 to +5VDC, pin 11 to ground, pin 10 to a 1K resistor which leads to the positive lead of an LED which then connected to ground.

I hook this up to power, pass some HID cards by the ID12 and... nothing.

I have a few questions:
1) Is this enough of a circuit, and plan, to test this chip? Should the LED light?

2) How sensitive is this to variations in power? My power is actually +4.4 VDC according to my multimeter.

3) If I *had* burned out pin 10 as was mentioned earlier on this thread, what is a good alternative for a simple test circuit? (No, I didn't hook up the LED without a resistor, this last question is asked out of curiousity and wanting to know an alternative test)

Thanks
---Raymond