NFC Writable NDEF message¶
Overview¶
The Writable NDEF message sample shows how to use the NFC tag to expose an NDEF message that can be overwritten with any other NDEF message by an NFC device. It uses the NFC Data Exchange Format (NDEF).
When the sample starts, it initializes the NFC tag and loads the NDEF message from the file in flash memory. If the NDEF message file does not exist, a default message is generated. It is a URI message with a URI record containing the URL “https://makerdiary.com”. The sample then sets up the NFC library for the Type 4 Tag platform, which uses the NDEF message and senses the external NFC field.
The library works in Read-Write emulation mode. In this mode, procedures for reading and updating an NDEF message are handled internally by the NFC library. Any changes to the NDEF message update the NDEF message file stored in flash memory.
Requirement of UF2 Bootloader
This sample requires your existing bootloader is at least 0.7.1, as older versions of UF2 Bootloader use NFC1
and NFC2
pins as GPIO functionality. Update the UF2 Bootloader if you are running the older bootloader.
Requirements¶
Before you start, check that you have the required hardware and software:
- 1x nRF52840 MDK USB Dongle
- A 13.56MHz NFC Antenna
- A smartphone or a tablet with NFC support
- A computer running macOS, Linux, or Windows 7 or newer
Installing NFC Tools App¶
NFC Tools App can read and write your NFC tags with a simple and lightweight user interface.
Wiring the NFC antenna¶
Building the sample¶
Before you start building, remember to set up the environment first.
Use the following steps to build the Writable NDEF message sample on the command line.
-
Open a terminal window.
-
Go to
my-workspace/ncs-playground
directory created in the Setting up the environment section. -
Build the sample using the
west
command, specifying the board (following the-b
option) asdongle_nrf52840
:Tip
The
-p always
option forces a pristine build, and is recommended for new users. Users may also use the-p auto
option, which will use heuristics to determine if a pristine build is required, such as when building another sample. -
After running the
west build
command, the build files can be found inbuild/zephyr
.
Flashing the firmware¶
The sample is designed to work with the UF2 Bootloader, so that you can easily flash the sample using the UF2 Bootloader. The firmware can be found in build/zephyr
with the name zephyr.uf2
.
To flash the firmware, complete the following steps:
-
Push and hold the button and plug your dongle into the USB port of your computer. Release the button after your dongle is connected. The RGB LED turns green.
-
It will mount as a Mass Storage Device called UF2BOOT.
-
Drag and drop
zephyr.uf2
onto the UF2BOOT volume. The RGB LED blinks red fast during flashing. -
Re-plug the dongle and the sample will start running.
Testing¶
After flashing the firmware to your board, complete the following steps to test it:
- Plug the dongle into the USB port of your computer.
- Touch the NFC antenna with the smartphone or tablet and observe that Red LED is lit.
- Observe that the smartphone or tablet tries to open the URL "https://makerdiary.com" in a web browser.
- Use NFC Tools to overwrite the existing NDEF message with your own message.
- Re-plug your dongle and touch the antenna again. Observe that the new message is displayed.