is it possible to read TI dynamic tag from adafruit PN532 re

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
nondescript
 
Posts: 4
Joined: Wed Dec 04, 2013 9:03 pm

is it possible to read TI dynamic tag from adafruit PN532 re

Post by nondescript »

I bought NFC shield from adafruit.

http://www.adafruit.com/products/789

I wanted to read TI RF430CL330H dynamic tag with it. Since the tag is ISO14443B standard, i thought using this code from the examples which is for ISO14443A tags would work but looks like it doesn't.

I am using the following target board as tag with pn532.

http://www.ti.com/tool/rf430cl330htb


So, my question is if pn532 can read TI RF430CL330H dynamic tag? I appreciate any help.

Code: Select all

/**************************************************************************/
/*! 
    @file     iso14443a_uid.pde
    @author   Adafruit Industries
    @license  BSD (see license.txt)

    This example will attempt to connect to an ISO14443A
    card or tag and retrieve some basic information about it
    that can be used to determine what type of card it is.   
   
    Note that you need the baud rate to be 115200 because we need to print
    out the data and read from the card at the same time!

    This is an example sketch for the Adafruit PN532 NFC/RFID breakout boards
    This library works with the Adafruit NFC breakout 
    ----> https://www.adafruit.com/products/364
 
    Check out the links above for our tutorials and wiring diagrams 
    These chips use I2C to communicate, 4 pins required to interface:
    SDA (I2C Data) and SCL (I2C Clock), IRQ and RESET (any digital line)

    Adafruit invests time and resources providing this open source code, 
    please support Adafruit and open-source hardware by purchasing 
    products from Adafruit!
*/
/**************************************************************************/
#include <Wire.h>
#include <Adafruit_NFCShield_I2C.h>

#define IRQ   (2)
#define RESET (3)  // Not connected by default on the NFC Shield

Adafruit_NFCShield_I2C nfc(IRQ, RESET);

void setup(void) {
  Serial.begin(9600);  //i had to use 9600 here in order for the code to work with mifare tags
  Serial.println("Hello!");

  nfc.begin();

  uint32_t versiondata = nfc.getFirmwareVersion();
  if (! versiondata) {
    Serial.print("Didn't find PN53x board");
    while (1); // halt
  }
  
  // Got ok data, print it out!
  Serial.print("Found chip PN5"); Serial.println((versiondata>>24) & 0xFF, HEX); 
  Serial.print("Firmware ver. "); Serial.print((versiondata>>16) & 0xFF, DEC); 
  Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
  
  // Set the max number of retry attempts to read from a card
  // This prevents us from waiting forever for a card, which is
  // the default behaviour of the PN532.
  nfc.setPassiveActivationRetries(0xFF);
  
  // configure board to read RFID tags
  nfc.SAMConfig();
    
  Serial.println("Waiting for an ISO14443A card");
}

void loop(void) {
  boolean success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // Buffer to store the returned UID
  uint8_t uidLength;                        // Length of the UID (4 or 7 bytes depending on ISO14443A card type)
  
  // Wait for an ISO14443A type cards (Mifare, etc.).  When one is found
  // 'uid' will be populated with the UID, and uidLength will indicate
  // if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength);
  
  if (success) {
    Serial.println("Found a card!");
    Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");
    Serial.print("UID Value: ");
    for (uint8_t i=0; i < uidLength; i++) 
    {
      Serial.print(" 0x");Serial.print(uid[i], HEX); 
    }
    Serial.println("");
    // Wait 1 second before continuing
    delay(1000);
  }
  else
  {
    // PN532 probably timed out waiting for a card
    Serial.println("Timed out waiting for a card");
  }
}
Last edited by adafruit_support_mike on Thu Dec 05, 2013 1:55 am, edited 1 time in total.
Reason: please use CODE tags when posting code

User avatar
adafruit_support_mike
 
Posts: 67485
Joined: Thu Feb 11, 2010 2:51 pm

Re: is it possible to read TI dynamic tag from adafruit PN53

Post by adafruit_support_mike »

Let me pass this along to our NFC expert. He knows the protocols better than I do.

User avatar
ktownsend
 
Posts: 1447
Joined: Thu Nov 05, 2009 2:18 am

Re: is it possible to read TI dynamic tag from adafruit PN53

Post by ktownsend »

You should be able to read ISO14443B tags with the PN532 in HW, but there is currently no SW support for it since 90% of the cards people can actually order or actually use tend to be Mifare and 14443A based, so we have put all of our development effort there.

We'd be happy to look at any pull requests of submissions you might make if you want to look at adding B support, but we're generally very focused on Mifare for practical reasons.

nondescript
 
Posts: 4
Joined: Wed Dec 04, 2013 9:03 pm

Re: is it possible to read TI dynamic tag from adafruit PN53

Post by nondescript »

I would really appreciate it if you can take a look at the b type tags or if you can give me any hints on how to make it work with TI dynamic tag.

User avatar
mtleising
 
Posts: 1
Joined: Thu Jun 19, 2014 8:53 am

Re: is it possible to read TI dynamic tag from adafruit PN53

Post by mtleising »

You may be able to do this with python and the breakout board. I haven't tried it, by it looks like there is SW support for ISO14443B

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”