I am making blinking light art using ESP8266/WemosD1Mini + WLED + ws2812/sk6812.
As this protocol is very simple, I realized I want to see it on my fathers analog oscilloscope. It is the only protocol I actually use in my daily life which I can fully understand down to the physical layer.
The protocol of WS2812b is quite simple:
* One is indicated by: .8us high, .45us low
* Zero is indicated by: .4us high, .85us low
* a color consists of 8 bits, values 0-255
* Most significant bit (128) comes first
* Send green,red,blue for first ws2812 unit, followed by GRB for all all others* wait 300 us* repeat
So we configured the WLED software to a white fade higher + lower and 5 LEDs of which 4 were actually present, the 5th being the oscilloscope. And … tada … what you see on the screen is a binary signal telling a LED to show more and less light.
Note that the bits on the right of the oscillospoce flip faster on and off – this is because when WLED fades the brightness of the LED from brightness values like 100 to 200, it cycles through the least significant bit (1) more often than through the most significant bit (128).
Example: counting from 5 to 9:
Notice that the rightmost bit flips on every count. You see this on the oscilloscope – the bits on the right flip very often, the ones on the left not so often. On the screen of the oscilloscope, we see the left 5 of the 8 bits of green
With my fathers 30-40 year old oscilloscope, after an hour of fiddling and learning, we got the curve on the screen.
Note: do not attach the oscilloscope directly to the ESP8266 data pin. A friend (wm) reported it shortened the ESP8266.
Our biggest problem: we set the WLED to a fixed color and then configured the oscilloscope. Little did we know that WLED sends the color once and then stops – as it doesn’t change and it knows that the WS2812 will keep the last received color as long as they have power. Had we set WLED to a fade from the beginning, it would have worked in 10 minutes.
Compare this to WIFI, UMTS, of 5G (protocols I use every day): complex medium encoding in megaherz precision using every possible trick to encode as much info as possible, complex protocols such as TCP/IP on top, encrypted, and complex applications like http on top – impossible to see any sensible output on an oscilloscope.
More info on the WLED software:
More info on WS2812 protocol:
A typical ESP8266 Wemos D1 Mini (hint: shop is owned a friend of a friend, support local business):