RoadTest: NTAG I²C plus Arduino-compatible Development kit
Author: cmelement14
Creation date:
Evaluation Type: Development Boards & Tools
Did you receive all parts the manufacturer stated would be included in the package?: True
What other parts do you consider comparable to this product?: ST25DV-I2C
What were the biggest problems encountered?:
Detailed Review:
BLE Pairing with the NTAG I2C Plus Kit
First of all, I'd like to thank NXP for providing the roadtest kit and element14 for organizing this roadtest. There already exist a couple of great reviews for this roadtest. For example, Gordon Margulieux(gordonmx) wrote a detailed review about unboxing, software installation and Android app demo. Steve Smythe(stevesmythe) wrote an interesting review demonstrating multiple NXP's NFC solutions.
In my review, I am not going to repeat what they have presented. Instead, I'd like to demo the BLE pairing example that Steve has tried but not able to complete because the instruction document "skips over a few steps and is quite hard to follow". After spending some time in deciphering the procedure, I got it work. I'll present my process in a step-by-step fashion with lots of screen shots. However, I will skip the software/SDK installation part so please first read Gordon's review if you haven't done so.
A couple of software components are required: MCUXpresso IDE and SDK. Please first read Gordon's review - Part IV - Software Installation.
Please note that the line numbers shown in the screen shots below are just for reference. They may be different from the SDK version you're using. To locate the line positions where modifications should occur, you can use the context around the highlighted part as search pattern text.
This application is based on the freeRTOS version of the bluetooth hid_device example. The following screen shots show how to import the hid_device example.
Browse wireless_examples -> bluetooth -> hid_device, click on freertos item.
After the import is complete, you should see the project in the workspace as shown below.
The above imported project doesn't include any code for NFC so we need to import the NTAG middleware. Where to get the middleware? Actually the SDK already includes the middleware for NFC. Since the downloaded SDK is a zip file, we need to unzip the SDK first before we can import it to the project. If you don't know how to build and download SDK, please refer to read Gordon's review. In the following screen shots, I unzipped to folder D:\NTAG_I2C_Full. You can unzip to whatever folder and use it when you import the middleware.
After the import is done, you should be able to see the highlighted new folder under your project.
Although we can hard-code NDEF message into the application source code, I find a NDEF library and attached at the end of this article. You can download the zip file and follow the following screen shots to import it to the project.
Download and unzip two app_ntag zip files attached at the end of this review. Then drag them to the source folder in your project (see the following screen shots).
It may need to press F5 key to update file list.
Do a search and replace all instances of gSecurityMode_1_Level_3_c (total 6 instances in this file) with gSecurityMode_1_Level_1_c. Replace the highlighted gIoDisplayOnly_c with gIoNone_c. Replace the highlighted TRUE with FALSE.
Increase the highlighted stack size 500 to 1024.
Insert the highlighted statements as shown below.
Add the highlighted line to initialize NTAG's I2C interface.
Updated the hid_device.c file to the state shown in the screen shots below. The highlighted parts are the code that it should look like.
Change the highlighted advertise time 10 seconds to 3 seconds.
Include header file EmbeddedTypes.h and comment out the Bool definition.
Replace HAL_Timer_delay_ms function body with the highlighted text and comment out SysTick_Handler() function.
Right click on the project then click on Properties menu.
Add a few include paths as shown below.
Top Comments
Hi Charles
Sorry it has taken so long to get around to trying this.
It didn't work when I tried it but I figured out that there are some missing instructions from your guide too!
1. I think you missed…