       }   
       break;
     case 6: // slower orange flashing    
-      if (currentMillis - prevFlashMillis > wandMediumFlashInterval) {    
+      if ((unsigned long)(currentMillis - prevFlashMillis) >= wandMediumFlashInterval) {    
         prevFlashMillis = currentMillis;    
         if( flashState == false ){    
           wandLights.setPixelColor(lednum, wandLights.Color(255, 127, 0));    

const int powercellLedCount = 14;                                         // total number of led's in the animation
const int powercellIndexOffset = 1;                                       // first led offset into the led chain for the animation

int c1Start = 16;
int c1End = 22;
int c2Start = 23;
int c2End = 29;
int c3Start = 30;
int c3End = 36;
int c4Start = 37;
int c4End = 43;
int ventStart = 44;
int ventEnd = 47;

// inputs for switches and buttons
const int THEME_SWITCH = 5;

/*************** Wand Light Helpers *********************/
unsigned long prevFlashMillis = 0; // last time we changed a powercell light in the idle sequence
bool flashState = false;
const unsigned long wandFastFlashInterval = 100; // interval at which we flash the top led on the wand
const unsigned long wandMediumFlashInterval = 500; // interval at which we flash the top led on the wand

void setWandLightState(int lednum, int state, unsigned long currentMillis){
  switch ( state ) {
    case 0: // set led red
      wandLights.setPixelColor(lednum, wandLights.Color(255, 0, 0));
