This program is for reading and writing from /to MIFARE Classic 1k ,MIFARE Ultralight MF0ICU1,MIFARE Ultralight NTAG213,MIFARE Ultralight NTAG203

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
sheralikhan
Date:
Tue Jun 06 10:13:06 2017 +0000
Parent:
3:f9ed412458d5
Child:
5:93f22f8fdcd2
Commit message:
RFID

Changed in this revision

MFRC522.lib Show annotated file Show diff for this revision Revisions of this file
RFIDRW.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MFRC522.lib	Fri May 26 09:57:55 2017 +0000
+++ b/MFRC522.lib	Tue Jun 06 10:13:06 2017 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/users/sheralikhan/code/Reading_Writing_MIFARE_Tags_WIZWIKI_W750/#23a2a3f57303
+https://developer.mbed.org/users/sheralikhan/code/Reading_Writing_MIFARE_Tags_WIZWIKI_W750/#16a6d70d9195
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/RFIDRW.lib	Tue Jun 06 10:13:06 2017 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/sheralikhan/code/RFIDRW/#0f579a13df1d
--- a/main.cpp	Fri May 26 09:57:55 2017 +0000
+++ b/main.cpp	Tue Jun 06 10:13:06 2017 +0000
@@ -1,14 +1,12 @@
 /*--------------------------------------------------------Reading Writing MIFARE Tags---------------------------------------------------------------
-Note:
----------
+
 1.This program is for reading and writing from /to MIFARE Classic 1k ,MIFARE Ultralight MF0ICU1,MIFARE Ultralight NTAG213,MIFARE Ultralight NTAG203
 2.Generally we are using MBED model WIZnet WIZWiki W7500 to interfacng with MFRC522 Rader and writer device using SPI protocol
-3.This program is designed such a way that it will take input 1,2 for reading or writing from/to tags
+3.This program is designed such a way that it will take input 1,2 for reading or writing from serial monitor
 4.Once user can entering input based on input it will call read and write function respectively...
+
 ----------------------------------------------------------------------------------------------------------------------------------------------------*/
 
-
-
 /*Test of cheap 13.56Mhz RFID-RC522 module
 Connect as follows:
 RFID pins        ->  WIZWiki-W7500 header CN5 (Arduino-compatible header)
@@ -19,7 +17,8 @@
 4.RFID SCK    ->   WIZWiki-W7500 SPI_SCK      =D13
 5.RFID SDA    ->   WIZWiki-W7500 SPI_CS       =D10
 6.RFID RST    ->   WIZWiki-W7500              =D9
-3.3V and Gnd to the respective pins*/
+3.3V and Gnd to the respective pins
+-------------------------------------------------------------------------*/
 
 
 
@@ -34,7 +33,9 @@
 //Define RFID version and date
 #define VERSION "RFID_2017_03_20"
 //Define board
-#define CIBLE "WIZwiki-W7500"
+#define BOARD "WIZwiki-W7500"
+//Adding Library for RFID tags read and Write
+#include "RFIDRW.h"
 
 
 // ARMmbed WIZwiki W7500 Pin for MFRC522 SPI Communication
@@ -46,34 +47,26 @@
 // WIZWiki-W7500 Pin for MFRC522 reset(pick another D pin if you need D8)
 #define MF_RESET    D9
 
-
 //Define led for identification
 DigitalOut LedGreen(D7);
 
-//Serial connection to PC for output
-Serial pc(USBTX, USBRX);
-
-
-//Define or create MFRC522 class and passing pins as arguments
-MFRC522    RfChip (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
+//Serial connection to cp for output
+Serial cp(USBTX, USBRX);
 
-//* Local functions */
-void DumpMifareClassicToSerial      (MFRC522::Uid *uid, uint8_t piccType, MFRC522::MIFARE_Key *key); //It is reading MIFARE Classic 1k memory block and sector
-void DumpMifareClassicSectorToSerial(MFRC522::Uid *uid, MFRC522::MIFARE_Key *key, uint8_t sector); //It is reading MIFARE Classic 1k  memory block data and sector data
-void DumpMifareUltralightToSerial   (void); //It is reading MIFARE Ultralight memory block,block data and sector,sector data
-void writeDataUL(void);            //It is Writing function to MIFARE Ultralight
-void writeDataClassic1k(void);    //It is Writing function to MIFARE Classic 1k
-uint8_t page;
+//Creating MFRC522 class abject  and passing pin as a argument
+MFRC522 RfChip(SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
+
 /**
  * Dumps debug info about the selected PICC to Serial.
  * On success the PICC is halted after dumping the data.
  * For MIFARE Classic the factory default key of 0xFFFFFFFFFFFF is tried.
  */
+//Declaring MIFARE Classic 1k key
+MFRC522::MIFARE_Key key;
 
 void DumpToSerial(MFRC522::Uid *uid)
 {
-    //Declaring MIFARE Classic 1k key
-    MFRC522::MIFARE_Key key;
+
 
     // Print Card UID
     printf("Card UID: ");
@@ -114,229 +107,15 @@
     RfChip.PICC_HaltA(); // Instructs a PICC in state ACTIVE(*) to go to state HALT.
 } // End PICC_DumpToSerial()
 
-/**
- * Dumps memory contents of a MIFARE Classic PICC.
- * On success the PICC is halted after dumping the data.
- */
-void DumpMifareClassicToSerial(MFRC522::Uid *uid, uint8_t piccType, MFRC522::MIFARE_Key *key)
-{
-    uint8_t no_of_sectors = 0;
-    switch (piccType) {
-        case MFRC522::PICC_TYPE_MIFARE_MINI:
-            // Has 5 sectors * 4 blocks/sector * 16 bytes/block = 320 bytes.
-            no_of_sectors = 5;
-            break;
-
-        case MFRC522::PICC_TYPE_MIFARE_1K:
-            // Has 16 sectors * 4 blocks/sector * 16 bytes/block = 1024 bytes.
-            no_of_sectors = 16;
-            break;
-
-        case MFRC522::PICC_TYPE_MIFARE_4K:
-            // Has (32 sectors * 4 blocks/sector + 8 sectors * 16 blocks/sector) * 16 bytes/block = 4096 bytes.
-            no_of_sectors = 40;
-            break;
-
-        default:
-            // Should not happen. Ignore.
-            break;
-    }
-
-    // Dump sectors, highest address first.
-    if (no_of_sectors) {
-        printf("Sector  Block   0   1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  AccessBits \n\r");
-        printf("----------------------------------------------------------------------------------------- \n\r");
-        for (int8_t i = no_of_sectors-1 ; i>= 0; i--) {
-
-            DumpMifareClassicSectorToSerial(uid, key, i);
-
-
-        }
-    }
-
-    RfChip.PICC_HaltA(); // Halt the PICC before stopping the encrypted session.
-    RfChip.PCD_StopCrypto1();
-} // End PICC_DumpMifareClassicToSerial()
-
-/**
- * Dumps memory contents of a sector of a MIFARE Classic PICC.
- * Uses PCD_Authenticate(), MIFARE_Read() and PCD_StopCrypto1.
- * Always uses PICC_CMD_MF_AUTH_KEY_A because only Key A can always read the sector trailer access bits.
- */
-void DumpMifareClassicSectorToSerial(MFRC522::Uid *uid, MFRC522::MIFARE_Key *key, uint8_t sector)
-{
-    uint8_t status;           // Set what type of error is found
-    uint8_t firstBlock;       // Address of lowest address to dump actually last block dumped)
-    uint8_t no_of_blocks;     // Number of blocks in sector
-    bool    isSectorTrailer;  // Set to true while handling the "last" (ie highest address) in the sector.
-
-    // The access bits are stored in a peculiar fashion.
-    // There are four groups:
-    //    g[3]  Access bits for the sector trailer, block 3 (for sectors 0-31) or block 15 (for sectors 32-39)
-    //    g[2]  Access bits for block 2 (for sectors 0-31) or blocks 10-14 (for sectors 32-39)
-    //    g[1]  Access bits for block 1 (for sectors 0-31) or blocks 5-9 (for sectors 32-39)
-    //    g[0]  Access bits for block 0 (for sectors 0-31) or blocks 0-4 (for sectors 32-39)
-    // Each group has access bits [C1 C2 C3]. In this code C1 is MSB and C3 is LSB.
-    // The four CX bits are stored together in a nible cx and an inverted nible cx_.
-    uint8_t c1, c2, c3;      // Nibbles
-    uint8_t c1_, c2_, c3_;   // Inverted nibbles
-    bool    invertedError = false;   // True if one of the inverted nibbles did not match
-    uint8_t g[4];            // Access bits for each of the four groups.
-    uint8_t group;           // 0-3 - active group for access bits
-    bool    firstInGroup;    // True for the first block dumped in the group
-
-    // Determine position and size of sector.
-    if (sector < 32) {
-        // Sectors 0..31 has 4 blocks each
-        no_of_blocks = 4;
-        firstBlock = sector * no_of_blocks;
-    } else if (sector < 40) {
-        // Sectors 32-39 has 16 blocks each
-        no_of_blocks = 16;
-        firstBlock = 128 + (sector - 32) * no_of_blocks;
-    } else {
-        // Illegal input, no MIFARE Classic PICC has more than 40 sectors.
-        return;
-    }
-
-    // Dump blocks, highest address first.
-    uint8_t byteCount;  //No of reading data
-    uint8_t buffer[18]; //Reading data of buffer
-    uint8_t blockAddr;  // No of Sector
-    isSectorTrailer = true;
-    for (int8_t blockOffset = no_of_blocks - 1; blockOffset >= 0; blockOffset--) {
-        blockAddr = firstBlock + blockOffset;
-
-        // Sector number - only on first line
-        if (isSectorTrailer) {
-            printf("  %2d   ", sector);
-        } else {
-            printf("       ");
-        }
-
-        // Block number
-        printf(" %3d  ", blockAddr);
-
-        // Establish encrypted communications before reading the first block
-        /*While MFRC522 reader/writer is not uthenticate MIFARE card then it will through PCD_Authenticate() failed: Timeout in communication  */
-        if (isSectorTrailer) {
-            status = RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, firstBlock, key, uid);
-            if (status != MFRC522::STATUS_OK) {
-                printf("PCD_Authenticate() failed: %s \r\n", RfChip.GetStatusCodeName(status));
-                return;
-            }
-        }
-
-        // Read block
-        /*If MFRC522 reader/writer is uthenticate MIFARE card but it not uthenticate key then it will through MIFARE_Read() failed: Timeout in communication */
-        byteCount = sizeof(buffer);
-        status = RfChip.MIFARE_Read(blockAddr, buffer, &byteCount);
-        if (status != MFRC522::STATUS_OK) {
-            printf("MIFARE_Read() failed: %s \r\n", RfChip.GetStatusCodeName(status));
-            continue;
-        }
-
-        // Dump data
-        for (uint8_t index = 0; index < 16; index++) {
-            printf("  %2X", buffer[index]);
-        }
-
-
-//This block is printing access bit......................................................................................
-
-        // Parse sector trailer data
-        if (isSectorTrailer) {
-            c1  = buffer[7] >> 4;
-            c2  = buffer[8] & 0xF;
-            c3  = buffer[8] >> 4;
-            c1_ = buffer[6] & 0xF;
-            c2_ = buffer[6] >> 4;
-            c3_ = buffer[7] & 0xF;
-            invertedError = (c1 != (~c1_ & 0xF)) || (c2 != (~c2_ & 0xF)) || (c3 != (~c3_ & 0xF));
-
-            g[0] = ((c1 & 1) << 2) | ((c2 & 1) << 1) | ((c3 & 1) << 0);
-            g[1] = ((c1 & 2) << 1) | ((c2 & 2) << 0) | ((c3 & 2) >> 1);
-            g[2] = ((c1 & 4) << 0) | ((c2 & 4) >> 1) | ((c3 & 4) >> 2);
-            g[3] = ((c1 & 8) >> 1) | ((c2 & 8) >> 2) | ((c3 & 8) >> 3);
-            isSectorTrailer = false;
-        }
-
-        // Which access group is this block in?
-        if (no_of_blocks == 4) {
-            group = blockOffset;
-            firstInGroup = true;
-        } else {
-            group = blockOffset / 5;
-            firstInGroup = (group == 3) || (group != (blockOffset + 1) / 5);
-        }
-
-        if (firstInGroup) {
-            // Print access bits
-            printf("   [ %d %d %d ] ", (g[group] >> 2) & 1, (g[group] >> 1) & 1, (g[group] >> 0) & 1);
-            if (invertedError) {
-                printf(" Inverted access bits did not match! ");
-            }
-        }
-
-        if (group != 3 && (g[group] == 1 || g[group] == 6)) {
-            // Not a sector trailer, a value block
-            printf(" Addr = 0x%02X, Value = 0x%02X%02X%02X%02X", buffer[12],
-                   buffer[3],
-                   buffer[2],
-                   buffer[1],
-                   buffer[0]);
-        }
-
-        //END....................................................................................................................
-
-        printf("\n\r");
-    }
-
-    return;
-} // End PICC_DumpMifareClassicSectorToSerial()
 
 /**
  * Dumps memory contents of a MIFARE Ultralight PICC.
  */
-void DumpMifareUltralightToSerial(void)
-{
-    uint8_t status; // Set what type of error is found
-    uint8_t byteCount; //No of reading data
-    uint8_t buffer[18]; //Reading data from buffer
-    uint8_t i;
-    printf("Page   0   1   2   3 \n");
-    // Try the mpages of the original Ultralight. Ultralight C has more pages.
-    for ( page = 0; page < 16; page +=4) {
-        // Read pages
-        /*If MFRC522 reader/writer is uthenticate MIFARE card but it not uthenticate key then it will through MIFARE_Read() failed: Timeout in communication */
-        byteCount = sizeof(buffer);
-        status = RfChip.MIFARE_Read(page, buffer, &byteCount);
-        if (status != MFRC522::STATUS_OK) {
-            printf("MIFARE_Read() failed: %s \n\r", RfChip.GetStatusCodeName(status));
-            break;
-        }
-
-        // Dump data
-        for (uint8_t offset = 0; offset < 4; offset++) {
-            i = page + offset;
-            printf(" %2d  ", i); // Pad with spaces
-            for (uint8_t index = 0; index < 4; index++) {
-                i = 4 * offset + index;
-                printf(" %02X ", buffer[i]);
-            }
-
-            printf("\n\r");
-        }
-    }
-} // End PICC_DumpMifareUltralightToSerial()
-
 
 //Create function for writting data
 void WriteToRfidTag(MFRC522::Uid *uid)
 {
 
-    MFRC522::MIFARE_Key key;
-
     // Print Card UID
     printf("Card UID: ");
     for (uint8_t i = 0; i < RfChip.uid.size; i++) {
@@ -358,11 +137,11 @@
             for (uint8_t i = 0; i < 6; i++) {
                 key.keyByte[i] = 0xFF;
             }
-            writeDataClassic1k();  // WriteToRfidTag(&(RfChip.uid))
+            writeDataClassic1k(uid);  // WriteToRfidTag(&(RfChip.uid))
             break;
 
         case MFRC522::PICC_TYPE_MIFARE_UL:
-            writeDataUL();
+            writeDataUL(uid);
             break;
         default:
             break; // No memory dump here
@@ -370,818 +149,26 @@
     printf("\n\r");
 }
 
-void writeDataClassic1k()
-{
-    //Declaration of MFRC522 key
-    MFRC522::MIFARE_Key key;
-    //Declaration of MFRC522 status
-    MFRC522::StatusCode status;
-    uint8_t buffer[16];
-    uint8_t block;
-
-
-    while(true) {
-     
-     // All keys are set to FFFFFFFFFFFFh at chip delivery from the factory.
-        for (uint8_t i = 0; i < 6; i++) {
-            key.keyByte[i] = 0xFF;
-        }
-
-        pc.printf("Enter 1 block: "); // Enter Data
-
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 1;
-        /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to block 1: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 2 block: "); // Enter Data
-
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 2;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen = 1;
-            pc.printf("Succesfully Written to block 2: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 4 block: "); // Enter Data
-
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 4;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen = 1;
-            pc.printf("Succesfully Written to block 4: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 5 block: "); // Enter Data
-
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 5;
-         /*While MFRC522 reader/writer is not uthenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen = 1;
-            pc.printf("Succesfully Written to block 5: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 6 block: "); // Enter Data
-
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 6;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to block 6: ");
-        }
-        printf("\n\r");
-        printf("\n\r");
-        pc.printf("Enter 8 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 8;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 10 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 10;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 12 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 12;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 13 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 13;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 14 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 14;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-
-
-        printf("\n\r");
-        pc.printf("Enter 16 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 16;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 17 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 17;
-         /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 18 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 18;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-
-        printf("\n\r");
-        pc.printf("Enter 20 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 20;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 21 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 21;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 22 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 22;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 24 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 24;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 25 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 25;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 26 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 26;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 28 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 28;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 29 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 29;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 30 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 30;
-          /*While MFRC522 reader/writer is not Authenticate MIFARE card key A then it will through PCD_Authenticate() failed: Timeout in communication  */
-        pc.printf("Authenticating using key A...");
-        status = (MFRC522::StatusCode)RfChip.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(RfChip.uid));
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("PCD_Authenticate() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        }
-
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_Write(block, buffer, 16);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Written to Classic card successfully....\n\r");
-        RfChip.PICC_HaltA();
-        RfChip.PCD_StopCrypto1();
-        break;
-        // switchcase();
-    }
-
-
-} // end of void writeDataClassic1k()
-
-
-
-void writeDataUL()
-{
-    //Declaration of MFRC522 status
-    MFRC522::StatusCode status;
-    uint8_t buffer[16]; //Define buffer 
-    uint8_t page; //Define page
-
-    while(true) {
-
-        pc.printf("Enter 4 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 4;
-        // Write block
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 4: ");
-        }
-        printf("\n\r");
-
-        pc.printf("Enter 5 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 5;
-        // Write block
-        //While MFRC522 reader/writer is not Authenticate MIFARE card it will through MIFARE_Write() failed: Error in communication
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 5: ");
-        }
-        printf("\n\r");
-
-        pc.printf("Enter 6 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 6;
-        // Write block
-         //While MFRC522 reader/writer is not Authenticate MIFARE card it will through MIFARE_Write() failed: Error in communication
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 6: ");
-        }
-        printf("\n\r");
-
-        pc.printf("Enter 7 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 7;
-        // Write block
-         //While MFRC522 reader/writer is not Authenticate MIFARE card it will through MIFARE_Write() failed: Error in communication
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 7: ");
-        }
-        printf("\n\r");
-
-        pc.printf("Enter 8 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 8;
-        // Write block
-         //While MFRC522 reader/writer is not Authenticate MIFARE card it will through MIFARE_Write() failed: Error in communication
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 8: ");
-        }
-        printf("\n\r");
-
-        pc.printf("Enter 9 page: "); // Enter Data
-
-        for(uint8_t i = 0; i < 4; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        page = 9;
-        // Write block
-        //While MFRC522 reader/writer is not Authenticate MIFARE card it will through MIFARE_Write() failed: Error in communication
-        status = (MFRC522::StatusCode)RfChip.MIFARE_UltralightWrite(page, buffer, 4);
-        if (status != MFRC522::STATUS_OK) {
-            pc.printf("MIFARE_Write() failed: ");
-            pc.printf(RfChip.GetStatusCodeName(status));
-
-            continue;
-        } else {
-            LedGreen=1;
-            pc.printf("Succesfully Written to page 9: ");
-        }
-        printf("Written Succefully to ultralight ......\n\r");
-        RfChip.PICC_HaltA();
-        break;
-    }
-
-} //End writeDataUL()
-
-
-
 int main()
 {
     /* Set debug UART speed */
     printf("\n\rUART 9600 baud\n\r");
-    pc.baud(9600);
-    printf("\n\r%s %s\n\r",VERSION,CIBLE);
+    cp.baud(9600);
+    printf("\n\r%s %s\n\r",VERSION,BOARD);
 
     /* Init. RC522 Chip */
     RfChip.PCD_Init();
 
     /* Read RC522 version */
     uint8_t temp = RfChip.PCD_ReadRegister(MFRC522::VersionReg);
-    printf("MFRC522 version: %d\n\r", temp & 0x07);
+    printf("MFRC522 version: %d\n\r", temp);
     printf("\n\r");
-    pc.printf("Enter 1 Reading \n");
-    pc.printf("Enter 2 Writing \n");
+    cp.printf("Enter 1 Reading \n");
+    cp.printf("Enter 2 Writing \n");
 
 
     while(true) {
 
-
         LedGreen = 1;
 
         // Look for new cards
@@ -1198,14 +185,14 @@
         }
         LedGreen = 1;
         wait_ms(50);
-        char ch=pc.getc();
+        char ch=cp.getc();
         if(ch=='1') {
-            pc.printf("reading..........\n");
+            cp.printf("reading..........\n");
             // Dump debug info about the card. PICC_HaltA() is automatically called.
             DumpToSerial(&(RfChip.uid));
             wait_ms(20);
         } else if(ch=='2') {
-            pc.printf("Writing..... \n");
+            cp.printf("Writing..... \n");
             //Calling WriteToRfidTag()
             WriteToRfidTag(&(RfChip.uid));
             wait_ms(50);