I had OmniKey CardMan 5321 reader sitting on my desk for quite some time. First time I tried it, I had problem with propitiatory binary driver which expected pcscd to be compiled without hal support to make it work.
Fortunately, we now have pcsc-omnikey package in Debian which should make usage of this reader much easier. But, I really wanted more low-level implementation, allowing me to muck with cards without need to pass through whole smart card stack (since I'm really only interested in RFID part of this reader).
So, I did some searching and found out that librfid - A Free Software RFID stack implements support for this reader, so here is a quick overview of how to get started:
# build dependency dpavlin@klin:/rest/cvs/librfid$ sudo apt-get install libusb-dev # checkout source dpavlin@klin:/rest/cvs$ svn co https://svn.gnumonks.org/trunk/librfid/ dpavlin@klin:/rest/cvs$ cd librfid/ dpavlin@klin:/rest/cvs/librfid$ ./autogen.sh # build dpavlin@klin:/rest/cvs/librfid$ ./configure --enable-ccid dpavlin@klin:/rest/cvs/librfid$ makeNow we can test if our reader is working:
dpavlin@klin:/rest/cvs/librfid$ sudo ./utils/librfid-tool -s lt-librfid-tool - (C) 2005-2008 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY initializing librfid opening reader handle OpenPCD, CM5x21 No OpenPCD found scanning for RFID token... Layer 2 success (ISO 15693): eb 6e 77 1f 00 01 04 e0And, that's not all. We can also read content of our tag:
dpavlin@klin:/rest/cvs/librfid$ sudo ./utils/librfid-tool -r -1 lt-librfid-tool - (C) 2005-2008 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY initializing librfid opening reader handle OpenPCD, CM5x21 No OpenPCD found Layer2 init ok Layer 2 success (ISO 15693)[8]: ' eb 6e 77 1f 00 01 04 e0' block[ 0:00]sec:0x8 data(4): 04 11 00 01 block[ 1:01]sec:0x8 data(4): 31 33 30 32 block[ 2:02]sec:0x8 data(4): 30 32 39 37 block[ 3:03]sec:0x8 data(4): 31 30 00 00 block[ 4:04]sec:0x8 data(4): 00 00 00 00 ... block[ 26:1a]sec:0x8 data(4): 00 00 00 00 block[ 27:1b]sec:0x8 data(4): 57 5f 4f 4b no data(read_block(28)>> -1)It's exactly what I was looking for: ability to do low-level block transfer with RFID card.
This is great news since I don't have to carry bulky 3M reader and antenna with me to conferences to demonstrate RFID. Since I didn't find librfid first time I searched for software to drive this reader, I hope that this post will be helpful to someone.If you intend to buy RFID reader, take a look at OpenPCD instead of this one :-)

Comments (3)
Pozdrav! Prijatelj me uputio na tvoj blog jer sam ga pitao za savjet vezan uz RFID. Pregledao sam tvoj RFID kategoriju ali imam par pitanja na koja nisam našao odgovor.
Dakle, htio bih neki lako dostupan budget RFID reader te par tagova za testiranje. Interesantna mi je ideja praćenja vremena koliko je koji korisnik proveo u sustavu, a mislim da bi se to moglo riješiti RFIDem. Nemam iskustva s time no pregledao sam tvoj blog, odnosno RFID kategoriju i zapeo mi je za oko OpenPCD projekt, ali njihov webshop je nedostupan s porukom "The webshop is currently down for maintainance and will be open again on November 8th.". :/
Konkretno bih htio jednostavnu mogućnost čitanja i pisanja s RFID kartica tako da npr. mogu proizvoljno zapisivati vlastite ID brojeve na karticu. Ne znam koliko je sama sigurnost ključna za mali, osobni sustav. Našao sam par uređaja koji imaju tu mogućnost, npr ovaj:
125Khz RFID Reader Writer with RS232 port
Prema datasheet pdfu na tom siteu, uređaj se spaja preko RS232 porta i radi s Atmelovim T5557 tipom kartica:
PDF na Atmel siteu - T5557
Htio sam već naručiti ali sam se odlučio malo bolje raspitati. Ako sam u pravu, pomoću ovoga bi i početnik mogao napisati vlastitu aplikaciju na bilo kojem OSu i jeziku/biblioteci s pristupom RS232 portu, zar ne?
Posted by Iguana Raznjic
|
January 13, 2011 8:40 PM
Posted on January 13, 2011 20:40
Da, to je jedan način da dodaš RFID u aplikaciju. Međutim, pravo pitanje je da li zapravo sa druge strane imaš RS232 port ili možda USB i želiš li zapravo pisati podršku za "neki RFID reader" (napisao sam podršku za dva, nije nešto ali oduzme tjedan dana vremena) ili je jednostavnije uzeti neki već gotovi library, npr libnfc i uzeti kompatibilni reader (npr. touchatag) i zapravo napisati samo nekoliko linija koda sa jednostavnog USB device-a.
Pisanjem podrške za RFID reader naučiti ćeš više o RFID-ju nego što si ikada želio znati, ali zapravo je pravi kriterij da li želiš RS232 ili USB :-)
Posted by Dobrica Pavlinušić
|
January 13, 2011 9:47 PM
Posted on January 13, 2011 21:47
Odlično! Puno hvala na odgovoru, pošteđen sam mučenja sa serijskim portom. Touchatag se stvarno čini kao najelegantnije rješenje, a libnfc primjer mi izgleda poprilično jednostavno.
Stvarno je šteta da postoji toliko puno raznog RFID hardvera, a praktički nijedno slobodno i standardno hardversko rješenje, jer iako znam da ne bih trebao imati nikakvih problema svejedno postoji ona sumnja "možda od jučer nenajavljeno prodaju ACR122 s nekom novom verzijom firmwarea". Eto, hvala puno još jednom, Bud me na pravo mjesto poslao.
Posted by Iguana Raznjic
|
January 14, 2011 1:35 AM
Posted on January 14, 2011 01:35