       case Retreat:
         setLEDColour(1, 0, 0);
         break;
+    }
+
+    // Bored, nothing much to see here, wander around a bit in the hope of finding something
+    if (action == Seek && blankScanCount > BORDEM_THRESHOLD) {
+      action = Bored;
+      lookAng = 90;
+      if (random(0, 100) > 35)
+        bot.driveTo(random(-50, 50), random(-50, 50));
+      else
+        bot.arcTo(random(-50, 50), random(-50, 50));
+      blankScanCount = 0;
+      lastScanMove = millis() + 5000;
     }
 }
 

        lookAng += scanDir;
        
        // switch scan direction if end of servo travel reached
        if (lookAng > 180) scanDir = -1;
        if (lookAng < 0) scanDir = 1;
      }
      
      lastScanMove = millis() + SCAN_SPEED;

enum Activity
{
  Idle,
  Bored,
  Seek,
  Turn,
  Advance,
