         vw_wait_tx(); // Wait until the whole message is gone
         ++msgId;
         
-        // Watchdog will wake us up in 8 seconds time.
-        //goToSleep(SLEEP_FLAG_IDLE);
+        ++awake_tx_count;
+        if (awake_tx_count > AWAKE_TX_MAX) {
+          awake_tx_count = 0;
+          
+          // Turn off the servo
+          servoOff();
+          
+          digitalWrite(LED_DEBUG, LOW);
+          
+          // Watchdog will wake us up in 8 seconds time.
+          goToSleep(SLEEP_FLAG_IDLE);
+          
+          digitalWrite(LED_DEBUG, HIGH);
+          
+          // Turn on the servo (todo: leave servo off for much longer)
+          servoOn();
+        }
+        
     }
 }
 

#define SLEEP_FLAG_DARK 0  // Gone to sleep because it is dark
#define SLEEP_FLAG_IDLE 1  // Gone to sleep because nothing to do

// When the last move was attempted.
unsigned long move_last = 0; 
// The move delay.

  
  // Reset after 8 seconds, 
  // unless wdt_reset(); has been successfully called
  
  /* In order to change WDE or the prescaler, we need to
   * set WDCE (This will allow updates for 4 clock cycles).
   */
  WDTCSR |= (1<<WDCE) | (1<<WDE);

  /* set new watchdog timeout prescaler value */
  WDTCSR = 1<<WDP0 | 1<<WDP3; /* 8.0 seconds */
  
  /* Enable the WD interrupt (note no reset). */
  WDTCSR |= _BV(WDIE);
  
  //wdt_enable(WDTO_8S);
  wdt_reset();
}

