     
     case 0x42505f87:
       set_state_bit (true, GM_CMD_MOVE_E, &state);
-      // left 
+      // right 
       break;
     }
 
     My_Receiver.resume(); 
   }
-
-  comm_send (state);
+  
+  // Send state only if different from previous one
+  if (savestate != state) {
+    comm_send (state);
+  }
+  
   delay (30);
 }

  byte state = 0x00;
  set_state_bit (true, GM_CMD_READY, &state);
  comm_send (state);
}

void loop() {
  
  // Reset state
  byte state = 0x00;

  // Check for IR commands
  if (My_Receiver.GetResults (&My_Decoder)) {

    //copy the results to the hash decoder and decode them
    My_Hash_Decoder.copyBuf (&My_Decoder);

      break;

    case 0xd5055bb4:
      // left
      set_state_bit (true, GM_CMD_MOVE_W, &state);
      break;
    
