user29688: I've got an Arduino with a WS2812 hooked up to it, powered by the USB on my computer and I am trying to run the following code:
#include <FastLED.h>

#define NUM_LEDS 144
#define DATA_PIN 6
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.show();
}

void loop() {
  for(int dot = 0; dot < NUM_LEDS; dot++) { 
    fill_solid(leds, NUM_LEDS, CRGB::Red);
    leds[dot] = CRGB::Black;
    leds[dot] = CRGB::Blue;
    FastLED.show();
    leds[dot] = CRGB::Red;
    delay(30);
  }
}

void setAll() {

  FastLED.show();
}

What this does is sets all the LEDs to red, then goes through each one turning it off, then to blue and then back to red.
For some reason, it gets X number of LEDs along and then crashes.  By crashes I mean the Arduino disconnects itself from the computer, but the Arduino stays on with the LED strip still powered up.
Any ideas?  This is a genuine Uno and I can run any of the FastLED or NeoPixel examples for hours on end without an issue

user20245: It is inferred from your question that the Arduino is getting powered through the USB port.  As you say the Arduino appears "gone" from the computer when you light up too many LEDs.
All USB ports are only obliged to supply 500mA with out the USB Device (the Arduino) negotiating for more power from the USB Host.  If the load goes beyond 500mA, the USB Host (the computer) can limit the power my reducing the voltage.  At some point the Atmel processor on the Arduino will stop working.
There are many tutorial on how to use LED strips on the web.  Most will indicate power from a larger than normal power supply is necessary.  Also, that the LED strip power should be connected directly to an appropriately chosen power supply.
The following image from this web page illustrates this:

(Note: In this picture PIN 6 was chosen to communicate with the LED strip.  Your specific application (program or sketch) may use a different pin. Also, realize that the power supply in the picture is wired to only power the LED strip. The Arduino still needs to be powered.)

user10794: See Powering NeoPixels.

Each individual NeoPixel draws up to 60 milliamps at maximum brightness white (red + green + blue).

OK, so you have 144 LEDs.
#define NUM_LEDS 144

That means you need to allow for 8.64 amps to power them!
144 * 0.060 = 8.64

(This is a worst-case scenario, but you should probably allow for 2 amps at least).
As st2000 points out, the USB interface will provide 500 mA (0.5 amps). So you are possibly 8 amps short. You need to power the NeoPixels independently, not through the Arduino.
By powering them through the Arduino they are draining the current from the USB port so much that the over-current protection kicks in.

29688: <p>I've got an Arduino with a WS2812 hooked up to it, powered by the USB on my computer and I am trying to run the following code:</p>

<pre><code>#include &lt;FastLED.h&gt;

#define NUM_LEDS 144
#define DATA_PIN 6
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB

CRGB leds[NUM_LEDS];

void setup() {
  FastLED.addLeds&lt;LED_TYPE, DATA_PIN, COLOR_ORDER&gt;(leds, NUM_LEDS);
  FastLED.show();
}

void loop() {
  for(int dot = 0; dot &lt; NUM_LEDS; dot++) { 
    fill_solid(leds, NUM_LEDS, CRGB::Red);
    leds[dot] = CRGB::Black;
    leds[dot] = CRGB::Blue;
    FastLED.show();
    leds[dot] = CRGB::Red;
    delay(30);
  }
}

void setAll() {

  FastLED.show();
}
</code></pre>

<p>What this does is sets all the LEDs to red, then goes through each one turning it off, then to blue and then back to red.</p>

<p>For some reason, it gets X number of LEDs along and then crashes.  By crashes I mean the Arduino disconnects itself from the computer, but the Arduino stays on with the LED strip still powered up.</p>

<p>Any ideas?  This is a genuine Uno and I can run any of the FastLED or NeoPixel examples for hours on end without an issue</p>
 20245: <p>It is inferred from your question that the Arduino is getting powered through the USB port.  As you say the Arduino appears "gone" from the computer when you light up too many LEDs.</p>

<p>All USB ports are only obliged to supply 500mA with out the USB Device (the Arduino) negotiating for more power from the USB Host.  If the load goes beyond 500mA, the USB Host (the computer) can limit the power my reducing the voltage.  At some point the Atmel processor on the Arduino will stop working.</p>

<p>There are many tutorial on how to use LED strips on the web.  Most will indicate power from a larger than normal power supply is necessary.  Also, that the LED strip power should be connected directly to an appropriately chosen power supply.</p>

<p>The following image <a href="http://www.tweaking4all.com/hardware/arduino/arduino-ws2812-led/" rel="nofollow noreferrer">from this web page</a> illustrates this:</p>

<p><a href="https://i.stack.imgur.com/9Mk4w.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9Mk4w.jpg" alt="enter image description here"></a></p>

<p>(Note: In this picture PIN 6 was chosen to communicate with the LED strip.  Your specific application (program or sketch) may use a different pin. Also, realize that the power supply in the picture is wired to only power the LED strip. The Arduino still needs to be powered.)</p>
 10794: <p>See <a href="https://learn.adafruit.com/adafruit-neopixel-uberguide/power" rel="nofollow noreferrer">Powering NeoPixels</a>.</p>

<blockquote>
  <p>Each individual NeoPixel draws up to 60 milliamps at maximum brightness white (red + green + blue).</p>
</blockquote>

<p>OK, so you have 144 LEDs.</p>

<pre><code>#define NUM_LEDS 144
</code></pre>

<p>That means you need to allow for 8.64 amps to power them!</p>

<pre><code>144 * 0.060 = 8.64
</code></pre>

<p>(This is a worst-case scenario, but you should probably allow for 2 amps at least).</p>

<p>As st2000 points out, the USB interface will provide 500 mA (0.5 amps). So you are possibly 8 amps short. You need to power the NeoPixels independently, not through the Arduino.</p>

<p>By powering them through the Arduino they are draining the current from the USB port so much that the over-current protection kicks in.</p>
