 // This #include statement was automatically added by the Particle IDE.
 #include "neopixel/neopixel.h"
 
-// ---- CHANGE THIS ----
+
+// ---- CUSTOMIZE ME ----
 #define PIXEL_PIN D1
 #define PIXEL_COUNT 2
 #define PIXEL_TYPE WS2812B
 
+// blackout means don't run during "the day", define what times that means here
+int lightupStart = 18;  // time in 24h to display - 6pm
+int lightupHours = 9;   // hours to light         - 3am
+// I'd love to use the do time ranges here but it's too hard to
+// implement without a real time/date library.  You can't easily
+// represent like 3am -- meaning the next day with a number.
+
+// ---- END CUSTOMIZE ME ----
+
+
 Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);
 
 int doorState = -1;
-
-// don't run during "the day", define what that means here
-int blackoutStart = 3;  // 3am
-int blackoutEnd  = 18;  // 6pm
-// I'd love to use the positive inflection here but it's too hard to
-// implement without a real time/date library.  You can't easily
-// represent like 3am -- meaning the next day with a number.
-
+bool lightupEndNextDay;
+int currentHour;
+int lightupEnd;
 
 void setup() {
   // Serial.begin(9600);
 
-  Time.zone(-7);  // PDT, be wary of daylight savings adjustments.  :(
+  Time.zone(-7);  // PST
 
   strip.begin();
-  strip.show(); // Initialize all pixels to 'off'
+  strip.show();   // Initialize all pixels to 'off'
+
   Particle.subscribe("squarism/garage/open", eventHandler);
 
-  // Serial.println("I'm booted!");
+  // figure out if operating time is actually next day
+  lightupEndNextDay = endTimeIsNextDay();
+  //   Serial.println("I'm booted!");
 }
 
 void loop() {

    strip.show();
    delay(wait);
  }

}

void iceRing(uint16_t wait) {
  uint16_t i, j;
  int colorStart = 166;  // blue

  }
}

bool endTimeIsNextDay() {
  if (lightupStart + lightupHours >= 24) {
    return true;
  } else {
    return false;
  }
}

bool isOperatingTime() {
  currentHour = Time.hour();
  lightupEnd = lightupStart + lightupHours;

  // same day calculation
  if ( (lightupEndNextDay == false) && ((currentHour >= lightupStart) && (currentHour < lightupEnd))) {
    return true;
  }

  // End time is tomorrow.
  // Let's say that operating time is 6pm to 3am.  That's 18 --> 27, 27 representing the next day.
  // We will count time from 18 on up and then from 3 to 0.  So we measure the bleed over with the or statement below
  // here to cover the "next day" case.
  if ( (lightupEndNextDay == true) && (currentHour >= lightupStart) || (currentHour <= (lightupEnd - 24))) {
    return true;
  }

  return false;
}

// Turn all the neopixels off
void blankStrip() {
  uint32_t black = strip.Color(0, 0, 0);
  for(uint16_t i=0; i<strip.numPixels(); i++) {
