PN7161 Documentation covers both major ELECHOUSE PN7161 variants: the standard PN7161 I2C module and the PN7161 MINI V1 — SPI. This page helps you choose the right interface, wire the board correctly, and start testing on Raspberry Pi, ESP32, and Linux-based systems.
PN7161 Variants at a Glance
| Variant | Interface | Typical Use |
|---|---|---|
| PN7161 standard module | I2C | General embedded NFC projects using SDA/SCL |
| PN7161 MINI V1 | SPI | Compact designs, ESP32 VSPI, Raspberry Pi SPI, and SPI-based controllers |
Which Version Should You Choose?
- Choose PN7161 I2C when your controller and firmware are built around an I2C NFC workflow.
- Choose PN7161 MINI SPI when your hardware uses SPI, board space is limited, or you want the tested Raspberry Pi / ESP32 SPI path.
- Choose the PN7161 family instead of PN7160 when your project needs Apple-related NFC capability such as Apple ECP support.
PN7161 I2C Quick Reference
The standard PN7161 module follows the same practical wiring style as PN7160 I2C boards.
Typical I2C Signals
- SDA
- SCL
- IRQ
- VEN
- VDD
- VANT
- GND
- DWL (optional)
Raspberry Pi 4 I2C Wiring
| PN7161 I2C | 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 |
| VDD | Pin 1 / 17, 3.3V | Logic supply |
| VANT | Pin 2 / 4, 5V | Antenna supply |
| GND | Pin 6 | Ground |
ESP32 I2C Wiring
| PN7161 I2C | ESP32 | Notes |
|---|---|---|
| SDA | GPIO21 | I2C data |
| SCL | GPIO22 | I2C clock |
| IRQ | GPIO14 | Interrupt |
| VEN | GPIO13 | Enable / reset |
| VDD | 3.3V | Logic supply |
| VANT | 5V | Antenna supply |
| GND | GND | Common ground |
| DWL | GPIO19 | Optional control pin in the guide |
I2C Reference Files
- Quick Guide I2C PDF
- ESP32 and PN7160 / PN7161 Arduino guide
- ELECHOUSE_PN7150_PN7160 (GitHub) for PN7150 / PN7160 / PN7161 Arduino and ESP32 development
- I2C address setting guide
PN7161 MINI V1 — SPI Quick Reference
The PN7161 MINI V1 — SPI is the SPI version of the PN7161 family. It is suitable for compact embedded designs and has been validated with both Raspberry Pi and ESP32.
Main SPI Signals
- MOSI
- MISO
- NSS
- SCK
- IRQ
- VEN
- VDD
- VANT
- GND
- DWL
Raspberry Pi 4 SPI Wiring
| PN7161 MINI SPI | Raspberry Pi 4 |
|---|---|
| MOSI | Pin 19 MOSI |
| MISO | Pin 21 MISO |
| NSS | Pin 24 NSS |
| SCK | Pin 23 SCLK |
| IRQ | Pin 16 GPIO23 |
| VEN | Pin 18 GPIO24 |
| VDD | Pin 1 / 17, 3.3V |
| VANT | Pin 2 / 4, 5V |
| GND | Pin 6 GND |
| DWL | Pin 22 |
ESP32 VSPI Wiring
| PN7161 MINI SPI | ESP32 Dev Module | Notes |
|---|---|---|
| SCK | GPIO18 | SPI clock |
| MISO | GPIO19 | SPI MISO |
| MOSI | GPIO23 | SPI MOSI |
| SS / NSS | GPIO5 | Chip select |
| IRQ | GPIO14 | Interrupt |
| VEN | GPIO13 | Enable / reset |
| VDD | 3.3V | Logic supply |
| VANT | 5V | Antenna supply |
| GND | GND | Common ground |
Power reminder for ESP32 and similar MCUs: connect VDD to 3.3V, VANT to 5V, and GND to GND. Do not leave the power pins undocumented when copying the signal-only table.
SPI Software Notes
- On Raspberry Pi, enable SPI and use the
linux_libnfc-ncistack. - Set
NXP_TRANSPORT=0x03andNXP_NFC_DEV_NODE="/dev/spidev0.0"inlibnfc-nxp.conf. - On ESP32 and Arduino-compatible platforms, use the ELECHOUSE library ELECHOUSE_PN7150_PN7160 (GitHub). The updated library supports PN7150, PN7160, and PN7161 workflows, including SPI-based validation for PN7161 MINI V1.
- Validated card detection includes NFC-A, NFC-B, NFC-F, NFC-V, ISO15693, and MIFARE.
SPI Reference File
- Quick Guide SPI PDF
- ELECHOUSE_PN7150_PN7160 (GitHub) for PN7161 MINI V1 SPI Arduino and ESP32 development
- PN7161 MINI V1 — SPI product page
Linux Workflow Notes
Both PN7161 variants are part of the same family, but the hardware interface must match your board version.
- For I2C boards, enable I2C and use the corresponding I2C device setup.
- For SPI boards, enable SPI and map the Linux stack to
/dev/spidev0.0.
Troubleshooting
- No response on I2C version: verify SDA, SCL, IRQ, VEN, power rails, and I2C address.
- No response on SPI version: verify MOSI, MISO, SCK, NSS, IRQ, VEN, and SPI transport settings.
- ESP32 test does not respond: confirm the actual wiring and that both VDD and VANT are correctly powered.
- Linux stack starts but no tags are detected: re-check transport type and device node configuration.
Related Pages
PN71XX_USE_SPI.