   } else if (patternId == JUGGLE) {
     juggle();
   }
+
+  firstRun = false;
+
   show_at_max_brightness_for_power();
 }

uint8_t max_bright = 255;                                      // Overall brightness definition. It can be changed on the fly.
unsigned long previousMillis;                                 // Store last time the strip was updated.

uint8_t   thisfade = 200;                                      // How quickly does it fade? Lower = slower fade rate.
int        thishue = 50;                                       // Starting hue.
uint8_t    thisinc = 1;                                        // Incremental value for rotating hues
uint8_t    thissat = 240;                                      // The saturation, where 255 = brilliant colours.
uint8_t    thisbri = 255;                                      // Brightness of a sequence. Remember, max_bright is the overall limiter.
int        huediff = 256;                                      // Range of random #'s to use for hue
uint8_t  thisdelay = 0;                                        // We don't need much delay (if any)

uint8_t    numdots = 4;                                     // Number of dots in use.
uint8_t   faderate = 128;                                     // How long should the trails be. Very low value = longer trails.
uint8_t     hueinc = 16;                                     // Incremental change in hue between each dot.
uint8_t     curhue = 0;                                     // The current hue
uint8_t thisbright = 255;                                     // How bright should the LED/display be.
uint8_t   basebeat = 48;                                     // Higher = faster movement.

uint8_t wavebright = 255;                                     // You can change the brightness of the waves/bars rolling across the screen.
uint8_t    thisrot = 1;                                          // You can change how quickly the hue rotates for this wave. Currently 0.
uint8_t     allsat = 240;                                         // I like 'em fully saturated with colour.
int8_t   thisspeed = 48;                                         // You can change the speed of the wave, and use negative values.
uint8_t    allfreq = 3;                                         // You can change the frequency, thus distance between bars.
int      thisphase = 0;                                            // Phase change value gets calculated.
uint8_t thiscutoff = 120;                                     // You can change the cutoff value to display this wave. Lower value = longer wave.
uint8_t      bgclr = 0;                                            // A rotating background colour.
uint8_t      bgbri = 0;


#define RAINBOW 1
#define RAINBOW_2 2
#define RAINBOW_3 2
#define DISCO_BARBER_1 3
#define DISCO_BARBER_2 4
#define JUGGLE 5
#define NEW 6

int maxPatternId = 5;
int patternId = random(maxPatternId - 1);
bool holdPattern = false;
int rotationInMillseconds = 20000;

const int ledPin = 13;
const int led = 13;

  LEDS.addLeds<LED_TYPE, LED_DT, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness(max_bright);
  set_max_power_in_volts_and_milliamps(5, 10000);
  randomSeed(analogRead(0));
}

int numberOfSparkles = 1;
int increasing = true;

void confetti() {

  if (patternId == RAINBOW) {
    fadeToBlackBy(leds, NUM_LEDS, 180);
  } else {
    fadeToBlackBy(leds, NUM_LEDS, 200);
  }
  
  if (numberOfSparkles < 80 && increasing) {
    numberOfSparkles += 1;
  } else if (numberOfSparkles > 5) {
    numberOfSparkles -= 1;
