So many programmable LED types!

Same same but different!

As time goes by, I’m discovering more and more types of programmable LEDs!

Do you know of any other kind and their specificity or compatibility? Please comment on those! A lot of info is available at NormanLED or the Tacklind list.

  • Non-programmable, analog (not supported by FAB_LED)
    Non programmable LED strips will usually have a common Vdd rail and a ground for each color it supports, aka 4 wires for an RGB strip. All LEDs will shine with the same color. Often sold with an LED controller and cheap.

    • Standard single color LED, requires a resistor, usually (Vdd – Vdiode) / Idiode, and Vdiode, often 3.4V, Idiode often 20mA (regular) or 30mA (bright), sor for 5V power, 68 Ohm to 86Ohm.
    • RGB with 4 pins, one pin per color plus common ground, which may have different voltage requirements from 2.2V to 3.6V, aka different resistors on each pin.
    • Fast or slow blink RGB LED, wired the same way as above, super convenient for quick color fun. You can’t dim them because it would reset their sequence.
  • One wire – return to zero signal
    (all have compatible signal clocking, but different color orders)
    These LEDs are programmable, usually with 1 pin transporting the data (labelled DI or BI), and are the cheapest option for programmable LED strips. The timing of the signal is critical so it may be a bit harder to drive them. The protocols are usually all compatible but come from different vendors.

    • WS2812B (see WS2812, UCS1903 etc.), PWM at 430Hz
    • WS2811 (12V power, with 5V signal)
    • WS2813(redundant data on 2 wires DI and BI, to resist LEDs failure), PWM at 2kHz
    • WS2815 (like WS2813 but 12V), send 5V signal on BI.
      • BTF2815 (cheaper 12V)
      • BS0815 LC8808 GS8208, 12 bit color 8kHz PWM, internal gamma table
    • SK6813(redundant like WS2813)
    • SK6812 (can support up to 4 colors, commonly GRBW), PWM at 1.1kHz
      • SK6805 (3 colors)
      • UCS2904 (4 colors, separate control chip like WS2811 5V to 24V), PWM at 1.8kHz
    • APA104
    • APA106 (COM-12877)
  • SPI
    (data+clock pins, easy to control, faster, but more wires)
    These LEDs are programmable, usually with 2 pins (clock CI and data DI). The timing is done manually by sending the clock and data

    • APA102 (first byte has 3 top bits set, plus low 5 bits is global brightness using a different PWM rate superimposed), PWM at 19.2kHz/580Hz global
    • SK9822 PWM at 4.7kHz
    • WS2801 (no first byte)
    • P9813 (first byte has 2-bit checksum of the other color bytes)

I plan to support all programmable LEDs including WS2801 and P9813 in FAB_LED. It may requires me revisiting the SPI support I have, as part of my overhaul of the library.

The SK6812 LED protocol is also used on non-RGB strips. Sometimes they support multiple white LED temperatures (warm to cold), or even one single color. Those can be found on eBay or AliExpress, but are more rare. I suspect they would be programmed all the same way.

Some Arduino libraries to control programmable LEDs include FastLED, Adafruit NeoPixel or DotStar libraries, and FAB_LED. These libraries are available on GitHub.

LED sizes

The most common size is the 5050 (5mm) but there’s many sizes. Programmable LEDs are becoming available in 3535 and 2020, with some vendors selling denser and narrower LED strips of those sizes at a premium (each pixel is less powerful). With 5050 LEDs, LED strips are usually sold as 30, 60, 96 or 144 LEDs/meter, with the bulk of the offer at 60/m.

  • 5050 (5mm)
  • 3535 (3.48mm)
  • 4020 (4x2mm)
  • 2020 (2mm)
  • 1515 (1.5mm)

LED strips

Density

Common densities of standard 5050 LED strips:

  • 30 LED/m
  • 60LED/m (most commonly used)
  • 96LED/m
  • 144LED/m (very dense, LEDs next to each other

Waterproofing

IP rating indicates how much water and humidity the LED strip can handle in normal operations.

  • IP30: bare LED strip
  • IP65: LED strip molded with silicon
  • IP67: LED strip within a silicone tube

Diffusers

It’s becoming more common to have LED strips presented to look like neon lights, or have diffusers to smooth the light:

Neon Light LED Strip ($23/5m)

LED Strip Light Silica Gel Soft Lamp Neon Rope Tube (T0513 $10/5m)

Prices

  • WS2812B: IP30 60LED/m 5m $14
  • WS2813: IP30 60LED/m 5m $22

LED Specifications

Most programmable LEDs are interchangeable and belong to two categories.

For One-wire LED protocols, the main subtle differences will be the PWM frequency. A higher frequency will be better for persistence of vision applications and for photography. The timings of the data also vary making them more or less prone to glitches.

WS2812B WS2813A~D
CS2803
APA104 SK6812
SK6805
SK6813
Vdd +3.5V ~ +5.3V +3.5V ~ +5.3V +3.5V ~ +5.3V +3.5~+5.5 +3.5~+5.5
IiPWM 1µA

430Hz

1µA

2kHz

1µA

.

.

1.1kHz

.

.

Fosc 800kHz 1.25µs 800Kbps 800kHz 1.25µs 800kHz 1.25µs 800kHz 1.25µs 800kHz 1.25µs
red 620-625nm 390-420mcd 620-622nm 360mcd 620-625nm 390-420mcd 620-630nm 1000-1500mcd 1.0-2.0lm 620-630
green 522-525nm 660-720mcd 522-525nm 1150mcd 522-525nm 660-720mcd 515-530nm 2200-3300mcd 3.0-4.0lm 515-530
blue 465-467nm 180-200mcd 467-470nm 220mcd 465-467nm 180-200mcd 460-475nm 400-700mcd 0.5-1.0lm 460-475
T0H 400ns ±150ns 300ns~450ns 350ns ±150ns 300ns ±150ns 200-400ns
T1H 800ns ±150ns 750ns~1000ns 1360ns ±150ns 900ns ±150ns 620-1000ns
T0L 850ns ±150ns 750ns~1000ns 1360ns ±150ns 900ns ±150ns >800ns
T1L 450ns ±150ns 300ns~450ns 350ns ±150ns 300ns ±150ns >200ns
TH+TL 1.25µs±600ns 1.25µs±300ns 1.25µs ±600ns 1.25µs±600ns 1.20
reset > 50µs > 300µs > 24µs > 80µs > 80µs
Quiescent I 0.6mA 1mA 1mA
Constant I 18mA 12mA