Sparkfun support will be closed from 3:00PM to 4:15PM on April 27th for a company-wide townhall meeting. We will resume regular hours on the 28th.

Creative Commons images are CC BY-NC-SA 3.0

Description: The WS2812 is an RGB LED with a WS2811 control IC built right into the LED. This really blew our minds to see the control IC of an individually addressable RGB LED was moved into the actual LED, so we wanted to offer this amazing product to you! They’re great when you need a lot of color from not a lot of board space, now more so than ever.


  • Viewing angle: 120 degrees
  • Red: (620-630nm) @ 550-700mcd
  • Green: (515-530nm) @ 1100-1400mcd
  • Blue: (465-475nm) @ 200-400mcd

Forward Voltage:

  • Red: 1.8-2.2V
  • Green: 3.0-3.2V
  • Blue: 3.2-3.4V


Recommended Products

Customer Comments

  • I’m putting these on a custom board but noticed that in the sparkfun eagle library the footprint doesn’t match the schematic part. According to the WS2812 datasheet I need to have access to VCC to put a 0.1uF cap and a 150R off of it but the schematic part only gives me 4 pins more like the WS2812B is configured but the board footprint is still 6 pin. Letting you know to get a fix in!

  • How many of these can you daisy-chain on the same bus, assuming you can supply sufficient power?

    • This will depend on your desired output frequency. From the datasheet’s specs on communications (pgs 4-5), the worst case command time is 1.4uS per bit, 24 bits per LED plus 50us reset per command. This gives the equation: (#LEDS)(1.4uS)(24) + 50uS < (number of uS in output period). In my case, I want something that can operate ~50Hz so it looks smooth to the eye. I get: #LEDs < (20000uS - 50uS)/((1.4uS*24) = 593 LEDs. Note that your controller needs to be able to control it’s output within +/- 150nS. Seems like a 32MHz mcu could do this if you put everything in a timer/interrupt routine and didn’t try to do anything else. Could someone verify this?

  • Very nice product. Saw them being built into boards and led strops and couldn’t wait to get my hands on a couple. Although it might be a little hard to use them if the datasheet link leads to a “404 not found” page. Also, I think when you said “…a WS2811 control IC build right into the…” you may have meant “…a WS2811 control IC built right into the…”. You may want to fix these errors. Otherwise I look forward to buying some and trying them out!

    • Good eye, all fixed. Thanks!

    • Adafruit has had these for a while, and they cost less. They have nicer (and cheaper) breakout boards for these too.

      • Actually, Adafruit sells a 10 pack for 4.95. These at 10 are .45 each, making them cheaper at SparkFun :) Although I do think I like the NeoPixel boards better than the breakouts SF made. Not everything needs to go into a breadboard ;)

        • SF lowered the price after my comment. Whether it ’s a product listing error or responding to a call for competitive pricing, I’m happy whenever SF offers the best products at the lowest prices.

          • Looks like Adafruit lowered their price after GregFR’s comment. Gotta love free markets and both of these companies.

            • Looks like Adafruit increased their minimum shipping rates to US$ 33,00 to where I am, whereas SF is now shipping for free (for orders over $60.00)……

  • sparkfun really needs to get some ws2812b LEDs. same exact as these except it only has 4 pads (so much easier to hand solder) which are v+, v-, Din, Dout. just got some from another supplier and made a simple LED strip with some ribbon cable.

    • @sparkieee

      Acrobotic Industries is the only one selling the WS2812Bs (and the WS2812) and they are lower in price compared to Sparkfun or Adafruit.

    • Even simpler to solder (could even drop them into a breadboard) would be the 8mm PTH LED variants. Currently for sale in the U.S. under the name ‘PixelBits’.

  • Hey, an idea for these; How about talking to your nice friends that make the flexible PCB’s, and ask them to make strips of flexible PCB, preferably single sided, which enables you to just solder on these leds to make long led strips, for a led curtain or something! This saves a lot of time etching several regular PCB’s and cutting and stuff. The flexible PCB could then be sold in length units, and cut to the customers needs.

  • I really love these little things.

    I’m really happy to finally see these as raw units. I bought some about 6 months back, but the smallest quantity I could get was a full roll of 1000 direct from a supplier in China (Alibaba is awesome for stuff like this). It’s great to finally see these being sold in smaller quantities.

    I know the breakout is a little larger than Adafruit’s, but the schematic is current - Adafruit’s public “neoPixel” schematics are still based on the older WS2811 chip and separate LED. It’s simple to just replicate the Sparkfun schematic into your own designs. SparkFun is just flipping awesome for sharing their design out. Also FWIW - Adafruit’s current NeoPixel library will work perfectly.

    If you haven’t played with these things, I encourage it. I can’t say enough good things about how easy these are to use.

  • There is a useful trick I found for controlling the LEDs! Outputting the exact bit waveform is hard (100ns accuracy - duh?) but I found that if I run a Microchip PIC (or equivalent) MCU on 64MHz internal oscillator I can cause the UART to output the bit waveform. The trick is in the UART setup: * INVERT the output of the UART (normally low) * bit rate of 8MHz or 125ns * No stop bit (8 data bits, no parity) Then there are the MAGIC NUMBERS: Sending byte 192 (0xC0) sends a 1 code. Sending byte 252 (0xFC) sends a 0 code. Those BYTE values create a BIT waveform for the LEDs. This trick could be useful for the high-end machines (ARM based for example) to support the accurate bit timing requirements.

    Here is a sample C code (CCS C) : #include <18LF46K22.h>

    #use delay(clock=64000000)
    #use rs232(stream=LED_STREAM, baud=8000000, xmit=PIN_C6, rcv=PIN_C7,bits=8,parity=N,stop=0,ERRORS,INVERT)
    #define NUM_LEDS 24
    #define HI_BIT  192 // 0b11000000
    #define LOW_BIT 252 // 0b11111100
    //==========global  variables:===========
    byte grn [NUM_LEDS];
    byte blu [NUM_LEDS];
    byte red [NUM_LEDS];
    void SendByte (byte b) {
        byte i;
        // send 8 bits, MSB first.
        // for each bit send a CHAR that creates the bit's waveform
        for(i=0;i<8;i++) {
            if(bit_test(b,7)) fputc(HI_BIT,LED_STREAM);
            else fputc(LOW_BIT,LED_STREAM);
    void Draw (){
        unsigned int8 i;
        // send all data to LEDs
        // data order to transmit is G,R,B, 8 bits each.
        for (i=0;i<NUM_LEDS;i++){
    void initArray() {
        byte i;
        // assuming 24 LEDs:
        for(i=0;i<NUM_LEDS;i++) {
            // red channel:
            if(i<6) red[i]=i*51;
            else if(i<12) red[i]=(11-i)*51;
            else red[i]=0;
            // grn channel:
            if(i<8) grn[i]=0;
            else if(i<14) grn[i]=(i-8)*51;
            else if(i<20) grn[i]=(19-i)*51;
            else grn[i]=0;
            // blu channel:
            if(i<4) blu[i]=(3-i)*51;
            else if(i<16) blu[i]=0;
            else if(i<22) blu[i]=(i-16)*51;
            else blu[i]=(27-i)*51;
    void Rotate() {
        byte r,g,b,i;
        // rotate colors in array. This is only for demo.
        for(i=1;i<NUM_LEDS;i++) {
    void main(){
  • How can I find out how big the emitters are? I don’t think it’s specified on the data sheet. Do red, green, and blue all come from the same place? Thanks!

  • I was able to power and drive a 5mm Diffused Addressable RGB LED https://www.sparkfun.com/products/12986 using a SparkFun 3.3v Arduino Pro Micro. However, I found that pins 5, 7, and the analog pins DO NOT WORK to drive this (at least with the Adafruit library). See more at http://forums.adafruit.com/viewtopic.php?f=47&t=61188

  • I wish the communications protocol on these was…….not so weird LoL but it’s interesting :)

  • Hi guys! Just a question for those who have played with these parts: if I want to build up a stripe with no animating effects or color changes, but a simple static color configuration, it’s a matter of simply sending the RGB information for all the leds in the chain once and then keeping the data bus at high level (so they won’t interpret a long low level as a RESET command)? Or they keep lit with the last RGB color received even with the reception of a RESET? (it would make sense the RESET only affected the queuing and re-sending of the RGB values through the I/O data line -not the leds' output- but this is an assumption I’d like to confirm beforehand). Could someone answer this? Thanks a lot!

  • For what it is worth, most of the other datasheets I’ve found for this product give dramatically lower estimates of peak light output. None of them have any versioning or dates. The one I found on WorldSemi’s site agrees with sparkfun’s though.

  • Can anyone tell me the height of these? It doesn’t seem to be specified on the data sheet. Thanks.

  • I’ve been thinking about combining these into a dense matrix but that decoupling cap' gets in the way.

    One solution would be to place the decoupling cap' right in the center of the solderpads, either on the bottom of the PCB or with some strange riser/spacer (a custom cut piece of PCB?) between the LED and the PCB solder pads.

    Using (pieces of) throughhole pins or SMD zero-Ohm “resistors” as “solder pad raiser” sounds like a possible solution as well, just to add some space beneath the LED but surfacetension alignment of the LED and “raisers” may not be precise enough in those cases.

    Would the production costs skyrocket by the addition of components on both sides of a PCB or would it still be commercially viable? What does the SparkFun product development team have to say about that idea? :)

    • Not part of the SFE product development team, but I can tell you that double-sided population is many times cheaper than a riser board in general production :) SFE does carry a few double-sided population boards - e.g. the breakout board for the WS2812’s predecessor, the WS2801 - though they try to avoid it. Which is good not just for production reasons, but because a flush back on a board means it’s easier for end-users to handle, mount, etc. as well.

  • will these run without the capacitor?

    • Probably - but how well will they run? It’s basically a decoupling capacitor with the same function they have on any other IC, and there’s good reasons for placing those even if the ICs would generally be okay without them.

  • Hi - in the data sheet there is a 150 k resistor along with the 104 cap..but on the breakout board it seems like its just the cap. Can I safety disregard the resistor then?

    • You can forego the resistor - I don’t think I’ve ever seen one used as in the datasheet and the popular WS2812 strips certainly don’t use them.

  • Does anyone know the maximum number of ws2812s that can be driven before you start having issues? I was thinking about using these as Christmas lights. -Never mind… I popped in from another page and didn’t see the comments for this page.

  • Searching for the WS2812 I stumbled upon a new product from Worldsemi: the WS2812B. It looks like the WS2812 but it has 4 pins instead of 6. The low-pass filter seems to be built-in now so it does not have seperate power pins for the LEDs and the logic. Also, it allows a much simpler PCB design because of the new pin layout. Maybe there is demand for this component… I certainly am curious.

    • Thanks for letting us know about that! I threw a bug into the system for considerations on future revisions.

  • Proto-PIC (that’s us) stock them http://proto-pic.co.uk/ws2812-5050-rgb-led-with-integrated-driver-chip-10-pack/

  • Great!!! I’ll be buying 500 plus of these in the not to distant future! :D

  • does anyone know of a uk supplier

  • These look great, I can’t wait to get my hands on some for a lighting project but I have some questions. 1 What tempture should I solder it at in a toster oven ? 2 Is there a limit to how many I can link in one chain ? 3 In longer chains, the current draw will be greater, how can I supply this demand ? Thanks in advance.

Customer Reviews

No reviews yet.

Related Tutorials

LED Cloud-Connected Cloud

February 22, 2016

Make an RGB colored cloud light! You can also control it from your phone, or hook up to the weather!