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:
Fri May 26 09:57:55 2017 +0000
Parent:
2:e27413743e1b
Child:
4:9d923c6e6c14
Commit message:
Reading_Writing_MIFARE_Tags_WIZWIKI_W7500

Changed in this revision

MFRC522.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	Thu May 25 07:16:28 2017 +0000
+++ b/MFRC522.lib	Fri May 26 09:57:55 2017 +0000
@@ -1,1 +1,1 @@
-https://developer.mbed.org/users/sheralikhan/code/MFRC522/#616bc6cc91a5
+https://developer.mbed.org/users/sheralikhan/code/Reading_Writing_MIFARE_Tags_WIZWIKI_W750/#23a2a3f57303
--- a/main.cpp	Thu May 25 07:16:28 2017 +0000
+++ b/main.cpp	Fri May 26 09:57:55 2017 +0000
@@ -1,14 +1,27 @@
-//Test of cheap 13.56Mhz RFID-RC522 module
-//Connect as follows:
-//RFID pins        ->  WIZWiki-W7500 header CN5 (Arduino-compatible header)
-//----------------------------------------
-//1.RFID IRQ    ->   Not used. Leave open
-//2.RFID MISO   ->   WIZWiki-W7500 SPI_MISO     =D12
-//3.RFID MOSI   ->   WIZWiki-W7500 SPI_MOSI     =D11
-//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
+/*--------------------------------------------------------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
+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)
+--------------------------------------------------------------------------
+1.RFID IRQ    ->   Not used. Leave open
+2.RFID MISO   ->   WIZWiki-W7500 SPI_MISO     =D12
+3.RFID MOSI   ->   WIZWiki-W7500 SPI_MOSI     =D11
+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*/
+
+
 
 
 //Adding Library for Mbed
@@ -17,7 +30,10 @@
 #include "MFRC522.h"
 //Adding Library for SPI protocol
 #include "SPI.h"
+
+//Define RFID version and date
 #define VERSION "RFID_2017_03_20"
+//Define board
 #define CIBLE "WIZwiki-W7500"
 
 
@@ -30,21 +46,23 @@
 // 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);
-DigitalOut LedRed(D6);
-DigitalOut LedYellow(D5);
-char save[1024];
+
 //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);
 
 //* Local functions */
-void DumpMifareClassicToSerial      (MFRC522::Uid *uid, uint8_t piccType, MFRC522::MIFARE_Key *key);
-void DumpMifareClassicSectorToSerial(MFRC522::Uid *uid, MFRC522::MIFARE_Key *key, uint8_t sector);
-void DumpMifareUltralightToSerial   (void);
-void writeDataUL(void);
-void writeDataClassic1k(void);
+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;
 /**
  * Dumps debug info about the selected PICC to Serial.
@@ -54,6 +72,7 @@
 
 void DumpToSerial(MFRC522::Uid *uid)
 {
+    //Declaring MIFARE Classic 1k key
     MFRC522::MIFARE_Key key;
 
     // Print Card UID
@@ -77,30 +96,22 @@
             for (uint8_t i = 0; i < 6; i++) {
                 key.keyByte[i] = 0xFF;
             }
+            //Calling MIFARE Classic 1k memory block and sector
             DumpMifareClassicToSerial(uid, piccType, &key);
             break;
 
         case MFRC522::PICC_TYPE_MIFARE_UL:
+            //Calling MIFARE Ultralight memory block,block data and sector,sector data
             DumpMifareUltralightToSerial();
             break;
-        case MFRC522::PICC_TYPE_TNP3XXX:
-            printf("Dumping memory contents not implemented for that PICC type. \n\r");
-            break;
-        case MFRC522::PICC_TYPE_ISO_14443_4:
-        case MFRC522::PICC_TYPE_ISO_18092:
-        case MFRC522::PICC_TYPE_MIFARE_PLUS:
-            printf("Dumping memory contents not implemented for that PICC type. \n\r");
-            break;
 
-        case MFRC522::PICC_TYPE_UNKNOWN:
-        case MFRC522::PICC_TYPE_NOT_COMPLETE:
         default:
             break; // No memory dump here
     }
 
     printf("\n\r");
 
-    RfChip.PICC_HaltA(); // Already done if it was a MIFARE Classic PICC.
+    RfChip.PICC_HaltA(); // Instructs a PICC in state ACTIVE(*) to go to state HALT.
 } // End PICC_DumpToSerial()
 
 /**
@@ -154,10 +165,10 @@
  */
 void DumpMifareClassicSectorToSerial(MFRC522::Uid *uid, MFRC522::MIFARE_Key *key, uint8_t sector)
 {
-    uint8_t status;
-    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.
+    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:
@@ -189,9 +200,9 @@
     }
 
     // Dump blocks, highest address first.
-    uint8_t byteCount;
-    uint8_t buffer[18];
-    uint8_t blockAddr;
+    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;
@@ -207,6 +218,7 @@
         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) {
@@ -216,6 +228,7 @@
         }
 
         // 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) {
@@ -228,6 +241,9 @@
             printf("  %2X", buffer[index]);
         }
 
+
+//This block is printing access bit......................................................................................
+
         // Parse sector trailer data
         if (isSectorTrailer) {
             c1  = buffer[7] >> 4;
@@ -270,6 +286,9 @@
                    buffer[1],
                    buffer[0]);
         }
+
+        //END....................................................................................................................
+
         printf("\n\r");
     }
 
@@ -281,14 +300,15 @@
  */
 void DumpMifareUltralightToSerial(void)
 {
-    uint8_t status;
-    uint8_t byteCount;
-    uint8_t buffer[18];
+    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) {
@@ -344,26 +364,12 @@
         case MFRC522::PICC_TYPE_MIFARE_UL:
             writeDataUL();
             break;
-        case MFRC522::PICC_TYPE_TNP3XXX:
-            printf("Dumping memory contents not implemented for that PICC type. \n\r");
-            break;
-        case MFRC522::PICC_TYPE_ISO_14443_4:
-        case MFRC522::PICC_TYPE_ISO_18092:
-        case MFRC522::PICC_TYPE_MIFARE_PLUS:
-            printf("Dumping memory contents not implemented for that PICC type. \n\r");
-            break;
-
-        case MFRC522::PICC_TYPE_UNKNOWN:
-        case MFRC522::PICC_TYPE_NOT_COMPLETE:
         default:
             break; // No memory dump here
     }
-
     printf("\n\r");
-
 }
 
-
 void writeDataClassic1k()
 {
     //Declaration of MFRC522 key
@@ -375,21 +381,11 @@
 
 
     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;
         }
-        // Look for new cards
-        if ( ! RfChip.PICC_IsNewCardPresent()) {
-            continue;
-        }
-
-        // Select one of the cards
-        if ( ! RfChip.PICC_ReadCardSerial()) {
-            continue;
-        }
-        printf("\n\r");
-
 
         pc.printf("Enter 1 block: "); // Enter Data
 
@@ -398,13 +394,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
         // Write block
@@ -412,7 +408,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow = 1;
+
             continue;
         } else {
             LedGreen=1;
@@ -426,12 +422,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
         // Write block
@@ -439,7 +436,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow = 1;
+
             continue;
         } else {
             LedGreen = 1;
@@ -453,12 +450,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
         // Write block
@@ -466,7 +464,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow = 1;
+
             continue;
         } else {
             LedGreen = 1;
@@ -480,12 +478,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -494,7 +493,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen = 1;
@@ -508,12 +507,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
         // Write block
@@ -521,7 +521,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -535,12 +535,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -549,37 +550,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
-            pc.printf("Succesfully Written to tag: ");
-        }
-        printf("\n\r");
-        pc.printf("Enter 9 block: "); // Enter Data
-        for(uint8_t i = 0; i < 16; i++) {
-            buffer[i] = pc.putc(pc.getc());
-        }
-        printf("\n\r");
-        block = 9;
-        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));
-            LedRed=1;
-            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));
-            LedRed=1;
-            continue;
-        } else {
-            LedYellow=1;
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -589,12 +563,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -603,10 +578,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -616,12 +591,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -630,10 +606,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -643,12 +619,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -657,10 +634,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -670,12 +647,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -684,10 +662,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
 
@@ -699,12 +677,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -713,10 +692,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -726,12 +705,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -740,10 +720,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -753,12 +733,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -767,10 +748,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
 
@@ -781,12 +762,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -795,10 +777,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -808,12 +790,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -822,10 +805,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -835,12 +818,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -849,10 +833,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -862,12 +846,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -876,10 +861,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -889,12 +874,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -903,10 +889,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -916,12 +902,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -930,10 +917,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -943,12 +930,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -957,10 +945,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -970,12 +958,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -984,10 +973,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -997,12 +986,13 @@
         }
         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));
-            LedRed=1;
+
             continue;
         }
 
@@ -1011,10 +1001,10 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedRed=1;
+
             continue;
         } else {
-            LedYellow=1;
+
             pc.printf("Succesfully Written to tag: ");
         }
         printf("\n\r");
@@ -1034,8 +1024,8 @@
 {
     //Declaration of MFRC522 status
     MFRC522::StatusCode status;
-    uint8_t buffer[16];
-    uint8_t page;
+    uint8_t buffer[16]; //Define buffer 
+    uint8_t page; //Define page
 
     while(true) {
 
@@ -1051,7 +1041,7 @@
         if (status != MFRC522::STATUS_OK) {
             pc.printf("MIFARE_Write() failed: ");
             pc.printf(RfChip.GetStatusCodeName(status));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1067,11 +1057,12 @@
         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));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1087,11 +1078,12 @@
         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));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1107,11 +1099,12 @@
         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));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1127,11 +1120,12 @@
         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));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1147,11 +1141,12 @@
         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));
-            LedYellow=1;
+
             continue;
         } else {
             LedGreen=1;
@@ -1186,9 +1181,8 @@
 
     while(true) {
 
-        LedRed   = 0;
+
         LedGreen = 1;
-        LedYellow = 0;
 
         // Look for new cards
         if ( ! RfChip.PICC_IsNewCardPresent()) {