I'm using an Arduino Uno to read from a "HID multiCLASS (RP40CKPNN) reader", which is a stand-alone reader that reads cards and returns a number of bits via Weigand Data0/Data1 protocol. The "multiCLASS" readers can read both 125HZ PROX tags, and 13.57MHz mifare tags.

I have it reading and decoding 125HZ (multiple-PROX format) tags of various bit-lengths just fine, but when the reader is presented with a 13MHz card (specifically Mifare cards) the reader decodes the CSR/UID of ALL Mifare cards to 32bits. The Mifare cards come in two types, Classic (that use a 4byte UID), and Ultra (that use a 7byte UID), so I would expect 32bits for the Classic cards, and 56bits for the Ultra, but I only ever get back 32bits.

The reader's data-sheets specifically calls out that for mifare tags it should return a 32bit or 56bit CSR value based on the serial number of the card, but I've looked through lots of HID literature on this reader, and I can't find any specifics on how to change/modify its configuration.

Does anyone have any experience with these readers, and is there some trick to changing the configuration so that it returns more bits for Mifare cards?

  • Can't you just reverse the order of the bytes? This sounds like an "endian" issue of your library. Please provide a link to the library.
    – Nick Gammon
    Jan 18, 2016 at 20:46
  • Were you possibly looking at my other question? That was a question about reversing the order of the bytes (which is how I was finally able to to get the correct 4byte UID). This question is specific to this readers. It provides me only 32bits for both mifare classic (4byte UID) and mifare ultra (7byte UID). I would expect it to return 32bits for mifare classic and 56bits for mifare ultra, or am I missing something completely?
    – ZacWolf
    Jan 18, 2016 at 22:00
  • it looks like it decodes the CSR/UID of all Mifare cards - what are the words "it" referring to here? Please provide a link to the card in question, the library in question, and your code. In what way does "it" look like it is doing "it"?
    – Nick Gammon
    Jan 18, 2016 at 22:08
  • IT, as I state in my questions is an: "HID multiCLASS (RP40CKPNN) reader" hidglobal.com/products/readers/iclass-se/smart-card-readers. It uses a Wiegand interface to transfer information to my Arduino. I've reviewed all of the information I can find on this specific reader, and from what I reading between the lines it looks like some of the configuration is done via proprietary cards, but I can find not further information on that.
    – ZacWolf
    Jan 18, 2016 at 22:18
  • To be clear, this is not one of the breakout board readers such as the PN522, or Paralax serial reader, etc. It's a 3rd party "stand alone" reader that returns a set number of bits via Wiegand Data0/Data1 interface to the Arduino. I'm just trying to find out if anyone has any specific experience with these readers. THANKS!
    – ZacWolf
    Jan 18, 2016 at 22:21

1 Answer 1


For this specific reader, communication is only one way, from the reader to the Arduino via Weigand protocol. Because of this, changes to the configuration for these readers is handled by proprietary RFID cards obtained from HID Global. The reader reads the card, and changes its configuration accordingly. I was able to reach out to HID Global technical support and they are sending me a card that will change the configuration to output 56bit CSN/CSR/UID for mifare cards (which will cover the 7byte UID of mifare ultra).

Thanks for the comments that helped me work this through.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.