This is a port of Seeed Studios's PN532 Arduino Library for using the PN532 chip with Raspberry Pi.
- Support all interfaces of PN532 (I2C, SPI, HSU )
- Read/write Mifare Classic Card
- Communicate with android 4.0+(Lists of devices supported)
- Card emulation (NFC Type 4 tag)
- Works with Don's NDEF Library
- To support more than one INFO PDU of P2P communication
- To read/write NFC Type 4 tag
-
PyPI
- Install with pip
pip install pn532pi
- Follow examples
- Install with pip
-
Direct Download
- Download zip file and extract the 4 folders(pn532pi, quick2wire, examples and test)
- Follow the examples of the two libraries.
-
Clone Git Repository
-
Get pn532 library
git clone --recursive https://github.com/gassajor000/pn532pi.git
-
Follow the examples of the two libraries
-
The Raspberry Pi does not provide enough current to drive the PN532 chip. If you try to run the PN532 off your Raspberry Pi it will reset randomly and may not respond to commands. Instead you will need another power source (3.3v) to power the PN532
I2C is short for Inter-integrated Circuit. I2C interface needs only 4 wires to connect PN532 with Raspbeery Pi.
To use the I2C bus 1 to control PN532, refer to the code below.
from pn532pi import Pn532I2c, Pn532
i2c = Pn532I2c(1)
nfc = Pn532(i2c)
def setup():
nfc.begin()
# ...
It's based on Adafruit_NFCShield_I2C. Seeed Studio rewrite the library to make it easy to support different interfaces and platforms. @Don writes the NDEF library to make it more easy to use. @JiapengLi adds HSU interface. @awieser adds card emulation function. @gassajor000 ported to python/Raspberry Pi
[Mega]: http://arduino.cc/en/Main/ arduinoBoardMega [DUE]: http://arduino.cc/en/Main/arduinoBoardDue [Leonardo]: http://arduino.cc/en/Main/arduinoBoardLeonardo [SoftwareSerial]: https://www.arduino.cc/en/Reference/softwareSerial
Images courtesy of pinout.xyz, components101.com, sparkfun.com