@eugene0501 Thanks for the fix which got me past my compile issues and I was able to deploy the NFC example app for testing. Unfortunately, I was not able to cause an NFC event using my Google Pixel 2 Android + NXP Tag Writer App.
I did add some debug statements to confirm my app was working. Notice the button press is working, but the NFC triggered event is never published.
I’m using a seeedstudio.com NFC antenna hooked up to the only connector on the Xenon. I’ve already some Particle Antennas so I can try a different antenna.
@schooltag Please try to change to Particle Antenna, the connector is on the back of the Xenon board, I tested NFC by using NFC Reader application on Android.
@eugene0501 Now that the code is working with an active NFC tag, is it possible to read a passive NFC tag?
I have several types of passive NFC tags like stickers, key fobs, transportation card, etc. One I know is an NXP ntag213, for example.
Such would require the Antenna to power the non-powered passive tag so the tag can emit the data back to the antenna, just as the Android phone does when reading these tags.
Testing the tags and looking at the Device OS NFC code I do not see an NFC_EVENT_WRITE event that would receive data from another tag, the opposite of the READ event that transferred data from the Xenon to the mobile phone.
The story I’m trying to implement is to have the Xenon read a passive NFC tag.
Gotcha. I would suggest updating the feature specifications to explain the limitation you can’t use it to read any tag. Right now it just says NFC-A radio, but I would suggest Acts as a passive NFC tag that can transfer data to a mobile app or something like that. I realize that is a different department so the note is for others listening.
Still very useful to allow a device administrator to the read the state of sensors with a mobile phone, etc. It just isn’t possible to know if anyone has visited the device…like security guards or students walking to school in my case.
I will be pursuing integrating an active NFC tag reader into the mesh products that can read a passive NFC Type 2 tag. Something like Solo Mifare for RFID. Any suggestions would be appreciated.
It’s worth noting I have clarified my use case with Particle engineers multiple times since last summer which led me here to continue the investigation since nobody could give an exact answer. Thanks @eugene0501 for flushing out the reality so I can focus on a solution that will work.
It’s a software choice, the NFC driver of SDK15.0 which is used in device OS is a beta version, it has changed a lot in the new SDK 15.3. We Implemented basic NFC function (Passive Tag, read-only mode) for the first phase.
Please could you give me an update on the status of NFC support for Argon – any idea when this will be released as part of the standard Particle software (which I guess is “Wiring” as mentioned above) ?
Particle Gen 3 devices only support emulating an NFC tag. They cannot locate or communicate with tags themselves, or support protocols such as for NFC payments.
Hei, thanks @schooltag for saving me a lot of time. Only this is very unfortunate that I discover now that there is no support to write something via NFC to a gen3 device. I will ask support about when and if they have this feature in the pipe line as it is crucial to my product. If anybody knows about the timeline before I get a response please let me know.
@doozMen, the limitations for NFC reading only is imposed by the hardware (nRF82540) and not by the DeviceOS so there will never be a way to write to the Gen3 devices via NFC. Instead, you should consider BLE for doing this, if at all possible.
BLE only is not sufficient, but for now we can focus on that. For the release we need NFC bidirectional. We are using a passive tag for battery free access. As we control security doors this is a must have. Thanks for clarifying and we will discuss options with the engineering team tomorrow then. Looks like we have to implement a separate reader then.
@Jak, you are correct it seems! From a Nordic DevZone 2017 posting:
The nRF52832 and nRF52840 devices have a built-in NFC radio which can be used for exposing data as a dynamic NFC tag (a tag with configurable data). This can be used as a standard tag type for storing a web link or a text, to launch apps on smartphones and tablets as well as for simple and secure BLE pairing (read more here). All these features are provided by the Type 2 Tag library in the nRF5 SDK. Starting from version 12.2 of the nRF5 SDK, we expanded the NFC software to support even more features. The new Type 4 Tag library does not only allow faster communication and exposing more data in the tag, but also provides the write functionality. So you can write data to the tag with an NFC Reader/Writer such as a smartphone. Furthermore, NFC Type 4 Tag is used in many secure transactions systems, e.g., payment systems, transport ticketing systems etc. Thus, it opens up new markets for the nRF52 Series with its combined NFC and BLE functionallity.
I will ping Particle to see if implementing Type 4 support is on their radar.
I have been using the MFRC522 extensively to read and write with the particle argon and xenon and Arduino boards. I suggest looking into those for a quick and easy and inexpensive alternate solution. The MFRC522 library examples will get you up and running quickly. Happy to help if you run into issues.
Hey folks – thanks for the ping. We’re still looking to better understand use cases for NFC as it relates to Particle customer products, so if you have specific needs for NFC Type 4 support versus Type 2, let us know what those are.