All Projects → italia → cie-PN532

italia / cie-PN532

Licence: BSD-3-Clause license
Arduino library for SPI and I2C access to the NFC chip in the Italian Electronic Identity Card (CIE)

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to cie-PN532

NFCReader
Scan and decode NFC tags on iOS
Stars: ✭ 85 (+286.36%)
Mutual labels:  nfc
NFCAndroid
This is a project to using android HCE by using Type-4-Tag Message to working both in iOS and Android
Stars: ✭ 80 (+263.64%)
Mutual labels:  nfc
HPlayer2
Modular Media Player for Raspberry Pi and more...
Stars: ✭ 28 (+27.27%)
Mutual labels:  nfc
Margoulineur2000
NFC
Stars: ✭ 24 (+9.09%)
Mutual labels:  nfc
rfid-reader-http
PC/SC lite HTTP wrapper for reading from a remote card reader (RFID & NFC).
Stars: ✭ 27 (+22.73%)
Mutual labels:  nfc
nfc-manager
Flutter app for accessing the NFC features on Android and iOS.
Stars: ✭ 57 (+159.09%)
Mutual labels:  nfc
flutter nfc kit
Flutter plugin to provide NFC functionality on Android and iOS, including reading metadata, read & write NDEF records, and transceive layer 3 & 4 data with NFC tags / cards
Stars: ✭ 119 (+440.91%)
Mutual labels:  nfc
flutter-nfc
Flutter Android plugin for NFC
Stars: ✭ 14 (-36.36%)
Mutual labels:  nfc
EasyNfc
[Android] A Android nfcLib
Stars: ✭ 30 (+36.36%)
Mutual labels:  nfc
Plugin.NFC
A Cross-Platform NFC (Near Field Communication) plugin to easily read and write NFC tags in your application.
Stars: ✭ 113 (+413.64%)
Mutual labels:  nfc
arduino-primo-tutorials
Here some tutorials to explain and show how to make use of the new features of the Arduino Primo and Arduino Primo Core, such as Wifi, BLE, NFC, InfraRed and various sensors. Hope you can find this helpful to create amazing stuff, save the planet or make a cool project to look smart at the dinning table with your uncles.
Stars: ✭ 12 (-45.45%)
Mutual labels:  nfc
ruby-nfc
NFC library for Ruby programming language
Stars: ✭ 31 (+40.91%)
Mutual labels:  nfc
tangem-sdk-ios
The native Swift library for iOS platforms
Stars: ✭ 35 (+59.09%)
Mutual labels:  nfc
smartscanner-core
ID scanning Android app and library. Supports MRZ, NFC, Barcodes, and ID PASS Lite cards.
Stars: ✭ 44 (+100%)
Mutual labels:  nfc
nfcproxy
用两个安卓手机的nfc功能截取iso14443交互数据 fork by https://github.com/nfcproxy/NFCProxy
Stars: ✭ 30 (+36.36%)
Mutual labels:  nfc
TonUINO
Alternative TonUINO Firmware
Stars: ✭ 112 (+409.09%)
Mutual labels:  nfc
flipperzero-firmware
Flipper Zero firmware source code
Stars: ✭ 2,551 (+11495.45%)
Mutual labels:  nfc
NFCReaderWriter
NFCReaderWriter which supports to read data from NFC chips(iOS 11), write data to NFC chips(iOS 13) and read NFC tags infos(iOS 13) by iOS devices. Compatible with both Swift and Objective-C. I will appreciate you if give me a star on the top right of page.
Stars: ✭ 58 (+163.64%)
Mutual labels:  nfc
schsrch
Simple and intuitive CIE search engine
Stars: ✭ 35 (+59.09%)
Mutual labels:  cie
react-native-status-keycard
React Native library to interact with Status Keycard using NFC connection
Stars: ✭ 20 (-9.09%)
Mutual labels:  nfc

cie-PN532

Arduino library for SPI access to the PN532 NFC chip in the Italian Electronic Identity Card (CIE).


Warning


Online resources

Online documentation Demonstration video

Prerequisites

This library depends upon a modified version of the Adafruit_PN532 library which you can obtain from this GitHub Repository.

https://github.com/BrightSoul/Adafruit-PN532

You must install the Adafruit_PN532 and cie_PN532 in your Arduino libraries directory. Plese follow the instructions from the Arduino guide.

https://www.arduino.cc/en/Guide/Libraries

Wiring PN532 breakout to the Arduino Uno for SPI communication

At present, just the SPI connection is supported. The examples provided will work with this wiring.

images/pn532-wiring-spi.png

This wiring is also described in detail on this page at the Adafruit website.

https://learn.adafruit.com/adafruit-pn532-rfid-nfc/breakout-wiring

Getting started

Create a new arduino project and set it up like this:

//Include some libraries
#include <Wire.h>
#include <SPI.h>
#include <cie_PN532.h>

//Use the cie_PN532 with the typical wiring, as pointed out above
cie_PN532 cie();

void setup(void) {
  #ifndef ESP8266
    while (!Serial); // for Leonardo/Micro/Zero
  #endif
  Serial.begin(115200);
  //Initialize the PN532 breakout board
  cie.begin();
}

Then, in your loop, wait for a card then read its ID_Servizi (a low-security unique identifier)

void loop(void) {
  //Let's see if a card is present
  bool cardDetected = cie.detectCard();
  if (!cardDetected) {
    //No card present, we wait for one
    delay(100);
    return;
  }

  //Good! A card is present, let's read the ID!
  word bufferLength = EF_ID_SERVIZI_LENGTH;
  byte buffer[EF_ID_SERVIZI_LENGTH];

  if (!cie.read_EF_ID_Servizi(buffer, &bufferLength)) {
    Serial.print(F("Error reading EF.ID_SERVIZI"));
    delay(1000);
    return;
  }

  //We were able to read the ID_Servizi, print it out!
  Serial.print(F("EF.ID_Servizi: "));
  cie.printHex(buffer, bufferLength);
}

More examples

This library comes with an examples directory. You can load and run examples from the Arduino IDE by clicking the File menu -> Examples -> cie 532.

Useful links

  • The CIE 3.0 chip specification (italian)

http://www.agid.gov.it/sites/default/files/documentazione/cie_3.0_-_specifiche_chip.pdf

  • Technical specification for the European Card for e-Services and National e-ID Applications

http://www.unsads.com/specs/IASECC/IAS_ECC_v1.0.1_UK.pdf

  • Specifiche tecniche del documento digitale unificato (italian)

http://www.agid.gov.it/sites/default/files/leggi_decreti_direttive/specifiche_tecniche_del_documento_digitale_unificato_v.1.0.0.pdf

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].