               ArtDmx* dmx = (ArtDmx*)udp_buffer;
               int port = node.getPort(dmx->SubUni, dmx->Net);
               if (!locateMode && port >= 0 && port < 4) {
-                // Bit swap length from dmx packet
-                int l = ((dmx->Length & 0xF) << 8) + ((dmx->Length & 0xF0) >> 8);
+                // Calculate length of DMX packet. Requires bit swap length from dmx packet
+                int dmx_length = ((dmx->Length & 0xF) << 8) + ((dmx->Length & 0xF0) >> 8);
 
                 // Check if length is longer then allocated data
-                if (l > RGBW_PER_UNIVERSE * 4) {
-                  l = RGBW_PER_UNIVERSE * 4;
+                if (dmx_length > RGBW_PER_UNIVERSE * 4) {
+                  dmx_length = RGBW_PER_UNIVERSE * 4;
                 }
 
                 switch (port) {
                   case 0: {
-                      memcpy(led_data, dmx->Data, l);
+                      // Copy dmx data to the first 1/4 of led_data
+                      memcpy(led_data_ptr_1, dmx->Data, dmx_length);
                       FastLED[0].show(led_data, NUM_RGB_LEDS_1, 255);
                       break;
                     }
-                  case 1: {                   
-                      memcpy(led_pointer_2, dmx->Data, l);
-                      FastLED[0].show((CRGB*)led_pointer_1, NUM_RGB_LEDS_2, 255);
-                      FastLED[1].show((CRGB*)led_pointer_2, NUM_RGB_LEDS_1, 255);
+                  case 1: {     
+                      // Copy dmx data to the second 1/4 of the led_data              
+                      memcpy(led_data_ptr_2, dmx->Data, dmx_length);
+                      FastLED[0].show((CRGB*)led_data_ptr_1, NUM_RGB_LEDS_2, 255);
+                      FastLED[1].show((CRGB*)led_data_ptr_2, NUM_RGB_LEDS_1, 255);
                       break;
                     }
                   case 2: {
-                      memcpy(led_pointer_3, dmx->Data, l);
-                      FastLED[0].show((CRGB*)led_pointer_1, NUM_RGB_LEDS_3, 255);
-                      FastLED[1].show((CRGB*)led_pointer_2, NUM_RGB_LEDS_2, 255);
-                      FastLED[2].show((CRGB*)led_pointer_3, NUM_RGB_LEDS_1, 255);
+                      memcpy(led_data_ptr_3, dmx->Data, dmx_length);
+                      FastLED[0].show((CRGB*)led_data_ptr_1, NUM_RGB_LEDS_3, 255);
+                      FastLED[1].show((CRGB*)led_data_ptr_2, NUM_RGB_LEDS_2, 255);
+                      FastLED[2].show((CRGB*)led_data_ptr_3, NUM_RGB_LEDS_1, 255);
                       break;
                     }
                   case 3: {
-                      memcpy(led_pointer_4, dmx->Data, l);
-                      //FastLED[0].show((CRGB*)led_pointer_1, NUM_RGB_LEDS_4, 255);
-                      FastLED[1].show((CRGB*)led_pointer_2, NUM_RGB_LEDS_3, 255);
-                      FastLED[2].show((CRGB*)led_pointer_3, NUM_RGB_LEDS_2, 255);
-                      FastLED[3].show((CRGB*)led_pointer_4, NUM_RGB_LEDS_1, 255);
+                      memcpy(led_data_ptr_4, dmx->Data, dmx_length);
+                      //FastLED[0].show((CRGB*)led_data_ptr_1, NUM_RGB_LEDS_4, 255);
+                      FastLED[1].show((CRGB*)led_data_ptr_2, NUM_RGB_LEDS_3, 255);
+                      FastLED[2].show((CRGB*)led_data_ptr_3, NUM_RGB_LEDS_2, 255);
+                      FastLED[3].show((CRGB*)led_data_ptr_4, NUM_RGB_LEDS_1, 255);
                       break;
                     }
                 }

  // Open ArtNet
  node = ArtNode(config, sizeof(udp_buffer), udp_buffer);

  FastLED.addLeds<WS2812, PIN_LED_1, RGB>(led_data, NUM_RGB_LEDS_3);
  FastLED.addLeds<WS2812, PIN_LED_2, RGB>(led_data, NUM_RGB_LEDS_3);
  FastLED.addLeds<WS2812, PIN_LED_3, RGB>(led_data, NUM_RGB_LEDS_2);

byte udp_buffer[600];

CRGB led_data[NUM_RGB_LEDS_4];
byte * led_data_ptr_1 = (byte*)led_data;
byte * led_data_ptr_2 = (byte*)led_data + RGBW_PER_UNIVERSE * 4;
byte * led_data_ptr_3 = (byte*)led_data + 2*RGBW_PER_UNIVERSE * 4;
byte * led_data_ptr_4 = (byte*)led_data + 3*RGBW_PER_UNIVERSE * 4;

bool locateMode = false;

