NeoPixels: Five Years In @adafruit #neopixels

It was several years ago at Maker Faire that I first got my hands on some addressable LEDs — an RGB LED, driver IC and small PCB encased in a fingertip-sized plastic capsule. Working with these, I distinctly recall pondering if we’d ever see all of this integrated into a single component. “Maybe in five years,” I figured. “And maybe if they recover the technology from a crashed UFO.”

Well don’t count on me for picking racehorses or stocks either, because my guess was off by an order of magnitude, and just a few months later was staring down my first “World Semi WS2812 Intelligent Control LED Integrated Light Source” (or what would soon be known as a NeoPixel, hold that thought).

These addressable LEDs were small, inexpensive, and featured a single-wire protocol for microcontroller interfacing. This simplified things like PCB layouts, making rings and other shapes possible. In flexible strip form, their “one pixel, one cut” convenience (other LED strip types ranged from two to six pixels between cut points) scratched the creative itch, freeing ideas from odd physical constraints. Though not perfect, they filled a vital creative niche and have persisted ever since, evolving new capabilities and form-factors (RGB + white, mini 3.5mm pixels, hardier “WS2812-compatible” devices, strips in increasing pixel densities and who knows what’s next).

Adafruit was already making a WS2811-IC-and-RGB-LED product (then called “Flora RGB Smart Pixel”). With the fully integrated WS2812 component, a slimmer and more affordable Flora pixel would be possible. But the new device’s faster single-wire protocol would require new Arduino code, possibly with some inline assembly language. Ladyada, being busy at the time, asked if I could take a look…

Starting from her existing library code, I got a prototype working in a couple of days, though I had some lingering doubts…AVR assembly is not my native tongue. So, to avoid messing up the known-working “V1 pixel” code, I renamed everything in the new library so the two could exist side-by-side for testing. If the prior code was for the “old” pixels, then this new code must be for “new” pixels, and with little thought I just called it “NeoPixel” and threw it up on Github for testing…five years ago today. 12/12/12.

The code tested fine. Not only that, but getting down to work the next day, I was surprised to find all these LED products in the shop now labeled “NeoPixels.”

Unbeknownst to me, Adafruit had been searching for a better name than “WS2812 Intelligent Control LED Integrated Light Source,” something that, in one simple word, would tell people, “addressable LED backed by open-source code, lots of examples and projects, a positive community and Adafruit technical support.”

And that’s the origin story of the word “NeoPixel.” No focus groups, no branding specialists. Just kicking back and programming in sweatpants. Sorry to destroy any illusion you might have had. Sweatpants!

Five years in, the breadth and scope of NeoPixel projects has exceeded even my wildest expectations. Practical signage, creative expression, movie sets, Burning Man installations with tens of thousands of LEDs, and some of my favorite stuff is in wearables and cosplay! And in another five years? Well, my record for prognostication is clearly pretty bad, but it’s a safe bet to say we’ll be surprised all over again (nearly said “delighted,” but no, we’ll be extremely lighted).

Thought exercise: One of the most popular NeoPixel form-factors is the 60 LED/meter flex strip. NeoPixel data is clocked at 800 KHz…that’s 1.25 microseconds/bit, or 30 microseconds per 24-bit pixel. One meter of this strip (60 NeoPixels) therefore takes 1,800 microseconds to refresh (not counting the 50 to 300 microsecond latch time at the end of the data, which is the same regardless of strip length), so we could estimate that NeoPixel data (at this particular strip density) travels at about 555.555 meters/second. There’s about 31,557,600 seconds in a year on average (allowing for leap years but ignoring the occasional odd leap second)…so, in those intervening five years (157,788,000 seconds), we could have refreshed one enormously long 87,659,912,340 meter strip — that’s beyond the orbit of Mars, or more than halfway to the Sun, depending on which direction you unrolled the strip. With all 5.25 trillion NeoPixels set white at 100% brightness, you’ll need a bit over 300 billion Amps at 5 Volts (a mere 15% of the world’s electric output), so please choose wire of an appropriate gauge and make power connections periodically to prevent dim pixels along the length of the strip, thanks.

Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here:

Join Adafruit on Mastodon

Adafruit is on Mastodon, join in!

Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.

Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7pm ET! To join, head over to YouTube and check out the show’s live chat – we’ll post the link there.

Join us every Wednesday night at 8pm ET for Ask an Engineer!

Join over 36,000+ makers on Adafruit’s Discord channels and be part of the community!

CircuitPython – The easiest way to program microcontrollers –

Maker Business — “Packaging” chips in the US

Wearables — Enclosures help fight body humidity in costumes

Electronics — Transformers: More than meets the eye!

Python for Microcontrollers — Python on Microcontrollers Newsletter: Silicon Labs introduces CircuitPython support, and more! #CircuitPython #Python #micropython @ThePSF @Raspberry_Pi

Adafruit IoT Monthly — Guardian Robot, Weather-wise Umbrella Stand, and more!

Microsoft MakeCode — MakeCode Thank You!

EYE on NPI — Maxim’s Himalaya uSLIC Step-Down Power Module #EyeOnNPI @maximintegrated @digikey

New Products – Adafruit Industries – Makers, hackers, artists, designers and engineers! — #NewProds 7/19/23 Feat. Adafruit Matrix Portal S3 CircuitPython Powered Internet Display!

Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at !

1 Comment

  1. Neopixels were my introduction to Adafruit and my re-entry to hardwre/firmware hacking, which has become both obsession and addiction. It’s been a great almost 5 years since then.

Sorry, the comment form is closed at this time.