     return false;   
 }
 
+// calculates checksum by XOR-ing all bytes except STX and ETX
 unsigned char checksum(unsigned char A[], int numElements) {
   int i = 0;
   unsigned char BCC = A[0];

  return BCC;
}

void MF_GET_SNR(unsigned char DADD) {
  BCC = checksum( { DADD, 0x03, CMD_GET_SNR, 0x26, 0x00 }, 5);
  unsigned char CMD[] = { STX, DADD, 0x03, CMD_GET_SNR, 0x26, 0x00, BCC, ETX};
  RDM880.write(CMD, 8);
}

void MF_READ(unsigned char numBlocks, unsigned char startSector) {
  int i = 0;
  BCC = checksum( { 0x00, 0x0A, CMD_READ, 0x01, numBlocks, startSector, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }, 12);

  }
}

// Prints serial number to monitor, sets flag if a packet other than idle is detected
unsigned char getResponse(bool responseFlag) {
  int i = 0;
  unsigned char response[bufferSize];
