       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 
+      byte bitState = tempBit ^ polarity;//if polarity=1, invert the tempBit or if polarity=0, leave it alone.
       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(digitalRead(RxPin)==tempBit){ //if RxPin has not swapped, then bitWaveform 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
+        //data transition detection must swap, so it loops for the opposite transitions
         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) 
+      }//end of detecting no transition at end of bit waveform, ie end of previous bit waveform same as start of next bitwaveform
+
+      //Now process the tempBit state and make data definite 0 or 1's, allow possibility of Pos or Neg Polarity 
       if(bitState==1){ //1 data could be header or packet
         if(!firstZero){
           headerHits++;

/* 
 Manchester Decoding, reading by delay rather than interrupt
 Rob Ward July 2014
 This example code is in the public domain.
 Use at your own risk, I will take no responsibility for any loss whatsoever its deployment.
 Visit https://github.com/robwlakes/ArduinoWeatherOS for the latest version and
 documentation. Filename: DebugManchester.ino ReadMe: DebugMan.md

 NB: Choosing the wrong polarity will still provide "data", but will be incorrect
 even thought the two delays are working properly!!!
 Remember to check both Polarity settings for sensible data.
 
 DebugVersion_09, 28tyh July 2014
 
 */



// 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 the opposites for a packet
  noErrors=true;
  firstZero=false;
  headerHits=0;
