 
 // Main routines, find header, then sync in with it, get a packet, and decode data in it, plus report any errors.
 void loop(){
-  tempBit=polarity^1; //these begin as opposites for each packet
+  tempBit=polarity^1; //these begin the opposites for a packet
   noErrors=true;
   firstZero=false;
   headerHits=0;

      noErrors=false;//something has gone wrong, polarity has changed too early, ie always an error
    }//exit and retry
    else{
      //now grab the bitState before setting up for next bit & correct for polarity
      bitState = tempBit ^ polarity;//Polarity=1, invert OR Polarity=0, ignore
      //Now work on what the next bit waveform is going to be 
      delayMicroseconds(lDelay);
      //now 1 quarter into the next bit pattern,
      if(digitalRead(RxPin)==tempBit){ //if RxPin has NOT swapped, then next data bit value IS swapping
        //If the header is done, then it means data change is occuring ie 1->0, or 0->1
        //data transition detection must swap, so it loops for the opposite transition in the next bit waveform
        tempBit = tempBit^1;
      }//end of detecting no transition at end of bit waveform

      //Now process the tempBit state and interept data as definite 0 or 1's, (Polarity corrected by now) 
      if(bitState==1){ //1 data could be header or packet
        if(!firstZero){
          headerHits++;

//Variables for Byte storage
byte    dataByte   = 0;    //Accumulates the bit information
byte    nosBits    = 0;    //Counts to 8 bits within a dataByte
byte    maxBytes   = 5;    //Set the bytes collected after each header. NB if set too high, any end noise will cause an error
byte    nosBytes   = 0;    //Counter stays within 0 -> maxBytes
//Variables for multiple packets
byte    bank       = 0;    //Points to the array of 0 to 3 banks of results from up to 4 last data downloads 
