Ozeki NFC Host

The Ozeki NFC Host is a modified Arduino Nano, that can be a host of two RC522 and one PN532 NFC modules. This is an open source board, with all the files needed for manufacturing. You may also freely modify the design.

Video 1 - Reading NFC keycards with two RC522 modules

The Ozeki NFC Host contains an ATmega328P microcontroller so you can program it just like an Arduino Nano using the Arduino IDE environment. It has a micro USB port, which is compatible with mobile phone USB cables. It is better then using an Arduino Nano, because it is more compact solution, since the NFC readers can directly connect to the host. It also has standard mounting holes for M2 screws.

simple wiring
Figure 1 - Ozeki NFC Host simplifies wiring. It provides an easier connection to the NFC modules.

You can also connect buttons, switches, feedback leds to it for specialised needs from A0 to A7 pins. These pins can be used in both analog or digital mode. Leds can show you whether a card is accepted or refused or if one of the NFC module is malfunctioning. You can connect buttons for opening doors from the inside. The A4 (SDA) and A5 (SCL) are I2C pins. They can be used for connecting one PN532 NFC module or other I2C devices. Your imagination is the limit how to use these 8 pins.

Figure 2 - Ozeki NFC Host photos

Download files for manufacturing

Datasheets

Ozeki NFC Host

Specifications:

  • IC: ATmega328P
    • Clock Speed: 16 MHz
    • Flash Memory: 32 KB
    • SRAM: 2 KB
    • EEPROM: 1 KB
  • USB support provided by a CH340G USB to serial chip:
  • ICSP (In-Circuit Serial Programming)
  • Power supply from USB (5V)
  • A maximum of 3 NFC modules can be connected to it:
    • RC522 (up to two modules, SPI,
      own 3.3V power supply for both)
    • PN532 (one module, I2C)
  • 500mA resettable fuse
  • Status LEDs: power, TX, RX, D13
  • Can be screwed on an Ozeki Matrix Board
  • Product dimensions:
    2.40in.[60.96mm]×0.80in.[20.32mm]

Pinout of the Ozeki NFC Host:

pinout if the ozeki nfc host
Figure 1 - Pinout of the Ozeki NFC Host


RC522 and PN532 NFC modules

Features:

  1. Longest effective communication distance of 6 cm (Mifare1 card)
  2. Can be used for 13.56MHz non-contact communication
  3. Two-way transmission rate up to 424kbit/s.
  4. Compatible with ISO14443 Type A and Type B standards

RC522 NFC module

Specifications:

  • IC: NXP MFRC522
  • Interface: SPI
  • Cards supported: Mifare1 S50, Mifare1 S70, Mifare UltraLight, Mifare Pro, Mifare Desfire
  • Operating current: 13-26mA/DC 3.3V
  • Idle current: 10-13mA/DC 3.3V
  • Sleep current: <80uA
  • Peak current: <30mA
  • Operating Frequency: 13.56MHz
  • Product size: 40mm×60mm
  • Environmental Operating temperature: -20-80 degrees Celsius
  • Environmental Storage Temperature: -40-85 degrees Celsius
  • Relative humidity: 5% -95%
  • Data transfer rate (SPI): maximum 10Mbit/s
  • Radiotransmission rate: maximum 424kbit/s
  • Radiotransmission frequency: 13.56MHz
  • Max Supply Current: 150mA
  • Working Current(Standby Mode): 100mA
  • Working Current(Write Mode): 120mA
  • Working Current(Read Mode): 120mA
  • Status LED: power

The pinout for the RC522 NFC connections:

RC522 SDA SCK MOSI MISO IRQ GND RST Supply Voltage
NFC1 D10 D13 D11 D12 - GND D8 3.3V
NFC2 D9 D13 D11 D12 - GND D7 3.3V

the rc522 module
Figure 4 - The RC522 module

PN532 NFC module

Specifications:

  • IC: NXP PN532
  • Interface: SPI, I2C and HSU (High Speed UART)
  • Card types supported:
    • Mifare 1k, 4k, Ultralight, and DesFire cards
    • ISO/IEC 14443-4 cards such as CD97BX, CD light, Desfire, P5CN072 (SMX)
    • Innovision Jewel cards such as IRT5001 card
    • FeliCa cards such as RCS_860 and RCS_854
  • Operating voltage: DC 3.3V
  • Power Supply Voltage: 3.3V-5V
  • Operating Frequency: 13.56MHz
  • Product size: 40.4mm×42.7mm
  • Environmental Operating temperature: -30-85 degrees Celsius
  • Environmental Storage Temperature: -55-150 degrees Celsius
  • Data transfer rate (SPI): maximum 10Mbit/s
  • Data transfer rate (I2C): maximum 3.2Mbit/s
  • Radiotransmission rate: maximum 424kbit/s
  • Radiotransmission frequency: 13.56MHz
  • Max Supply Current: 150mA
  • Working Current(Standby Mode): 100mA
  • Working Current(Write Mode): 120mA
  • Working Current(Read Mode): 120mA
  • Status LED: power

The pinout for the NXP PN532 NFC connections:

PN532 GND Supply Voltage SDA SCL
NFC3 GND 5V A4 A5

pn522 module
Figure 5 - PN522 Module


Wiring:

Connect the NFC card readers to the Ozeki NFC Host Module as shown below. Before wiring the NFC boards to your Ozeki NFC Host Module we suggest to solder a JST header strip to the following 7 pin count connector of the MFRC522 and a minimum of 4 pin JST header strip for the PN532, as you can see in the image above.

wiring two modules together
Figure 6 - Wiring two RC522 and one PN532 module to Ozeki NFC Host


Program codes

  • Connects two RC522 modules

    Before starting, you need to download the MFRC522 library from the Arduino IDE top menu: Sketch/Import library.../Add library... and type 'MFRC522' in the search.

    Now you can connect a maximum of two RC522 modules to your Ozeki NFC Host and upload this code to the host. Make sure that the RC522 modules are in safe distance from eachother to work properly. Place your RFID chip close to one of the module's surface and you should read the value contained on the chip from the serial port.

    Downloadable code:
    NFC_Host_ExampleCode_RC522.zip


    Video 2 - Reading NFC keycards with two RC522 modules by using the code below
    #include <SPI.h>
    #include <MFRC522.h>
    
    #define SS_1_PIN 10
    #define SS_2_PIN 9
    #define RST_PIN_1 8
    #define RST_PIN_2 7
     
    MFRC522 reader_0(SS_1_PIN, RST_PIN_1); 
    MFRC522 reader_1(SS_2_PIN, RST_PIN_2);
    
    MFRC522::MIFARE_Key key; 
    
    byte nuidPICC[4];
    
    void setup() { 
      Serial.begin(115200);
      SPI.begin();
      reader_0.PCD_Init();
      reader_1.PCD_Init();
      Serial.println("Now you can scan the RFID chips.");
    }
    
    void loop() {
      NFC_0();
      NFC_1(); 
    }
    
    void NFC_0()
    {
      for (byte i = 0; i < 6; i++) {
        key.keyByte[i] = 0xFF;
      } 
      if ( ! reader_0.PICC_IsNewCardPresent())  
      return;
      
      if (  !reader_0.PICC_ReadCardSerial())
      return;
    
      for (byte i = 0; i < 4; i++) {
          nuidPICC[i] = reader_0.uid.uidByte[i]; 
        }
        
      Serial.print(F("READER_0: "));
      printDec(reader_0.uid.uidByte, reader_0.uid.size);
      Serial.println();
    
      reader_0.PICC_HaltA();
      reader_0.PCD_StopCrypto1();
    }
    
    void NFC_1(){
      for (byte i = 0; i < 6; i++) {
        key.keyByte[i] = 0xFF;
      }
      
      if ( ! reader_1.PICC_IsNewCardPresent())
        return; 
       
      if ( ! reader_1.PICC_ReadCardSerial())
        return;
    
      for (byte i = 0; i < 4; i++) {
          nuidPICC[i] = reader_1.uid.uidByte[i];
      }
      Serial.print(F("READER_1: "));
      printDec(reader_1.uid.uidByte, reader_1.uid.size);
      Serial.println();
    
      reader_1.PICC_HaltA();
    
      reader_1.PCD_StopCrypto1(); 
    }
    
    void printDec(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
        Serial.print(buffer[i] < 0x10 ? " 0" : " ");
        Serial.print(buffer[i], DEC);
      }
    }
    
    Source Code 1 - Arduino example code for reading two RC522 modules

Other modules

All of the Ozeki Processing Modules have ATmega328P or ATmega2560 microcontrollers integrated. Ozeki Modules can be connected to eachother like pieces of blocks. The connection is provided through USB to each module. They have M2 screw holes to give you an option to screw them on an Ozeki Matrix Board.

AutoConnect Link

If Ozeki 10 is running on your computer (such as on a Raspberry Pi) and you have plugged a microcontroller to it than Ozeki can be set to find serial devices on windows/linux and place them into a connection list so you can interact and control them through the software GUI.

See all Ozeki Processing Modules