RDM 880 RFID reader connection problem

I'm an arduino beginner and am struggling to connect the RDM880 rfid reader from cool components to arduino

Has anyone else managed this? What pins/code did you use? Do you know of any examples available for this reader? There's plenty available for other readers but I'm struggling with the one I bought

Any thoughts? The data sheet is not helpful ( to me anyway) :)


A search of the cool components site did not show any RFID readers with the RDM880 part number can you post a link please.

The data sheet is not helpful ( to me anyway)

Sometimes this is God's way of telling you that you are not ready for such a project. ;)

it’s listed as RFID Reader - 13.56Mhz
at cool components http://bit.ly/cViamR
the data sheet lists it as RDM880
many thanks for looking and hopefully pointing me in the right direction :slight_smile:

Ok, two things. First off you need an antenna for this, have you got one?

Second it communicates serially. As you are using the arduino's inbuilt serial to communicate back to the computer you need another serial port. This is fine if you have a mega but if not you need to look at the new software serial library to allow you to bit bang a serial port:- http://arduiniana.org/libraries/newsoftserial/ That data sheet doesn't tell you what commands it will accept but you should get a packet of data back when you present a card. You will find the unique ID in that packed along with some header and check sums. To find out the protocol to talk to it look for the MFRC500 data sheet.

hi thanks again yes I have the antenna and yes I have been using newsoftserial I have been trying to replicate the example here on instructables http://bit.ly/aFg6Js - code available on step 3 and using digital pin 2 on arduino (duemilanove) to the tx pin on the rdm880 however I am getting no signal at all at present - I had access to another board to rule out a problem with the board too puzzled and frustrated >:(

So post a schematic of how you have wired it up.

Im having the same issue and was wondering if you ever resolved this? I found some instructions for RDM630 (bit.ly/a3SchW) but the pins slightly differ. The 880 has a reset pin on J2, 1 with an unspecified purpose and for this reason I have not yet connected it.

As I said before:- So post a schematic of how you have wired it up.

Without that how can you expect any help?

The 880 has a reset pin on J2, 1 with an unspecified purpose

Read the data sheet.

Links to my schematic and the RDM880 data sheet

That data sheet doesnt really say that much, but the board says 880SPI-RC500 so im guessing it has the mifare rc500

edit: an antenna is included with RDM880

hi - mike and c0dem4gnetic yes that's exactly how I have been wiring it and I have been using the instructables code I linked to earlier all to no avail I'm very frustrated has anyone had any experience with the rdm880? should I be looking at a different reader perhaps? thanks

The data sheet says that the reader chip is (amongst others) an MFRC531, look at you board and see if it is this type. If it is the data sheet is here:-

Or if it is a MFRC500 the data sheet is this:-

Things to check:-
The reset line is not shown as going anywhere, trace on your board if it has a pull up resistor fitted. If not you need to connect it to an arduino output pin, pulse it during setup and leave it high.
You only receive data from this board. Will it output anything without it being initialised?

What do you mean by "pulse it during setup"?

I now got the RDM880 working! I found an article by michu of neophob.com where he uses something called a Bus Pirate to communicate with the 880 over a terminal. While the 630 to me seems to work “passivly” the 880 needs commands to operate. Michu connects RESET, but when testing i did not need this (but not yet validated that output is correct, just happy to get something out of it :P). What I did need to do was to connect both RXD and TXD (RX on Arduino goes to TXD on 880 and vice versa), which enabled me to send MF_GET_SNR.

byte MF_GET_SNR[8] = {0xAA, 0x00, 0x03, 0x25, 0x26, 0x00, 0x00, 0xBB};

void setup()  

  // No longer using NewSoftSerial but instead an Arduino Mega

  Serial.println("setup() ends");

void loop()
  Serial1.write(MF_GET_SNR, 8);
  while(Serial1.available() > 0) {
    Serial.print(Serial1.read(), HEX);
    Serial.print(" ");

Sample output

setup() ends
AA 0 2 1 83 80 BB --
AA 0 2 1 83 80 BB --
... card goes near antenna
AA 0 6 0 0 43 A7 6E 67 EB BB --
AA 0 6 0 0 43 A7 6E 67 EB BB --
... card removed
AA 0 2 1 83 80 BB --