summaryrefslogtreecommitdiff
path: root/led/ws2801/README
blob: c8385d8708866feb183e156ecfc922b2b7bfbf9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
-------------------------------------------------------------------------------
WS2801 LED strip
-------------------------------------------------------------------------------

This is a capture of data output an LED universes of 50 RGB LEDS.

Every universe at full capacity of  has a frame size of 768 bytes and can clock
out at roughly 100 frames per second.

Details:
 - Koen Kooi's evil vendor tree: https://github.com/koenkooi/kernel
 - PRU WS2801 firmware: https://github.com/mranostay/ws28xx-lighting-pru
 - WS2801 datasheet: http://www.adafruit.com/datasheets/WS2801.pdf


WS2812B protocol overview
-------------------------

Each LED receives and the stores the first 24-bits of RGB ordered data then
passes any more out the Data Output pin to the next LED in the chain.

There is no CS line but latching is done when CLK is held low for >500 uS

This functions as a "reverse" shift register and allows the strip length not to
be defined in the protocol.


Logic analyzer setup
--------------------

The logic analzyer used was a Saleae Logic16 (at 5mhz)

  Probe       WS2812B LED strip
  -------------------------
  1 (black)   Universe #1
  2 (brown)   Clock

Data
----

The data contains various RGB values and frames.

The sigrok command line used was:

  sigrok-cli --driver saleae-logic16 --samples 10M --config samplerate=5mhz \
             -p 0=UNI1,1=CLK -o ws2801_2ch_5mhz.sr