Arduino Hypercon code error when changing # of LED's

Hi everyone. My project is running and controlling a set of WS2812b LED’s using an Arduino Nano connected to a Raspberry Pi.

My current problem is that I cant get it to work when I change the code from 150 LED’s (everything works as expecting with this many) but not when I change it to 300. The LED’s will respond with a starting animation (after which they simply turn off) but will not respond afterwards to any input.

I suspect it’s because I am not changing the prefix information in the code that should be the same as the one found in Hypercon. However I can’t figure out the correct way to write it or if this is even the problem.
Here’s the code that I have:

#include "FastLED.h"

// How many leds in your strip?
#define NUM_LEDS 300

// For led chips like Neopixels, which have a data line, ground, and power, you just
// need to define DATA_PIN.  For led chipsets that are SPI based (four wires - data, clock,
// ground, and power), like the LPD8806 define both DATA_PIN and CLOCK_PIN
#define DATA_PIN 3


// Adalight sends a "Magic Word" (defined in /etc/boblight.conf) before sending the pixel data
uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;

// Baudrate, higher rate allows faster refresh rate and more LEDs (defined in /etc/boblight.conf)
#define serialRate 500000

// Define the array of leds

void setup() { 
      // Uncomment/edit one of the following lines for your leds arrangement.
      // FastLED.addLeds<TM1803, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1804, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<TM1809, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2811, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2812, DATA_PIN, RGB>(leds, NUM_LEDS);
         FastLED.addLeds<WS2812B, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<UCS1903B, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<GW6205_400, DATA_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<WS2801, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<SM16716, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<LPD8806, RGB>(leds, NUM_LEDS);

      // FastLED.addLeds<WS2801, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<SM16716, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
      // FastLED.addLeds<LPD8806, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
        // initial RGB flash
        LEDS.showColor(CRGB(255, 0, 0));
        LEDS.showColor(CRGB(0, 255, 0));
        LEDS.showColor(CRGB(0, 0, 255));
        LEDS.showColor(CRGB(0, 0, 0));
        Serial.print("Ada\n"); // Send "Magic Word" string to host


void loop() { 
  // wait for first byte of Magic Word
  for(i = 0; i < sizeof prefix; ++i) {
    waitLoop: while (!Serial.available()) ;;
    // Check next byte in Magic Word
    if(prefix[i] == continue;
    // otherwise, start over
    i = 0;
    goto waitLoop;
  // Hi, Lo, Checksum
  while (!Serial.available()) ;;;
  while (!Serial.available()) ;;;
  while (!Serial.available()) ;;;
  // if checksum does not match go back to wait
  if (chk != (hi ^ lo ^ 0x55))
    goto waitLoop;
  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
  // read the transmission data and set LED values
  for (uint8_t i = 0; i < NUM_LEDS; i++) {
    byte r, g, b;    
    r =;
    g =;
    b =;
    leds[i].r = r;
    leds[i].g = g;
    leds[i].b = b;
  // shows new values;

Any help will be appreciated as I’ve been trying to fix it for ages.

I suspect it's because I am not changing the prefix information in the code that should be the same as the one found in Hypercon. However I can't figure out the correct way to write it or if this is even the problem.

Well, I suspect that you are running out of memory. Instead of jumping from 150 to 300, try 200, then 250. See where you start running into problems.
might prove useful, too.

Thank you very much, it worked. It was only able to power about 260 LED's, gladly I only needed 234.