Qwiic Dynamic NFC/RFID Tag Hookup Guide
The SparkFun Qwiic Dynamic NFC/RFID Tag features the ST25DV64KC dynamic Near Frequency Communication (NFC) / Radio Frequency Identification (RFID) tag IC from STMicroelectronics©. The ST25DV64KC offers 64-kBit (8-kBytes) of EEPROM memory which can be accessed over both I2C and RF (NFC)! It's a state-of-the-art tag which conforms to ISO/IEC 15693 or NFC Forum Type 5 recommendations. You can read and write the tag's memory using NFC even while the tag is powered down or disconnected!
In this guide we'll go into some detail on the ST25DV64KC IC and other hardware on this Qwiic breakout, how to assemble it into a Qwiic circuit and then install the SparkFun ST25DV64KC Arduino Library.
To follow along with this guide you will need a microcontroller to communicate with the Qwiic Dynamic NFC/RFID Tag. Below are a few options that come Qwiic-enabled out of the box:
If your chosen microcontroller is not already Qwiic-enabled, you can add that functionality with one or more of the following items:
You will also need at least one Qwiic cable to connect your sensor to your microcontroller.
If you aren't familiar with the Qwiic system, we recommend reading here for an overview.
We also recommend taking a look at the following tutorials if you aren't familiar with the concepts covered in them. If you are using one of the Qwiic Shields listed above, you may want to read through their respective Hookup Guides as well before you get started with the Qwiic Dynamic NFC/RFID Tag.
Qwiic Shield for Arduino & Photon Hookup Guide
SparkFun Qwiic Shield for Arduino Nano Hookup Guide
Let's take a closer look at the ST25DV64KC and other hardware present on the Qwiic Dynamic NFC/RFID Tag.
ST25DV64KC Dynamic NFC/RFID Tag
The ST25DV64KC from STMicroelectronics is a unique tag IC that communicates over both I2C and RF (NFC). It conforms to ISO/IEC 15693 (13.56 MHz frequency) and NFC Forum Type 5 recommendations.
The ST25DV64KC includes 64 Kbit EEPROM for users to write and read data from, a general purpose output to act as an external interrupt reporting events such as RF field changes, RF activity, I2C writes and RF switch toggling over I2C. The IC has a supply voltage range of 1.8V to 5.5V though when in a Qwiic circuit it runs at 3.3V. It also includes an energy harvesting pin capable of outputing µW of power with an RF field of sufficient strength. For a complete overview of the ST25DV64KC, refer to the datasheet.
The ST25DV64KC supports a fast transfer mode to send the contents of a 256 byte buffer between a device connected to the tag over I2C (refered to as the tag's Mailbox) and an RF device such as a reader or smartphone. This makes it so you can store data on the tag and have it available for reading by an RF device by simply bringing it into the RF read range, even if the tag is powered off. This data can also be password protected with a 64-bit value.
Power and Communication Interfaces
The Qwiic Dynamic NFC/RFID Tag has two interfaces for powering and communicating with the ST25DV64KC: a pair of Qwiic connectors and a plated through hole (PTH) header.
The board has a pair of Qwiic connectors to integrate it into a Qwiic ecosystem.
The Qwiic connectors route the SDA/SCL connections as well as 3.3V and Ground to power the board and communicate with the ST25DV64KC over I2C.
Plated Through Hole Header
The board has a 0.1"-spaced PTH header that breaks out the power pins (3.3V and Ground), I2C interface (SDA/SCL), energy harvesting pin (VEH), and general purpose output pin (GPO).
The Energy Harvesting Pin outputs an analog voltage when energy harvesting mode is enabled and in the presence of a strong enough RF field. Refer to section 5.5 of the datasheet for specifics on using this pin. The General Purpose Output is an open-drain configurable pin used for interrupt events.
The board includes a PCB antenna for the ST25DV64KC to help boost the read range a bit. In our testing with a smart phone running an NFC reader app we found it had a range of a few centimeters.
The sole LED on this board is a power status LED.
The board has three solder jumpers labeled LED, GPO and I2C. The table below outlines their labels, default state, functionality, and any notes regarding their use.
|LED||CLOSED||Completes the Power LED circuit.||Open to disable the Power LED.|
|GPO||CLOSED||Pulls the interrupt (GPO) pin HIGH through a 10kΩ resistor.||Open to disable the pullup resistor.|
|I2C||CLOSED||Pulls the SDA/SCL lines to VCC (3.3V) through a pair of 2.2kΩ resistors.||Open to disable the pullup resistors.|
The Qwiic Dynamic NFC/RFID Tag matches the standard Qwiic breakout size of 1" x 1" (25.4mm x 25.4mm) and has two mounting holes that fit a 4-40 screw.
Now that we're familiar with the hardware on the Qwiic Dynamic NFC/RFID Tag, it's time to assemble it into a Qwiic circuit.
The Qwiic ecosystem makes building a circuit with the Qwiic Dynamic NFC/RFID Tag simple. Just use a Qwiic cable to connect the breakout to your development board like the image shown below:
As a reminder, the Qwiic connectors only include the power pins and I2C lines so if you wish to use the Energy Harvesting pin or the General Purpose pin you'll need to solder to them or use something like these IC Hooks for a temporary prototyping connection.
Users who prefer a traditional soldered connection should solder headers or wires to the Qwiic Dynamic NFC/RFID Tag and then make the appropriate connections to your development board. If you've never soldered before or would like some tips, check out our How to Solder Tutorial.
SparkFun ST25DV64KC Arduino Library
Note: This library assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE. If you have not previously installed an Arduino library, please check out our installation guide.
The SparkFun ST25DV64KC Arduino Library provides an exhaustive collection of examples to take full advantage of the Qwiic Dynamic NFC/RFID Tag including reading and writing the user memory, controlling the read/write permissions, altering the read area sizes, and applying password control. On top of this the library includes examples showing how to use NDEF (NFC Forum Data Exchange Format) URI, WiFi, and Text records you can read with a smart phone. You'll need a compatible app on your phone like ST's "NFC Tap" App available on the Apple© App store or Google© Play.
Install the library into Arduino by searching for "SparkFun ST25DV64KX Arduino Library" in the Arduino Library Manager. Users who prefer to install the library manually can download it by clicking the button below:
Arduino Library Documentation
We have an in-depth guide for the library covering all examples as well as the complete API reference you can read through here:
If you need technical assistance and more information on a product that is not working as you expected, we recommend heading on over to the SparkFun Technical Assistance page for some initial troubleshooting.
If you don't find what you need there, the SparkFun Forums are a great place to find and ask for help. If this is your first visit, you'll need to create a Forum Account to search product forums and post questions.
Resources and Going Further
That's all for this guide. For more information about the Qwiic Dynamic NFC/RFID Tag, check out the resources below:
- Eagle Files
- Board Dimensions
- Datasheet - ST25DV64KC
- GitHub Hardware Repo
- Arduino Library
- Library Documentation
Looking for inspiration on projects to use the Qwiic Dynamic NFC/RFID Tag in? These tutorials may get you pointed in the right direction: