PN7161 Documentation

PN7161 Documentation covers quick start steps, I2C wiring, Raspberry Pi and ESP32 setup, Apple ECP differences, libraries, and troubleshooting for the ELECHOUSE PN7161 NFC RFID Module.

Quick Start

  1. Use the module as an I2C NFC controller with NCI 2.0 firmware.
  2. Wire SDA, SCL, IRQ, VEN, VDD, VANT, GND, and optional DWL to your host.
  3. For Raspberry Pi / Linux, use the same linux_libnfc-nci workflow used by PN7160.
  4. For ESP32 / Arduino IDE, follow the same I2C setup documents used for PN7160.
  5. If your target application needs Apple Wallet / Apple VAS / Apple ECP, use PN7161 instead of PN7160.

What Makes PN7161 Different?

Feature PN7161 PN7160
Apple ECP Supported Not supported
Apple Wallet / Apple VAS workflows Compatible Not the right choice
NCI 2.0 Yes Yes
I2C hardware footprint Same Same
Linux / Android driver model Same family workflow Same family workflow

Pinout / Wiring Reference

PN7161 uses the same practical wiring model as PN7160.

PN7161 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 maintenance pin

ESP32 Wiring

PN7161 ESP32 Notes
DWL GPIO19 Control pin used in the guide
SDA GPIO21 I2C data
SCL GPIO22 I2C clock
IRQ GPIO14 Interrupt
VEN GPIO13 Enable / reset
VDD 3V3 Logic supply
GND GND Common ground
VANT 5V Antenna supply

Supported Platforms

  • Raspberry Pi
  • Linux with linux_libnfc-nci
  • ESP32 in Arduino IDE
  • Android / embedded Linux systems
  • Embedded applications that require Apple ECP support

Initialization Method

  1. Bring the module up exactly as you would a PN7160 I2C board.
  2. Enable I2C on the host and verify bus visibility.
  3. Install the Linux or Arduino-side software stack.
  4. Run a basic reader / polling test first.
  5. Only after baseline communication works should you move on to Apple-specific higher-level application flows.

Libraries and Drivers

I2C Address Options

The PN7161 family board uses the same address-selection approach documented for PN7160/PN7161 I2C boards. Supported 7-bit addresses are:

  • 0x28
  • 0x29
  • 0x2A
  • 0x2B

Example Workflow

# Raspberry Pi / Linux baseline workflow
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

  • Apple use case expected, but PN7160 hardware used: switch to PN7161 if Apple ECP is required.
  • No board response: verify I2C, IRQ, VEN, power rails, and device address.
  • Linux driver starts but no tags are detected: re-check config file transport / device node settings.
  • ESP32 example does not respond: confirm pin mapping and supply rails for both VDD and VANT.

Troubleshooting

  • First validate plain NFC polling before debugging Apple-specific application layers.
  • Use the same bring-up checklist as PN7160 because the hardware platform is intentionally close.
  • If multiple boards share the bus, confirm address resistor settings and bus pull-up health.

Version Differences

  • PN7161 is the enhanced PN7160-family option that adds Apple ECP support.
  • For non-Apple NFC reading / writing use cases, PN7160 may be sufficient and lower cost.

Update History

  • 2026-04-05: First public PN7161 documentation page published.
  • Reference basis: shared ELECHOUSE I2C quick-start documents plus the PN7161 product page technical notes.

Related Pages

Shopping Cart