The sheer number of projects we've seen making use of Smart RGB LEDs—whether it be strips, modules, or custom PCBs—over the past 3 years is quite astonishing.  This outbreak of RGB LED usage has gone hand-in-hand with a significant drop in pricing and an increased ease of use of these electronic devices.  

Amongst LED manufacturers, WorldSemi has seemingly become the de facto standard amongst DIYers, hobbyists, and wearable electronics designers.  The company's WS28XX family of Smart RGB LEDs includes an easy-to-use control protocol, a convenient pinout and footprint, and an incredibly bright luminescence, all within a tiny 5mm x 5mm package.   But, what really has made a difference in the products' DIY market success is the $0.30 to $0.40 unit pricing in small quantities.

In the latest version of these LEDs, the WS2812B, WorldSemi yet again has made significant improvements upon its predecessor, the WS2812.  Since there is very little information out there about this relatively new version, we decided to make a short Instructable to highlight the design upgrades, and advertise some of the already existing features of this nifty device!

Difficulty level: Beginner+ (some familiarity with smart RGB LEDs)
Time to completion: 5-10 Minutes

Step 1: List of Materials

To highlight the features of both the WS2812B and the WS2812 RGB LEDs, we can make use of the following parts:
1 x WS2812 RGB LED (pre-soldered onto a tiny breakout board)
1 x Solderless Breadboard
1 x Breakaway Pin Connector, 0.1" Pitch, 8-Pin Male
1 x Arduino Uno R3
1 x WS2812B Lumina Shield for Arduino
Solid Core Wire (assorted colors; 28 AWG) and Wire Strippers
Power Supply (Optional)

Both the WS2812 and WS2812B carry an embedded constant-current LED driver, as well as 3 individually controlled LEDs; one red, one green, and one blue.  The LED driver comprises:
- An internal oscillator
- A signal reshaping and amplification circuit
- A data latch
- A 3-channel, programmable constant current output drive
- 2 digital ports (serial output/input)

Note:the LED driver itself is also available in a 6-pin Integrated Circuit (IC) form, which we can use to connect directly to 'non-smart' RGB LEDs of our choice; the IC in question is non other than the WS2811.
<p>In step 1: list of materials I did see there was a ws28xx led bit loose from it's breakout board, was hoping you can tell me what the resistors on those 2 other tiny boards are for, it's purpose and what line is it connected to? I just can not seem to find a clear answer on that little bit sitting there...</p>
<p>Hi, can i know where can i get the footprint for WS2812B? Thank you.</p>
<p>I would like to know why the program can be used to control the WS2812 after this WS2812B connected WS2812B do so</p>
Thanks for clarifying! The WS2812 uses a slightly different timing for communicating. We have a very detailed tutorial over here: https://www.instructables.com/id/Bitbanging-step-by-step-Arduino-control-of-WS2811-/<br><br>The best way to see the differences is by inspecting the datasheets as well:<br>http://acrobotic.com/datasheets/WS2812.pdf<br>http://acrobotic.com/datasheets/WS2812B.pdf<br><br>The code in the Bitbanging Instructable should work for both WS2812 and W2812B.
Sorry, can you rephrase the question so I can understand it better and see if I can help?! Thanks.
<p>Many thanks for your answer, I have to question is</p><p>Separate control program to control a WS2812's WS2812B, but WS2812B does not shine, this is why. ws2812 work,</p>
<p>Thank You for this information. It will be very helpful for some projects iI am working on. One question.</p><p>You talked about the WS2811 chip. Do you have a source for this chip in the 8-pin dip package? I know WorldSemi make it but I can not find a place to buy it.</p><p>Thanks again!</p>
<p>These are 8pin SOPs, but they are already on a solderable board if you don't like working at SOP scale:</p><p><a href="http://www.aliexpress.com/item/Fast-shipping-300pcs-15mm-WS2811-Circuit-Board-PCB-Square-Making-WS2811-LED-Pixel-Module-Light-5V/1644099518.html" rel="nofollow">http://www.aliexpress.com/item/Fast-shipping-300pcs-15mm-WS2811-Circuit-Board-PCB-Square-Making-WS2811-LED-Pixel-Module-Light-5V/1644099518.html</a></p><p>Nobody on AliExpress shows up in a search for WS2811 IC DIP. Everyone selling WS2811 ICs is selling SOP format, so you <em>could</em> solder <em>those</em> onto a DIP8-SOP8 adapter board, but since you can get them already-soldered onto breakout boards, why bother?</p>
<p>I have had nothing but problems with the ws2812B LEDs that I bought in 5 meter strips. They are very sensitive. I use them as accent/motion lighting in a restaurant. When some equipment is turned on or if there is a slight surge the first LED in each string is blown and I have to solder a new one each time. What a pain. I had to remove all the florescent lighting in the building and replace them with LED because each time the balasits were turned on it would blow the first ws2812B in the string. Very sorry I installed they in the end I will lose a lot of money on this job because of these poor lights.</p>
<p>You ignored the recommendation to put a capacitor close to the first LED in the strip?</p><p>WorldSemi has clearly indicated recommendations for installation - that is one recommendation they try and emphasise. If you ignore it and blow your LED, that's not really the fault of the manufacturer.</p>
<p>These are low (DC) voltage LEDs, so the power supplied to them does need to be 'clean'. Ideally, in most indoor lighting installations people use surge protection circuitry before connecting these LEDs. The strips just include LEDs, they do not carry additional circuitry to protect them from overvoltage---you need to add this yourself. If you do not have this option, at least add a 100uF 25V capacitor between power and ground, this will help with the transient changes in voltage!</p>
<p>How would I hook up the 100uF 25V capacitor in a setup with 5 LED strips where I have to run power to each LED strip in order to prevent color fading from voltage drop? Would I just hook it up between V+ and V- at the power supply and be done with it?</p>
<p>Yep, that's one option (between V+ and V-). If you want to be extra careful, you could connect 5 capacitors as close to the strips as possible (also between V+ and V-). Capacitance adds up in parallel, so you'd end up with a 500uF value, but this is ok. Depending on how 'clean' your power supply is, you may need to also connect additional capacitor values (also between V+ and V-). The point if to prevents the initial onrush of current from damaging the LEDs.</p>
<p>How clean do you think the power is from a LED power supply like this - </p><p><a href="http://www.aliexpress.com/item/New-Waterproof-DC-5V-360W-72A-LED-Driver-Power-Supply-Adapter-Transformer-AC-110V-240V-Wholesale/1864726559.html" rel="nofollow">http://www.aliexpress.com/item/New-Waterproof-DC-5V-360W-72A-LED-Driver-Power-Supply-Adapter-Transformer-AC-110V-240V-Wholesale/1864726559.html</a></p><p>It has vague reference to &quot;anti-interference function&quot;, and &quot;<strong>meet CE &amp; ROHS, </strong>GB4943.EN60950&quot;. By the way, it says it is constant voltage, but it is not. The voltage drops from 4.55V to 3.8V when full load is placed on it. And it 's supposed to be a 5V power supply...</p>
<p>The diagram underneath step 2 showing the WS2812 vs WS2812B is incorrect. Though it correctly shows 4 pins vs 6 pins in the packaging, the internal layout of the LED pads and control chip (visible through the LED lens) shows the WS2812 layout in both cases, even on the WS2812B chip. This diagram needs to be updated to show the different visible layout of the WS2812B chip as seen through the chip's lens.</p>
<p>Good eye, we didn't have the time to create a new SVG. It's somewhere on our To-Do list :)</p>
<p>Hello, I'm using Fubarino Sd, but do not understand how to translate your code <br>Arduino to Fubarino Sd. <br>I could help with this? <br>http://fubarino.org/sd/index.html</p>
<p>Sorry, we typically don't work with PIC microcontrollers :-(</p>
<p>Hi. Could you tell me please is it possible to limit current used by WS2812B leds??? I found in a datasheet for WS2812 leds there is written - Current(mA) RED - 20, GREEN - 20, BLUE - 20. So if I set all the RGB to 255 the WS2812B will use 60mA? then how to limit it to 45mA??? </p>
Thanks for the interest in our Instructable! You can use a current limiting resistor for that purpose. Each LED has a forward voltage of ~3V (check the datasheet). If you put a 40--50Ohm resistor between the power source and the VCC pins of the modules, you'd get a ~45mA current limit. <br><br>Remember that the more modules you have powered by the same supply, the more current that will pass through the resistor. Make sure that the wattage of the resistor is high enough for the *total* amount of current you'll be using.
<p>Hi. Thank you for reply. I know adding a resistor works with simple LEDs but WS2812B has a built in IC, so I just wonder if the resistor won't interfere with the IC.????? Also, tell me please, as I've written above, if for example I set all the three (RGB) to half brightness (128, 128, 128), then will this WS2812B consume 30mA???? If so, then why the resistor????</p>
<p>No problem, glad I can help.</p><p>The resistor won't interfere with the IC, as you're limiting the current supply only and not affecting the signal. The IC consumes little current, so it's negligible relative to the 20mA sourced to each LED.</p><p>The brightness scale isn't perfectly linear with current. Remember that a brightness of (1,1,1) will turn on the LEDs slightly, which means that current needs to be greater than the forward-current threshold (this value is on the datasheet). The best way to know how much current is needed for each intensity level, is to measure it. You can use your multimeter for this task!</p>
<p>I tried to measure the current used by one LED at full brightness (255, 255, 255) and my multimeter shower only 30 mA!!!! Also could you tell me please, in the datasheet I found the following:</p><p>&quot;Also include a precision internal oscillator and a 12V voltage programmable constant current control part&quot;</p><p>So it means that current usage can be programmed by 12V somehow, does not it?????</p>
<p>Nah, this is a typo on the datasheet. It is a 5V controller. It's 'programmable' in the same way a shift register is. You set it using the specified protocol to output the levels you want on each LED.</p>
Thank you for the very informative review. I shall order some of these beauties ASAP :-)

About This Instructable



Bio: Designing fun, unique, and Open-Source electronic kits for education, DIY, hobby, art, science, and more. For the tinkerer in all of us!
More by acrobotic:Get Started with ESP8266 Using AT Commands, NodeMCU, or Arduino (ESP-12E) Raspberry Pi  Bluetooth LE Controller for WS2812B (NeoPixels) Control Bluetooth LE Devices From A Raspberry Pi 
Add instructable to: