     // start cooldown counter
     flameCoolDownTime.reset();
 
-    // when the solenoid closes, there's a lot of EMI that disrupts sensors.  Ignore the sensors for a period of time.
-    sensorEmiCooldown.interval( config.flameCoolDownTime + EMI_COOLDOWN ); // add a little more time.
-    sensorEmiCooldown.reset(); // sensing needs to pause.
-    emiInterference = true;
-
     Serial << F("Flame on! ") << fireLevel << F(" mapped [") << config.minFireTime << F(",") << config.maxFireTime << F("]");
     Serial << F(" -> ") << flameTime << F("ms.  Cooldown: ") << config.flameCoolDownTime << F("ms.") << endl;
   }

Metro flameOnTime(100UL);
// but only fire this often.
Metro flameCoolDownTime(1000UL);
// there's quite a bit of EMI from the solenoid firing, so we add a cooldown on reading sensors
#define EMI_COOLDOWN 1000UL
Metro sensorEmiCooldown(EMI_COOLDOWN);
boolean emiInterference = true;

// when we're out of the network, update the lights on this interval (approx)
#define SOLO_TEST_PATTERN_UPDATE 3000UL // ms

// remote control
#define RESET_PIN A0
#define GAME_ENABLE_PIN A1
#define DEBOUNCE_TIME 100UL // need a long debounce b/c electrical noise from solenoid.
Bounce systemReset = Bounce(RESET_PIN, DEBOUNCE_TIME);
Bounce gameEnable = Bounce(GAME_ENABLE_PIN, DEBOUNCE_TIME);
boolean gameEnableFlag = true;
