Bi2C Easy NFC description

This module is a complete high end NFC solution on one single 62mm x 16mm PCB.

Based on the popular high end PN7150 NFC controller chip this small module implements a complete NFC solution that can be used to build access card readers, emulate cards and support most card standards available today.

The module is connected to the host system Bi2C connector using the supplied 4 pole Flat Flex Cable (FFC). The module also need to have the interrupt signal connected which is a separate lead. You can basically select any GPIO pin on the host board. Just don’t forget to enter this pin number into you program later on.

Weight 0.09 kg
Dimensions 6.2 × 1.6 × 0.5 cm


In order to be able to detect access cards or emulate them you need to install a driver library for the device. We have forked an already existing library and made it compatible with our boards. You can check it out here, more information on how to install an Arduino library can be found here.

When you have installed the driver library you can go ahead and start using it together with your board.

Setting stuff up

To include the library in your program you need the following line at the beginning of your program:

  #include "Electroniccats_PN7150.h"

This will give you access to all the methods that you need to control the board.

Next we need to define some pins to use with the device.

  #define PIN_PN7150_IRQ_B (D11)
  #define PIN_PN7150_RST_B (NO_PN7150_RESET_PIN)
#define PN7150_I2C_ADDR (0x28)

The Bi2C Easy NFC module has an internal reset circuit that resets the NFC controller upon power up, so there is no need to have this defined. We use pin D11 as our interrupt signal and we have also defined what I2C address that the device will respond on.

Now we need an interface object to work with.

  Electroniccats_PN7150 nfc(PIN_PN7150_IRQ_B, PIN_PN7150_RST_B, PN7150_I2C_ADDR, &Wire);

And we are ready to start work.

Getting down to business

There are a bunch of interesting examples found in the library so I suggest you start out messing around with them to learn what you can do with the board.

But just for completeness I will go through the first steps you need to take to get the driver library started.

First of all you need to initialize the library and make sure that the NFC controller is responding to I2C messages. This is done with the connectNCI command. Here’s a snippet that will do just that.

if (nfc.connectNCI()) { //Wake up the board
Serial.println("Error while setting the board up, check your connections!");
while (1);

You can of course decide yourself what to do if the board isn’t detected, it might not be a fatal state in your application.

Secondly the controller must be configured. This is done with the ConfigureSettings command. This will set the controller up to work according to all given parameters. These are all defined in the library file Electroniccats_PN7150.h and can be changed to match your system.

  if (nfc.ConfigureSettings()) {
Serial.println("Configuration settings is failed!");
while (1);

We also need to setup the operation mode. The board can be either a reader or it can emulate a card. This is done with the ConfigMode command.

  if(nfc.ConfigMode(mode)){ //Set up the configuration mode
  Serial.println("Mode configuration failed!!");
    while (1);

And finally we need to start everything, which is done with the StartDiscovery command.

  Serial.println("Initialization succeeded !");
if (nfc.StartDiscovery(mode) == SUCCESS) {
Serial.println("Successfully started discovery mode !");
} else {
Serial.println("Failed to start discovery mode !");

After this, depending on what kind of system you are building, you will have to tell the system to periodically look for a card if it is a reader or check for discovery notifications if it is a card emulator  you are building. But this is all nicely covered in the examples of the library.


There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

You may also like…