Nakatomi Plaza Party Lights // Mandatory Fun Day

>> NODE: ctrlaltcorp.dev

>> AUTHOR: HOTCHIP

>> TIME: [20251205-0900]

Mandatory Fun Day drops a “movie-themed Christmas party” directive from Corporate. Everyone else stampedes for the usual holiday sludge—Grinch sweaters, Home Alone traps, whatever HR thinks is festive. But not us. No. We’re going full Nakatomi Plaza.

Enter: an ESP32 strapped to a tiny LED bar running a cop-light loop that screams “Come out to the coast, we’ll get together, have a few laughs.” Blue hits fast, red follows hard, all packaged in a tidy loop because the board may be small, but Hotchip does not do half-measures.

The parts for the build. Simple, effective.

ESP32 board and a LED strip. WS2811 LED strip.

Just add a 5V power source and a little holiday spirit.

The Logic

The LEDs alternate in tight 80-millisecond bursts—quick enough to look tactical, slow enough not to fry retinas. Blue stings, red punches, and there’s a little pause to let the tension breathe. It’s basically a strobe bar on microcontroller life support, perfect for setting the mood when some VP asks if Die Hard is really a Christmas movie. (It is. Move on.)

So congratulations: your office party is now officially upgraded from “mandatory” to “memorable,” and your ESP32 is doing more police work today than half the cast did in the film.

Yippee-ki-yay and happy holidays.

The Code

For anyone who wants to build their own.


    #include 

    #define NUM_LEDS 4
    #define DATA_PIN 4

    CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
  FastLED.setBrightness(200); // adjust if too bright
}

void loop() {
  // Blue phase: 3 quick flashes
  for (int i = 0; i < 3; i++) {
    leds[0] = CRGB::Blue;
    leds[2] = CRGB::Blue;
    leds[1] = CRGB::Black;
    leds[3] = CRGB::Black;
    FastLED.show();
    delay(80);

    leds[0] = CRGB::Black;
    leds[2] = CRGB::Black;
    leds[1] = CRGB::Blue;
    leds[3] = CRGB::Blue;
    FastLED.show();
    delay(80);
  }

  delay(300); // linger a bit before switching

  // Red phase: 3 quick flashes
  for (int i = 0; i < 3; i++) {
    leds[0] = CRGB::Red;
    leds[2] = CRGB::Red;
    leds[1] = CRGB::Black;
    leds[3] = CRGB::Black;
    FastLED.show();
    delay(80);

    leds[0] = CRGB::Black;
    leds[2] = CRGB::Black;
    leds[1] = CRGB::Red;
    leds[3] = CRGB::Red;
    FastLED.show();
    delay(80);
  }

  delay(300); // linger again
}
</code></pre>
    
 >> END OF TRANSMISSION 

- HotChip

</div>