PN7160 Documentation covers quick start steps, I2C wiring, Raspberry Pi and ESP32 setup, address configuration, libraries, and troubleshooting for the ELECHOUSE PN7160 NFC RFID Module.
Quick Start
- Use the module as an I2C NFC controller. This board is designed around NXP PN7160 with native NCI 2.0 firmware.
- Connect VDD, VANT, SDA, SCL, IRQ, VEN, GND, and optional DWL as required by your host platform.
- On Raspberry Pi, enable I2C first, then install linux_libnfc-nci.
- On ESP32 / Arduino IDE, use the PN7150/PN7160 compatible Arduino library workflow referenced below.
- Run a basic poll / tag-detect example to confirm the module is responding.
Key Technical Facts
- Chip: NXP PN7160
- Interface: I2C via 8-pin 1.25 mm lockable connector
- NFC protocol stack: NCI 2.0
- VDD: 1.8V or 3.3V
- VANT: 2.5V to 5.8V
- Antenna: on-board PCB antenna
- Board size: 42.83 mm × 40.53 mm
- Modes: Reader/Writer, Peer-to-Peer, Card Emulation
Pinout / Wiring Reference
| PN7160 Pin | Raspberry Pi 4 | Notes |
|---|---|---|
| SDA | Pin 3 (SDA) | I2C data |
| SCL | Pin 5 (SCL) | I2C clock |
| IRQ | Pin 16 / GPIO23 | Interrupt |
| VEN | Pin 18 / GPIO24 | Enable / reset control |
| VDD | Pin 1 / 3.3V | Logic supply |
| VANT | Pin 2 or 4 / 5V | Antenna supply |
| GND | Pin 6 / GND | Common ground |
| DWL | Pin 22 | Optional download / maintenance pin |
ESP32 Wiring (Arduino IDE guide)
| PN7160 | ESP32 | Notes |
|---|---|---|
| DWL | GPIO19 | Download / control pin used by sample workflow |
| SDA | GPIO21 | I2C data |
| SCL | GPIO22 | I2C clock |
| IRQ | GPIO14 | Interrupt |
| VEN | GPIO13 | Enable / reset control |
| VDD | 3V3 | Logic supply |
| GND | GND | Common ground |
| VANT | 5V | Antenna supply |
Supported Platforms
- Raspberry Pi
- Linux systems using NXP
linux_libnfc-nci - ESP32 in Arduino IDE
- Android / embedded Linux systems using NCI 2.0 workflows
- i.MX, LPC, Kinetis, and other embedded platforms with I2C support
Initialization Method
Raspberry Pi / Linux
- Enable I2C in
raspi-config. - Verify
/dev/i2c-1exists. - Install prerequisites:
autoconf automake libtool git. - Clone
linux_libnfc-nciand use the PN7160 branch / config flow from the quick guide. - Set
NXP_TRANSPORT=0x02andNXP_NFC_DEV_NODE="/dev/i2c-1"inlibnfc-nxp.conf. - Build, install, and test with
nfcDemoApp poll.
ESP32 / Arduino IDE
- Install the Arduino-compatible PN7150 / PN7160 library referenced by ELECHOUSE.
- Wire the board as shown above.
- Open the example sketch, update pin definitions if needed, and upload.
- Open Serial Monitor to verify tag detection.
Libraries and Drivers
- NXP linux_libnfc-nci
- Quick Guide (Raspberry Pi / I2C)
- ESP32 and PN7160 in Arduino IDE
- I2C address setting guide
- Schematic PDF
I2C Address Options
The module supports multiple 7-bit I2C addresses through resistor configuration on the address pins:
- 0x28
- 0x29
- 0x2A
- 0x2B
The ELECHOUSE address-setting PDF also lists the corresponding 8-bit read / write values for each configuration.
Example Workflow
# Raspberry Pi / Linux quick test
sudo raspi-config
# enable I2C
ls /dev/i2c*
git clone https://github.com/NXPNFCLinux/linux_libnfc-nci.git -b NCI2.0_PN7160
cd linux_libnfc-nci
./bootstrap
./configure
make
sudo make install
export LD_LIBRARY_PATH=/usr/local/lib
nfcDemoApp poll
Common Errors
- No device found on Raspberry Pi: I2C is not enabled or wiring is incomplete.
- Build succeeds but no polling response:
libnfc-nxp.conftransport / device node settings are wrong. - ESP32 sketch uploads but no tag read: VEN / IRQ / DWL pins do not match the example configuration.
- Wrong address: the board resistor configuration does not match the address expected by the host.
Troubleshooting
- Start with the official Raspberry Pi quick guide before changing the software stack.
- Verify both VDD and VANT are supplied correctly.
- Use a short, stable I2C connection during bring-up.
- If multiple NFC modules are present, confirm the selected I2C address.
Version Differences
- PN7160 is the base NCI 2.0 module in this family.
- PN7161 is the closely related upgrade path when Apple ECP support is required.
Update History
- 2026-04-05: First public PN7160 documentation page published.
- Reference documents: quick guide, ESP32 guide, and I2C address guide incorporated into this page.
