Sunday, November 1, 2015

A Compact NeoPixel Driver (for under $5)

I recently discovered NeoPixels (I think I'm a bit late to the game on this, haha) while assisting Caitlin Driver with a project.

These are awesome little RGB LEDs with built-in drivers that are daisy-chainable, kind of like shift registers. This makes it simpler than ever to create large, complex LED displays with minimal wiring.  In addition - all it takes to drive any number of pixels is one PWM-capable pin on a micro.

So over the past month I've been using them for lots of smaller projects:
A video posted by Bryan J Cera (@cera.tops) on

A video posted by Bryan J Cera (@cera.tops) on
A video posted by Bryan J Cera (@cera.tops) on

While it is really easy to get started using NeoPixels with an Arduino (Adafruit provides libraries fro all their neoPixel products) I've been using the ATTINY85 chip to run these.  So I decided to design a custom PCB that integrates the ATTINY85 and a simple 5V regulator circuit to run neoPixels from a 9v battery - or various other power sources.

I drew the PCB layout in Fritzing - an open source PCB editor.  You can download my design here!

Then output as a PDF, which I opened in Adobe Illustrator to tweak the design and print.

To etch the board, I used the same technique I outlined in a past blog post, here.

The final product: etched and stuffed.  I purposely designed it to be 100% SMT (surface mount technology) - this means I don't have to drill a bunch of tiny holes for THT (Though-hole technology) components.

Included in this simple "NeoPixel Driver" design: 

1.) 5v regulator with filtering capacitors
2.) IC Socket for an ATTINY85 chip
3.) pull-up resistor for an analog sensor (standard voltage divider setup)
4.) 2-pin input terminal for power (I'm using a 9v battery)
5.) 2-pin terminal for power switch
6.) 4-pin terminal for 3 or 4-pin NeoPixel product
7.) 2-pin terminal for analog sensor (i.e. a force-resist sensor)

The board is roughly the size of a 9v battery - here I have it rubber-banded to one!

Here I am using it to drive a neo pixel matrix...

I also integrated this into my Moroccan Souvenir project:

A video posted by Bryan J Cera (@cera.tops) on

1 comment: