ws2812 tester

[ pt_BR ]

ws2812 tester

I tend to use ws2812 strips whenever I need some addressable LEDs. Whether when getting them in the mail or sorting through old ones, it's very common for me to need to test them. Having to hook up an arduino with some hanging wires only for that is a pain, so I decided to design a small PCB that would make it easy to test a LED strip.

Close-up of the ws2812 tester
A fully assembled ws2812 tester

All you need to do is plug it into the LED strip (the pin header on top is designed to fit in the JST connector that usually comes with the strips you buy online), plug it into power through a regular usb-c connector and it will run some patterns so you can check if the LEDs are working as they should.

The tester running through some animations with music by Bruno Gola

Since we're building a PCB anyways, I tried to make it easy to adapt it to other applications. All the pins on the microcontroller are broken out so you can use them to interface to other components if necessary. The usb-c connection also makes it easy to power it from a regular cheap power bank. That and the fact that its very small and light makes it useful for wearables and other portable applications.

The hardware is designed around an ATTiny85, which is reasonably cheap, small, light and doesn't require much external circuitry.

Schematics for the ws2812 tester
Schematics for the ws2812 tester

The software is written in the arduino IDE using ATTinyCore and the FAB_LED library. This library is very compact and allows you to control a very large number of LEDs with a very low memory footprint, making it perfect for the ATTiny85.

To use it with the ATTiny85 you need to change the clock settings in the microcontroller to use the internal PLL to bump the clock speed to 16MHz. If you're using avrdude and a usbasp to program the microcontroller, you can do that by running avrdude -p attiny85 -c usbasp -U lfuse:w:0xE2:m -B5.

All the design files for the hardware as well as the code are free and available in the ws2812_tester github repository.