RGB LEDs are awesome – especially the new, fancy ones with the WS2812 RGB LED driver. These LEDs can be individually controlled to display red, green, and blue, but interfacing them with a microcontroller or computer.
To test controlling WS2812 RGB LEDs I bought a cheap addressable LED strip. An addressable RGB LED strip is a long flexible strand of LEDs each of which can be individually set to a certain color (hence: addressable). By varying the level of red, green and blue (RGB) per LED many color combinations can be made. Addressable LED promise is to be an easy way to add complex lighting effects to any project. WS2812 neopixels are addressable RGB LEDs. The integrated controller chip allows you to change the color of the LED and address each individual LED. ThoseWS2812 LEDs are powered with 5V – 7V power source (60 mA power consumption) and are controlled through a serial bus (one control signal).
I planned to use either Arduino or ESP8266 to control those LEDs. After some looking on vailable examples and technical data on the LEDs, I planned to use Arduino (Arduno Uno), because it’s 5V power and 5V logic level is directly suitable. And there are many Arduino tutorials for WS2812.
To get easy start, I planned to follow instructions fro Arduino Addressable LEDs & Splendid Projects page. That page had an example source code that looked to be useful and simple wiring instructions.
In the first test I fould out that in addition to the source code I also needed NeoPixel Arduno library. So I needed to get the library from https://github.com/adafruit/Adafruit_NeoPixel and install it according to instructions. After downloading, I had to rename folder to ‘Adafruit_NeoPixel’ and move it to Arduino Libraries folder. After restarting Arduino IDE , I opened File->Sketchbook->Library->Adafruit_NeoPixel->strandtest sketch example file. This worked well. I also tried the original code fromArduino Addressable LEDs & Splendid Projects page which I modified to use 8 LEDs instead of one. Both examples made a “random” color light show on my LED strip. Enough for first testing.
292 Comments
Led Board says:
Hi, I think your website might be having browser compatibility issues.
When I look at your blog in Opera, it looks fine but when opening in Internet Explorer,
it has some overlapping. I just wanted to give you a quick
heads up! Other then that, great blog!
Tomi Engdahl says:
I tested the site and the article you mentioned with IE and I did not see any issues.
Can you be more specific what IE version you used and what is the exact problem.
I need more details before I can look at that issue.
Tomi Engdahl says:
RGB LEDs: How to Master Gamma and Hue for Perfect Brightness
http://hackaday.com/2016/08/23/rgb-leds-how-to-master-gamma-and-hue-for-perfect-brightness/
Tomi Engdahl says:
This looks interesting:
FINISHED PROJECT: ATTiny13A DMX Receiver, to WS2813 LED controller in 962 bytes
http://forum.arduino.cc/index.php?topic=278252.0
https://www.youtube.com/watch?v=Krsjzqjq9h0
Tomi Engdahl says:
Hackaday Prize Entry: Neopixel Pocket Watch
http://hackaday.com/2016/09/15/hackaday-prize-entry-neopixel-pocket-watch/
A timepiece is rather a rite of passage in the world of hardware hacking, and we never cease to be enthralled by the creativity of our community in coming up with new ones.
Today’s example comes from [Joshua Snyder], who has made a pocket watch. Not just any pocket watch, he’s taken the shell of a clockwork watch and inserted a ring of Neopixels, which he drives from an ESP8266 module. Power comes from a small LiPo battery, and he’s cleverly engineered a small push-button switch so that it can be actuated by the knob from the original watch.
Neopixel pocket watch
https://hackaday.io/project/13353-neopixel-pocket-watch
Pocket watch with neopixel display and esp8266
Tomi Engdahl says:
Driving 16 WS2812B Strips with GPIOs and DMA
http://hackaday.com/2016/10/06/driving-16-ws2812b-strips-with-gpios-and-dma/
The WS2812 uses a PWM-like encoding to transfer data. If the signal is high for 1/3 of the time, it’s a zero, and if it’s high for 2/3 of the time, it’s a one.
The first DMA signal sends the start of a bit, setting all outputs high. The second DMA channel sends out a low signal for all of the zeros, and the third DMA channel sends out a low signal for the ones. Each of these three DMAs are clocked at just the right times to make the pulse timing work out.
The advantage of this GPIO/DMA setup over other methods is that it can drive a whole bank of pins — up to 16 strips simultaneously for the STM32F10x chips. It also loops the graphic buffer around so that you can drive repeating patterns without using much memory.
Tomi Engdahl says:
Just In Time For Christmas! A DIY Desktop LED Tree
http://hackaday.com/2016/10/30/just-in-time-for-christmas-a-diy-desktop-led-tree/
[designer2k2] built a desktop “hollow” Christmas tree using some WS2812 RGB LEDs controlled by a microcontroller and powered by USB.
DIY xmas tree WS2812 Digispark
https://www.youtube.com/watch?v=Fm5TMvk3bUo
Tomi Engdahl says:
Web Matrix Control Proves Power of ESP8266
http://hackaday.com/2016/11/01/web-matrix-control-proves-power-of-esp8266/
LED matrix projects are all over the place, but this one is interesting for its simplicity: it’s an LED matrix that is driven straight from an ESP8266 board. [Ray] put it together as a quick project for his students to teach the basics of LED programming.
It’s built using a WS2812 LED matrix board he designed himself and his own ESPToy ESP8266 dev board. But the gist of the hardware is simply an ESP8266 and some WS2812’s. Where this gets interesting is with the user interaction side of things. The ESP makes WiFi and web serving easy, and [Ray] has build a simple HTTP GET API into the firmware. This is a great combination for the web dashboard and JavaScript-based animation programs
WiFi-enabled Color LED Matrix using ESP8266 and WS2812 LEDs
http://rayshobby.net/wifi-color-led-matrix/
Tomi Engdahl says:
Neopixels Light the Way in Pressure-Sensitive Floor
http://hackaday.com/2016/11/07/neopixels-light-the-way-in-pressure-sensitive-floor/
It’s got a little “Saturday Night Fever” vibe to it, but this pressure-sensitive LED floor was made for gaming, not for dancing.
Either way, [creed_bratton_]’s build looks pretty good. The floor is a 5×6 grid of thick HDPE cutting boards raised up on a 2×4 lumber frame. Each cell has a Neopixel ring and a single force-sensitive resistor to detect pressure on the pad.
Arduino that’s running the show
I think you guys will appreciate my latest project! Homemade LED floor made using neopixel rings, pressure sensitive resistors, and an Arduino.
https://www.reddit.com/r/arduino/comments/59hv55/i_think_you_guys_will_appreciate_my_latest/
Tomi Engdahl says:
Vishay – LED provides independent control of red, green and blue chips for wide colour range
http://www.electropages.com/2016/11/vishay-intertechnology-led-independent-control-red-green-blue-chips-wide-colour-range/?utm_campaign=2016-11-16-Electropages&utm_source=newsletter&utm_medium=email&utm_term=article&utm_content=Vishay+-+LED+provides+independent+control+of+red%2C+green+and+blue+chips+for+…
Vishay Intertechnology has introduced a new high-brightness, tricolour LED optimised for interior automotive lighting, RGB displays, and backlighting. Featuring separate red, green, and blue LED chips inside the compact 3.5mm x 2.8mm x 1.45mm PLCC-6 surface-mount package, the VLMRGB6112 enables individual control of each chip, making it possible to realise every colour within the colour room defined by the gamut triangle area inside the CIE 1931 colour space through colour mixing.
With its wide colour range, the LED is ideal for custom ‘welcome illumination’ in next-generation automobiles; large-format, full-colour message and video display boards; backlighting in consumer devices and appliances such as PDAs, televisions, ovens, and microwaves; and a wide range of accent and decorative lighting. For these applications, the device utilises high-brightness AllnGaP and InGaN technologies to deliver luminous intensity to 1800mcd at 20mA and features a ±60 degree angle of half intensity.
Tomi Engdahl says:
Individually addressable RGB LEDs exist, and we’re waiting for Clark Griswold to electrify his house in red, green, and blue. Until then, [Michel built a holiday ornament loaded up with 16 WS2812b LEDs. The star features caps and diodes to make everything work as it should and requires only three wires per star.
NeoPixel (WS2812B) Star
A Chrismas ornament or anything else you like!
https://hackaday.io/project/18489-neopixel-ws2812b-star
Tomi Engdahl says:
WS2812 Christmas tree
7 WS2812 LED rings with in total 192 LEDs arranged on a laser cutted acrylic Christmas tree
https://hackaday.io/project/18821-ws2812-christmas-tree
NeoPixel (WS2812B) Star
A Chrismas ornament or anything else you like!
https://hackaday.io/project/18489-neopixel-ws2812b-star
Tomi Engdahl says:
Christmas Lights Done the Hard Way
http://hackaday.com/2016/12/09/christmas-lights-done-the-hard-way/
For starters, he got panels (as in PCB panels) of WS2812 boards from eBay. The advantage is it lets you choose your own pitch and strand length. The flip side is, you need to de-panel each board, mount it in a jig, and then solder three lengths of hook up wire to each LED.
For control, he choose the PIC16F1509 microcontroller. This family has a feature that PIC calls the “Configurable Logic Cell” and this Application Note describes how to use CLC to interface the PIC to a WS2811.
A Star is Born
https://roddersblog.wordpress.com/2016/10/29/a-star-is-born/
An LED Christmas star that is.
Tomi Engdahl says:
More Blinky = More Better – The WS2812FX Library
http://hackaday.com/2016/12/12/more-blinky-more-better-the-ws2812fx-library/
The WS2812 is an amazing piece of technology. 30 years ago, high brightness LEDs didn’t even exist yet. Now, you can score RGB LEDs that even take all the hard work out of controlling and addressing them! But as ever, we can do better.
Riffing on the ever popular Adafruit NeoPixel library, [Harm] created the WS2812FX library. The library has a whole laundry list of effects to run on your blinkenlights – from the exciting Hyper Sparkle to the calming Breathe inspired by Apple devices. The fantastic thing about this library is that it can greatly shorten development time of your garden-variety blinkables – hook up your WS2812s, pick your effect, and you’re done.
[Harm]’s gone and done the hard yards, porting this to a bevy of platforms – testing it on the Arduino Nano, Uno, Micro and ESP8266. As a proof of concept, they’ve also put together a great demonstration of the software – building some cute and stylish Christmas decorations from wood, aluminium, and hacked up Christmas light housings. Combining it with an ESP8266 & an app, the effects can be controlled from a smartphone over WiFi.
ESP8266/WS2812 LED Star
http://www.kitesurfer1404.de/tech/led-star/en
WS2812 FX Library for Arduino and ESP8266
https://github.com/kitesurfer1404/WS2812FX#ws2812fx—more-blinken-for-your-leds
Tomi Engdahl says:
Another Desktop LED Xmas Tree!
http://hackaday.com/2016/12/18/another-desktop-led-xmas-tree/
We love it when someone takes inspiration from one of our posts and comes up with their own twist on it. [Matthew] liked one builds he saw on Hackaday so much, he built his own LED desktop Xmas tree!
[Matthew] was inspired by [designer2k2]’s DIY desktop Xmas tree that was posted in October. To get started, he found a set of concentric WS2812 rings over on Ali Express. The five rings total 93 LEDs, plus a single WS2812 for the top of the tree. He also got a laser cut tree model from Thingiverse and had it cut, combining the LED rings with the tree in the final product
LED Christmas Tree WS2812 Rings & Laser Cut Ply
https://www.youtube.com/watch?v=HHse2RrE_RY
Tomi Engdahl says:
LED Tree Jenkins Build Monitor
Desk ornament tree that changes color to reflect the build status of a Jenkins CI job.
https://hackaday.io/project/19038-led-tree-jenkins-build-monitor
Tomi Engdahl says:
Massive Pixel Display Holiday Decoration
http://hackaday.com/2016/12/20/massive-pixel-display-holiday-decoration/
Decorating for the holidays is serious business! Finding themselves surrounded by neighbours who go big, redditor [wolfdoom] decided that this was the year to make a strong showing, and decided to build an oversized pixel LED display.
http://imgur.com/a/i2U4l
I found a wiring diagram from adafruit for Neopixels. These aren’t exatly the same type of lights, but it worked the same. Rather than wiring the power through the breadboard, the power for the lights goes to a separate 30amp 5v power supply.
Tomi Engdahl says:
DIY LED Audio Spectrum Analyzer using WS2812B
https://hackaday.io/project/19080-diy-led-audio-spectrum-analyzer-using-ws2812b
LED Music Spectrum generates the beautiful lighting pattern according to the intensity of music.
Tomi Engdahl says:
These Ornaments Measure Christmas Cheer
http://hackaday.com/2016/12/24/these-ornaments-measure-christmas-cheer/
The ornament projects we post around here tend to be simple, stand-alone projects. We are, however, well into the era of the Internet of Things (like it or not) and holiday ornaments need not be single, unconnected blinking objects. For Christmas this year, [Sean Hodgins] came up with some connected DIY ornaments that respond to Christmas cheer.
[Sean Hodgins] had some beautiful PCBs done up in festive shapes and he hand-pastes and oven-solders the SMD components on both sides. Each one is battery powered and controlled by an ESP8266.
ESP8266 Christmas Ornaments
The best way to spread Christmas cheer is posting it on the internet for all to download.
https://hackaday.io/project/19051-esp8266-christmas-ornaments
Tomi Engdahl says:
Colorful, Touch-Sensitive Light Table is Ready for Gaming
http://hackaday.com/2016/12/26/colorful-touch-sensitive-light-table-is-ready-for-gaming/
It’s an ambitious build for sure — you don’t start with $500 worth of wood if you don’t intend for the finished product to dazzle. And this 240-pixel touch-sensitive light box coffee table does indeed dazzle.
The bold grain and the frosted glass top make for a handsome table, but what lurks beneath the glass is pretty special too. The 240 WS2812 modules live on custom PCBs, each thoughtfully provided with connectors for easy service.
I made a 240px LED zebrawood table with touch sensors.
https://imgur.com/gallery/mfAce
Tomi Engdahl says:
Jenkins Lights the Christmas Tree
http://hackaday.com/2016/12/27/jenkins-lights-the-christmas-tree/
Jenkins is open-source automation software that tries to automate parts of the software development process. When you submit code, for example, Jenkins will grab it, build the project with it and run any tests on it
Tomi Engdahl says:
Ceiling Tiles Give it Up for Christmas LED Ornaments
http://hackaday.com/2016/12/25/ceiling-tiles-give-it-up-for-christmas-blinkies/
Tomi Engdahl says:
Neosegment – 7 Segment Display made with Neopixels
https://hackaday.io/project/18760-neosegment-7-segment-display-made-with-neopixels
Creating a custom 7 segment display that can be driven with Arduino opens up some new possibilities.
Tomi Engdahl says:
Wifi-Controlled Christmas Ornaments!
http://hackaday.com/2017/01/01/wifi-controlled-christmas-ornaments/
Trimming one’s Christmas tree can be an enjoyable tradition year after year, but every once in a while some variation on the established order can be just as fun. Seeking some new ornaments to and desiring to flex his skills, Instrucables user [Gosse Adema] created a LED-illuminated, phone-controlled, deltrahedron Christmas tree ornaments.
Wemos DI Mini Pros are the brains of these little guys, WS2182b RGB LED strips
Illuminated Christmas Tree Ornament [WiFi Controlled]
http://www.instructables.com/id/Illuminated-Christmas-Tree-Ornament-WiFi-Controlle/
Tomi Engdahl says:
LED Strip Display Gives You Two Ways to See the Music
http://hackaday.com/2017/01/17/led-strip-display-gives-you-two-ways-to-see-the-music/
What to call this LED strip music visualizer is a puzzler. It lights up and pulsates in time with music similar to the light organs of 1970s psychedelia fame, but it’s more than that. Is it more like the Larson Scanner that graced the front of [David Hasselhoff]’s ride on Knight Rider? A little, but not quite.
Whatever you decide to call this thing, it looks pretty cool, and [Scott Lawson] provides not one but two ways to build it. The business end is a simple strip of WS2812b addressable LEDs. It looks like the first incarnation of the project had an ESP8266 driving the LEDs in response to commands sent to it from a PC running the visualization code, written in Python.
Real-time LED strip music visualization using Python and the ESP8266 or Raspberry Pi
https://github.com/scottlawsonbc/audio-reactive-led-strip
Tomi Engdahl says:
Cheating at 5V WS2812 Control to Use 3.3V Data
http://hackaday.com/2017/01/20/cheating-at-5v-ws2812-control-to-use-a-3-3v-data-line/
If you’re looking to control WS2812 (or Neopixel) LEDs using a microcontroller running at 3.3 volts, you might run into some issues. The datasheet tells us that a logic high input will be detected at a minimum voltage of 0.7 * Vcc. If you’re running the LED at 5V, this means 5 V * 0.7 = 3.5 V will be needed for the WS2812 to detect a ‘1’ on the data line. While you might get away with using 3.3 V, after all the specification in the data sheet is meant to be a worst case, it’s possible that you’ll run into reliability issues.
So usually we’d say “add a level shifter to convert 3.3V to 5V”
However [todbot] at CrashSpace came up with a nifty hack that requires fewer components yet ensures reliability.
For the Big Button project at CrashSpace, [todbot] used an ESP8266 running at 3.3 volts and WS2812 LEDs running at 5 V. To perform the level shift, a signal diode is placed in series with the power supply of the first LED. This drops the first LED to 4.3 V, which means a 4.3 V * 0.7 = 3.01 V signal can be used to control it. The logic out of this LED will be at 4.3 V, which is enough to power the rest of the LEDs running at 5 V.
The first LED might be a little less bright
Tomi Engdahl says:
WS2812B LED Clones: Work Better Than Originals!
http://hackaday.com/2017/01/25/ws2812b-led-clones-work-better-than-originals/
Commodity electronics manufacturing is a tough game. If you come out with a world-beating product, like WorldSemi did with the WS2812B addressable RGB LED “pixel”, you can be pretty sure that you’re going to be cloned in fairly short order. And we’re all used to horror stories of being sold clones instead of what was ordered. But what if the clones were actually an improvement?
[Gonazar] bought some strips of “WS2812” LEDs and prototyped a project. When stepping up to larger production, he thought he’d go directly to WorldSemi. Long story short, the cheaper LED modules that he’d previously bought weren’t from WorldSemi, but were actually SK6812 clones labelled as WS2812Bs. When he switched to the real thing, he discovered that they had some temperature and pressure sensitivities that the clones didn’t. The clones were better!
They weren’t even straight clones. It turns out that they have a much higher PWM frequency, resulting in less flicker at low brightnesses. The distributor came clean, saying that they swapped them out without note because they spoke the same protocol, but were a strict improvement.
PSA: WS2812B LEDs may not be what you think they are!
https://talk.vanhack.ca/t/psa-ws2812b-leds-may-not-be-what-you-think-they-are/5626
How to Identify (4 pin) Smart LEDs
I’ve compiled a imgur album, but I will summarize the main points:
WS2812(S) is the 6 pin grandfather of the 4 pin smart LED, which follows a stupid naming convention. WS2812 is the name of the Smart LED with RBG diodes and an integrated IC. The name of that IC is WS2811. The reason this IC has 6 pins is because the WS2811 has separate power rails which is rather pointless. 6 Pins makes this easy to identify on it’s own.
WS2812B is the next evolution with 4 pins. From the images you’ll see I’ve found at least 3 different variations of it. To identify this IC you’ll need a microscope to look at the bonding wires. I’m mainly focusing on the IC itself because of the bonding wire pad placement. You’ll see that it has 3 closely place pads along the short edge of the IC and on the opposite side 3 spaced out pads. Other indicators for variations of the LED package are the placement of the blue diode and shape of the pads inside the package.
SK6812 is the clone Smart LED and is most easily identified by the IC being rotated 90°. Under a microscope you’ll also see that the 3 closely placed bonding wire pads are now along the long edge of the IC.
Tomi Engdahl says:
SK9822 – a clone of the APA102?
https://cpldcpu.com/2016/12/13/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.
Tomi Engdahl says:
An Awesome Interactive LED Table
http://hackaday.com/2017/01/31/an-awesome-interactive-led-table/
If you want to create a large display with a matrix of LEDs, it’s a relatively straightforward process. Thanks to addressable LED tape and microcontrollers it becomes more of a software issue than one of hardware. [Vincent Deconinck] had some inexpensive WS2812 strips, so he sliced into an inexpensive IKEA coffee table and mounted them in a grid beneath an acrylic sheet. Some work with Arduino Nanos and a Raspberry Pi later, and he had a very acceptable LED matrix table.
The design of the IR sensors was not entirely straightforward though
A Dirt Cheap F*** Awesome Interactive Led Table
http://blog.deconinck.info/post/2016/12/19/A-Dirt-Cheap-F-Awesome-Led-Table
Tomi Engdahl says:
Tinker Tie Beta: RGB LED Bow Tie
https://hackaday.io/project/10321-tinker-tie-beta-rgb-led-bow-tie
Arduino-compatible, programmable RGB LED bow tie using WS2812B addressable LEDs. Powered by the Adafruit Pro Trinket
Tomi Engdahl says:
Fadecandy LED Dress
1k RGB LEDs sewn onto a dress, what could go wrong?
https://hackaday.io/project/19663-fadecandy-led-dress
Conceptually, the intent was to garment that enabled the wearer to download programs to change the design.
Since digital files create far less waste than physical products, the wearer can update their look as often as they’d like, thus extending the life of the garment.
1004 RGB LEDs require a lot of current; about 60A.
I used a Raspberry Pi and Scanlime’s Fadecandy LED driver for this project. Fadecandy is a flexible and opensource hardware/software environment that allows you to do amazing things with light, partly due to the temporal dithering engineered in the hardware and because it made it easy to use my Processing sketches as input. I used the Open Pixel Control server to drive the boards over my wifi network but Fadecandy also supports WebSockets.
Easy to use open source hardware to drive WS2811 LEDs with high-quality color
https://github.com/scanlime/fadecandy
Tomi Engdahl says:
ESP8266 Based NeoPixel Dashboard
https://hackaday.io/project/19773-esp8266-based-neopixel-dashboard
This is an ESP8266 based Neopixel dashboard, it shows current time, can show a custom message and have upto 41 prebuild effects.
ESP8266 Based NeoPixel Dashboard
ESP8266 Based NeoPixel Dashboard
This is an ESP8266 based Neopixel dashboard, it shows current time, can show a custom message and have upto 41 prebuild effects.
Moreover, the color and brightness of the message as well as time can be changed. The speed of the message scroll as well as effects can also be changed dynamically. The time is RTC backed and The whole dashboard is LiIon Battery Backed.
Tomi Engdahl says:
WS2812 Arcade Button
Cramming a WS2812 into an arcade button with the help of Pyralux.
https://hackaday.io/project/19880-ws2812-arcade-button
Tomi Engdahl says:
Enter the Space Tunnel
http://hackaday.com/2017/02/26/enter-the-space-tunnel/
What’s better than 1 string of LED lights? 96. That’s how many. Each string of the 96 has 60 ws2812b LEDs, for a total of 5760 individually addressable RGB LEDs. That’s not the cool part of [jaymeekae]’s Space Tunnel installation, the cool part is that they’re interactive.
Starting out with some PVC piping, dark cloth was used as a backdrop and the LED strips were attached to it. Several power supplies are used to supply the voltage necessary and each strip controlled by FadeCandy chips which connect to, in this case, a Windows PC via USB.
Processing is used to interface with the FadeCandy controllers and HTML is used for a user interface.
Over several iterations, the Space Tunnel has evolved
It’s a great art installation and [jaymeekae] takes it to festivals, including one in Spain and one in the UK.
Space Tunnel
by jaymeekae
http://imgur.com/gallery/FEhMI
This is Space Tunnel. It’s an interactive, immersive, light art installation. It contains 5760 LEDs and a touch screen so anyone can control the lights. There are currently two main modes, Drawing Mode – where you can draw on the lights – and Space Mode – where it looks like stars are flying past, and you can control the speed and colour of them!
Tomi Engdahl says:
Making a Mega LED Desk
http://hackaday.com/2017/03/02/making-a-mega-led-desk/
Few things beat a sturdy, home-built desk — especially when it’s jam-packed with over 1200 WS2812 LEDs.
LED Computer Desk
http://imgur.com/gallery/6US4x
Tomi Engdahl says:
Play Games, Post Videos and Share GIFs on This Giant LED Wall
https://blog.hackster.io/play-lo-fi-games-and-display-gifs-on-this-giant-led-wall-122d693c13d9#.gyv7xep4k
As their write-up puts it, “Every tech company has side projects and Solid State is no different.” On the contrary, most tech companies don’t create a giant interactive wall using 2,040 RGB LEDs.
Tomi Engdahl says:
Closer Look at Everyone’s Favorite Blinky
http://hackaday.com/2017/03/10/closer-look-at-everyones-favorite-blinky/
Admit it, you love looking at silicon die shots, especially when you have help walking through the functionality of all the different sections. This one’s really easy for a couple of reasons. [electronupdate] pointed his microscope at the die on a WS2812.
The WS2812 is an addressible RGB LED that is often called a Neopixel (a brand name assigned to it by Adafruit). The part is packaged in a 5×5 mm housing with a clear window on the front. This lets you easily see the diodes as they are illuminated, but also makes it easy to get a look at the die for the logic circuit controlling the part.
A Look at the Neopixel: Controller Die Teardown
http://electronupdate.blogspot.fi/2017/02/a-look-at-neopixel-controller-die.html
Tomi Engdahl says:
NeoJoints Make WS2812 LEDs Even More Fun
http://hackaday.com/2017/03/12/neojoints-make-ws2812-leds-even-more-fun/
What’s more fun than individually addressable RGB LEDs? Many, many individually addressable RGB LEDs. What’s more fun than all the miscellaneous soldering involved in connecting many of these cheap and cheerful strips together? Well, basically anything. But in particular, these little widgets that [todbot] designed help make connecting up strips of RGB LEDs a snap.
NeoPixel NeoJoints
Quick angled solder connectors for NeoPixel LED strips
https://hackaday.io/project/7794-neopixel-neojoints
NeoJoints are “joints” for NeoPixel/WS2812 LED strip to make it easier to join pieces together.
Published as a set of Eagle files, with angles of 0, 90, and 180 degrees.
Tomi Engdahl says:
Build Your Own Animated Turn Signals
http://hackaday.com/2017/03/13/build-your-own-animated-turn-signals/
Automotive lighting used to be strictly controlled, particularly in the United States — anyone remember sealed beam headlamps? These days, pretty much anything goes. You can even have an animated turn signal, because a simple flash isn’t fancy enough these days. You can get a scanning-LED turn signal on your new model Audi, among others. [Shravan] wanted this on their Mazda and set about building an animated turn signal and daytime running lights setup for their car.
It’s not a complicated build by any means; an off-the-shelf WS2812B strip provides the blinkums, an Arduino Nano the smarts. Using a modified library to drive the LEDs allowed [Shravan] to get things running with a minimum of fuss.
Fully Sik DRLs
Daytime Running Lights using an addressable LED strip.
https://github.com/heartworm/fullysikdrls
This repo is the control logic for an extemely cheap WS2812B strip of LED lights I’ve mounted as daytime running lights (DRLs) on the front grille of my car. The code is written for an ATMega328P (currently an Arduino Nano) in AVR C. Being fully addressable, the daytime running lights also serve the purpose of acting as sequential turn signals, similar to those on the new Audi A6. For legal (and courtesy) reasons the lights also have to dim when the car’s park lights are activated.
Tomi Engdahl says:
Ask Hackaday: What About the Diffusers?
http://hackaday.com/2017/04/25/ask-hackaday-what-about-the-diffusers/
Blinky LED projects: we just can’t get enough of them. But anyone who’s stared a WS2812 straight in the face knows that the secret sauce that takes a good LED project and makes it great is the diffuser. Without a diffuser, colors don’t blend and LEDs are just tiny, blinding points of light. The ideal diffuser scrambles the photons around and spreads them out between LED and your eye, so that you can’t tell exactly where they originated.
Tomi Engdahl says:
Interesting looking project:
Web Enabled Led Matrix
https://hackaday.io/project/20659-web-enabled-led-matrix
Not just any Led matrix you’ve seen… You can play Retro Games like Pong from anywhere in the world with your phone.
The 2017 Hackaday Prize
View Gallery
469
2
23
8
Team (1)
caBattista
Join this project’s team
Software
ongoing project
ESP8266 ws2812 ws2811 LED MATRIX arduino pong SNAKE wifi 2017HackadayPrize
This Project Is In This List
2017 THP: Digi-Key Parts
Browse all lists »
This project is submitted for
The 2017 Hackaday Prize
Design your concept
Internet of Useful Things
Best Product
This project was created on 03/26/2017 and last updated an hour ago.
Description
This was a Project for college. The goal was to use an Esp8266 in various ways you can come up with.
The Idea:
An LED Matrix that can serve many different functions in the IoT world
For example:
Multiplayer Gaming device
-similar to an arcade (1, 2 oder more players can connect and play via their smartphone)
Live Messaging Notifier
-Notifies you when you receive an email or any other messenger
-Display Youtube Subscriptions or Facebook likes
-(All yould be done by using IFTTT)
Tomi Engdahl says:
Float Spectrum, a Sound-Reactive Installation
http://hackaday.com/2017/05/29/float-spectrum-a-sound-reactive-installation/
[Sam Kent] and friends built a sound-reactive LED display as part of the Leeds (UK) Digital Festival and exhibited it at Hyde Park Book Club. The installation consists of a grid of 25 tubes, each one made out of four recycled 2-liter bottles equipped with a string of a dozen WS2812B LEDs controlled by a central Arduino.
Connected to the Arduino via USB, a computer running a Processing application analyzes the audio input and tells the Arduino which LEDs to light and when.
Reactive Lighting Installation
http://samkent.xyz/reactive-lighting-installation/
The Processing application creates an audio input stream and sets the framerate to 100 FPS. The application’s draw function applies an FFT with 512 bins to the input stream and stores the result. The updateTube function is called for each frame to configure each tube’s frequency response, colour, and sensitivity; then calculates the resulting brightness of each tube and draws a visual representation of the tube on the GUI.
Tomi Engdahl says:
DIY Ambilight with Arduino and WS2812B LEDs
https://m.imgur.com/a/LuPyF
Using an Arduino Nano and some WS2812B LEDs, I built my own ‘ambilight’. An ambilight is a device that takes the colors from the perimeter of a monitor and extends them to the wall behind it. It helps with immersion and ambiance (hence the name), and can also reduce eye strain. But mostly it just looks really cool.
Tomi Engdahl says:
540 PCBs Make a Giant LED Cube
http://hackaday.com/2017/06/02/540-pcbs-make-a-giant-led-cube/
Just about anyone can make a simple LED cube. But what if you want to make a 1-meter cube using 512 LEDs? [Hari] wanted to do it, so he created two different kinds of LED boards using EasyEDA. There are 270 of each type of board, for a total of 540 (there are only 512 LEDs, so we guess he got some spares due to how the small boards panelized). The goal is to combine these boards to form a cube measuring over three feet on each side.
Giant RGB LED Cube
1m x 1m x1m RGB LED Cube. That is 3.3′ x 3.3′ x 3.3′
https://hackaday.io/project/19115-giant-rgb-led-cube
A 3x3x3 LED cube is a great beginner’s soldering project. 4x4x4 takes a little more patience, 8x8x8 SINGLE color LED cube is challenging. But an 8x8x8 COLOR cube is insane!
So, I’ve been brainstorming on how to make it simpler and I think WS2812b addressable RGB LEDs is the answer!
Tomi Engdahl says:
DIY Grid Eye IR Camera
http://hackaday.com/2017/06/05/diy-grid-eye-ir-camera/
Tindie is a great place to find uncommon electronic components or weird/interesting boards. [Xose Pérez] periodically “stroll the isles” of Tindie to keep up on cool new components, and when he saw Panasonic’s Grid_EYE AMG88 infrared sensor, [Xose] knew that he had to build something with it. The awesome find is an 8×8 IR array sensor on a breakout board… the hack is all in what you do with it.
http://tinkerman.cat/grid-eye-camera-sliced/
Tomi Engdahl says:
An LED Strip Heads-Up Display (HUD) for Your Car
https://blog.hackster.io/an-led-strip-heads-up-display-hud-for-your-car-8aa7d3420048
device, which uses a programmable LED strip powered by a Teensy 3.2, shows data based on whether the car is moving (speed), stopped (RPM) or off (voltage). The LED strip, an upgraded version of NeoPixels known as “DotStars,” shines from the dash onto the inside of the windshield, surrounded by a shroud to keep other drivers from seeing the LEDs. Importantly, the setup uses a photoresistor to sense the ambient light, and adjust accordingly.
Tomi Engdahl says:
Adafruit DotStar Digital LED Strip
https://www.adafruit.com/product/2241
Move over NeoPixels, there’s a new LED strip in town! These fancy new DotStar LED strips are a great upgrade for people who have loved and used NeoPixel strips for a few years but want something even better. DotStar LEDs use generic 2-wire SPI, so you can push data much faster than with the NeoPixel 800 KHz protocol and there’s no specific timing required. They also have much higher PWM refresh rates, so you can do Persistence-of-Vision (POV) and have less flickering, particularly at low brightness levels.
Like NeoPixels, DotStar LEDs are 5050-sized LEDs with an embedded microcontroller inside the LED.
You can set the color/brightness of each LED to 24-bit color (8 bits each red green and blue). Each LED acts like a shift register, reading incoming color data on the input pins, and then shifting the previous color data out on the output pin.
Tomi Engdahl says:
7-Segment Displays Get a Huge Upgrade With the Neosegment Digit
https://blog.hackster.io/7-segment-displays-get-a-huge-upgrade-with-the-neosegment-digit-733e8bcdb0a9
If you’ve been around electronics for any amount of time, you’re certainly familiar with 7-segment displays, which use a series of LEDs or LCD sections to display characters in a distinct linear form. While great for revealing simple information, they lack color, and implementing more and more digits can complicate things dramatically.
His resulting system — now available on Crowd Supply — uses a series of programmable WS2812B RGB LEDs to show digits via a single 3-pin connector.
Tomi Engdahl says:
A Hypnotizing Interactive Art Piece for Visualizing Color Theory
http://hackaday.com/2017/08/08/a-hypnotizing-interactive-art-piece-for-visualizing-color-theory/
To make RGB color theory more tangible, [Tore Knudsen] set out to build a system for mixing digital colors in a way that reflects physical paint mixing. His creation uses three water-filled containers (one each for red, green, and blue) to adjust the color on the screen. The intensity of each color is increased by pouring more water into the corresponding container, and decreased by removing water with a syringe.
An Arduino is used to detect the water levels, and controls what the user sees on the screen. In one mode, the user can experiment with how the color levels affect the way a picture looks.
Colorwise
http://www.toreknudsen.dk/work/colorwise/
Tomi Engdahl says:
RGB LEDs: How to Master Gamma and Hue for Perfect Brightness
http://hackaday.com/2016/08/23/rgb-leds-how-to-master-gamma-and-hue-for-perfect-brightness/
You would think that there’s nothing to know about RGB LEDs: just buy a (strip of) WS2812s with integrated 24-bit RGB drivers and start shuffling in your data. If you just want to make some shinies, and you don’t care about any sort of accurate color reproduction or consistent brightness, you’re all set.
But if you want to display video, encode data in colors, or just make some pretty art, you might want to think a little bit harder about those RGB values that you’re pushing down the wires. Any LED responds (almost) linearly to pulse-width modulation (PWM), putting out twice as much light when it’s on for twice as long, but the human eye is dramatically nonlinear. You might already know this from the one-LED case, but are you doing it right when you combine red, green, and blue?
It turns out that even getting a color-fade “right” is very tricky.
Gamma correction can make your single-color LED effects look a lot better. But what happens when you step up from monochrome to RGB color? Imagine that you’ve gone through the whole gamma experiment above with just the red channel of a WS2812 LED. Now you add the green and blue LEDs to the mix. How much brighter does it seem? If you weren’t paying attention above (yawn, math!) you’d say three times brighter. The right answer is the gamma’th root of three.
Strictly speaking, computing brightness depends on the mix of light coming out of all three LEDs. The good news is that you can also figure out the brightness of any arbitrary color combination with gammas.
The other use of the brightness formula above is in fading from one color to another, keeping the perceived brightness constant.
On a slow microcontroller, or on one that should be doing more important things with its CPU time than computing colors, constantly adjusting color values for brightness is a no-go. In the single-LED case, a lookup table worked well. But in RGB space, a three-dimensional array is needed. For a small number of colors, this can still be workable: five levels of red, blue, and green produces a palette with only 125 (53) entries. If you’ve got flash memory to spare, you can extend this as far as you’d like.
An alternative workaround is to gamma-adjust the individual channels first. This gets the brightness right, but it also affects the rate at which the hue changes across the cross-fade. You might like this effect or you might not — the best is to experiment. It’s certainly simple.
For me, getting control of the brightness of a color LED is about 95% of the battle. The remaining 5% is in getting precise control of the hue. That said, there are two quirks of the human visual system that matter for the hues.
Conclusion
You can get lost in colors fairly easily, and it’s fun and rewarding to geek out a bit. On the other hand, you can make your LED blinky toys look a lot better just by getting the brightness right, and you do that by figuring out the appropriate gamma for your situation and applying a little math. The “right” gamma is a matter of trial and error, but something around two should work OK for starters.
Tomi Engdahl says:
Rushing the Design and Construction of LED Centerpieces
http://hackaday.com/2017/08/11/rushing-the-design-and-construction-of-led-centerpieces/
Sometimes the most important thing is getting something done.
[Alex Lao] was recently in such a situation. His sister was getting married and he designed, built, and delivered twenty RGB LED table centerpieces in a rush. There were no prototypes made, and when the parts arrived all twenty were built all at once over a single weekend. These table centerpieces are illuminated by RGB LEDs and battery-powered, but have an option to be powered by a wall adapter.
From one perspective, the PIC32 microcontroller inside each lamp is overkill for an LED centerpiece. From another perspective, it was in fact the perfect part to use because it was the fastest way for [Alex] to get the devices working with no surprises.
PIC32 – Dragon Flame Rev. A
http://www.voltagedivide.com/2017/08/07/pic32-dragon-flame-rev-a/
A PIC32 MX120 in an SO-28 package was chosen to run the firmware to drive the LEDs. The PIC32 is overkill for this application but I already had a PICKit3 on hand and code written to get the SPI peripheral up and running. The SPI peripheral was exploited to avoid the need for more complex timer interrupts to drive the one wire serial interface of the LEDs. This is a well-known technique used to drive WS2812b like LEDs using DMA, no DMA was used for this project as the number of LEDs driven is so low but the use of SPI still reduces complexity in the firmware.
APA106 LEDs in a 5mm frosted package was chosen to hopefully avoid ugly bright spots in the lamp shade. The APA106 LEDs can be purchased for a low cost on AliExpress. They use a one wire protocol that is very similar to WS2812b based LEDs sometimes known as “NeoPixels”. The APA106’s simply daisy chain acting like a shift register. I added a 0.1 uF capacitor on the 3.3V line powering every other LED for good measure but they were probably unnecessary.
Power was supplied by four AA batteries in series wired to the board at the wedding. When the lamps were given away the battery box was cut out and a 5V AC power adapter was included to allow battery-less operation using the 2.1mm jack making this lamp a nice decorative night light that can be left on all the time.