Does the WS2812 have integrated Gamma-Correction?

A while ago, I used transient current analysis to understand the behavior of the WS2812 a bit better (and to play around with my new oscilloscope). One intersting finding was that the translation of the 8 bit input value for the PWM register is mapped in a nonlinear way to the output duty cycle. This behavior is not documented in the data sheet or anywhere else. Reason enough to revisit this topic.

Measured PWM duty cycle vs. set value for WS2812S
Continue reading “Does the WS2812 have integrated Gamma-Correction?”

Controlling RGB LEDs With Only the Powerlines: Anatomy of a Christmas Light String

The RGB curtain predictably turns into a mess of wires when not used according to instructions.

As should be obvious from this blog, I am somewhat drawn to clever and minimalistic implementations of consumer electronics. Sometimes quite a bit of ingeniosity is going into making something “cheap”. The festive season is a boon to that, as we are bestowed with the latest innovation in animated RGB Christmas lights. I was obviously intrigued, when I learned from a comment on GitHub about a new type of RGB light chain that was controlled using only the power lines. I managed to score a similar product to analyze it.

Continue reading “Controlling RGB LEDs With Only the Powerlines: Anatomy of a Christmas Light String”

Ultra Low Power LED Flasher using the Padauk PFS154

Flashing a LED is certainly among the first set of problems any burgeoning electronics specialist is tackling, may it be by using an ancient NE555 or, more recently, a microcontroller to control the LED. As it turns out, we can turn any trivial problem into a harder one by changing its constraints.

Continue reading “Ultra Low Power LED Flasher using the Padauk PFS154”

SK9822 – a clone of the APA102?

Two years ago I took a deeper look into the APA102. Although it was more expensive than the common WS2812, and harder to come by, it had some intriguing properties. The main benefits are a timing-insensitive  SPI interface, allowing easy interfacing to standard periphery, and a much higher PWM frequency of >19kHz, making the APA102 almost flicker free.

So much about that. Considering how things with LEDs from China go, it should not take too long for clones to appear? Indeed! Recently, several comments showed up on my blog, reporting about issues with APA102 LEDs they bought. It quickly turned out that these were SK9822, APA102 clones from the same company that already brought the SK6812 to us, a WS2812 clone.

One of these people was Mike. He developed the Weblight, a WebUSB controlled RGB LED. The prototype (shown below, red pcb) worked well, but when he commissioned a small production run (black pcb), the LED started to show odd update behavior. Mike was nice enough to share a couple of boards with me for further investigation.

sidebysidenotext Continue reading “SK9822 – a clone of the APA102?”

DICE10 – electronic dice controlled by two GPIO.

Yay,  another mini-project with the ATtiny10!

dice10

A while ago I devised a scheme to drive an electronic dice with only two IO lines. I finally found the time and motivation to build up a small design using this as an entry for the hackaday 1k compo. Please find project details on the hackaday.io page or the github repository.

dice10_withtext

Gluon – developing a bootloader for the ATtiny104

The ATtiny102 and ATtiny104 are Atmels newest addition to the AVR ATtiny family. They are a bit different to most of the other devices in that family, since they are based on the AVRTINY CPU core, which was so far only used in the ATtiny4/5/9/10/20/40. I have previously done several projects on the ATtiny10, so I was naturally excited to see another addition to this family. Both new devices are clearly targeted at the lower end, with only 1kb of flash.

Two interesting new features compared to the ATtiny10 are self-programming capability and an integrated UART. Naturally, this asks for a serial bootloader. Since no bootloader is available for this device I set out to work to work on one.

The current state can be found at the Github repository linked below.

Gloun Github repository

Right now it is able to upload and execute user programs on ATtiny104 and ATtiny85, but it is far from being optimized. I stopped working in Gluon for various reasons, but may be picking it up again at some point.

The SK6812 – another intelligent RGB LED

During the last months, a new WS2812 alternative appeared on the market: The SK6812. I finally managed to get my hands on some of them to take a closer look. In most aspects these devices are basically clones of the WS2812. What is interesting however, is that the manufacturer came up with a couple of new variations of the stock 5050 RGB LED.

As with many components from mainland china, it seems very difficult to identify the actual manufacturer of these devices, as vendors tend to rebrand data sheets. It appears that at least one of the original manufacturers is Opsco Optoelectronics. However, it is likely that there is more than one manufacturer is using the SK6812 brand, which does possibly only refer to the controller chip itself. The “SK” prefix, on the other hand, is normally used by Shenzhen Sikewei Electronics, which seems to specialize on speech ICs and similar low-cost applications. Are they connected? No idea…

sk6812 Continue reading “The SK6812 – another intelligent RGB LED”

Timing of WS2812 clones – PD9823/PL9823

The WS2812 RGB LEDs with integrated controller are fairly successful devices that come in a variety of packages. Recently, similar devices by other manufacturers started to appear.

I managed to get my hands on a few samples of LEDs with PD9823 controller, courtesy of Soldering Sunday, and was able to subject them to more scrutiny. The manufacturer of the IC seems to be “BaiCheng”. You can find it in several LEDs with different package types. There is a single page “datasheet”, linked here, but little else is known to me.

The given timing values are, again, completely different from any other device. So are these really compatible to the WS2812? Only one way to find out: I used the same setup to extract the timing as described earlier for the WS2812. You can find the results below.

Timing_with_thumbs

Continue reading “Timing of WS2812 clones – PD9823/PL9823”

The Nanite 85

Possibly the smallestest ATtiny85 based ‘duino derivative.

Recently, Olimex anncounced the Olimexino 85s, claimed to be the “World’s smallest Arduino ever“. Now, that looks like a challenge. I guess it is about time to show off what has been on my desk since some time last year: The Nanite, pictured below.

nanite-pic1

Continue reading “The Nanite 85”