The most fascinating project you can build is something with a bunch of blinky hypnotic LEDs, and the easiest way to build this is with a bunch of individually addressable RGB LEDs. [Ole] has a great introduction to driving RGB LED matrices using only five data pins on a microcontroller.
The one thing that is most often forgotten in a project involving gigantic matrices of RGB LEDs is how to mount them. The enclosure for these LEDs should probably be light and non-conductive. If you’re really clever, each individual LED should be in a light-proof box with a translucent cover on it. [Ole] isn’t doing that here; this matrix is just a bit of wood with some WS2812s glued down to it.
To drive the LEDs, [Ole] is using an Arduino. Even though the WS2812s are individually addressable and only one data pin is needed, [Ole] is using five individual data lines for this matrix. It works okay, and the entire setup can be changed at some point in the future. It’s still a great introduction to individually addressable LED matrices.
If you’d like to see what can be done with a whole bunch of individually addressable LEDs, here’s the FLED that will probably be at our LA meetup in two weeks. There are some crazy engineering challenges and several pounds of solder in the FLED. For the writeup on that, here you go.
Like just about everyone we know, [Luis] decided a gigantic RGB LED matrix would be a cool thing to build. Gigantic LED matrices are very hard to build, though: not only do you have to deal with large power requirements and the inevitable problems of overheating, you also need to drive a boat load of LEDs. This is not easy.
[Luis] found a solution to the problem of driving these LEDs with a new, fancy ARM Cortex M4 microcontroller. All Cortex M4 ARMs have DMA, making automatic memory transfers to peripherals and LED strips a breeze.
The microcontroler [Luis] is using only supports 1024 transfers per transfer set, equating to a maximum of 14 LEDs per transfer. This problem can be fixed by using the ping-pong mode in the DMA controller by switching between data structures for every DMA request. Basically, he’s extending the number of LEDs is just switching between two regions of memory and setting up the DMA transfer.
The result is much better than [Luis]’ original circuit that was just a bunch of SPI lines. It also looks really good, judging by the video below. It’s not quite a gigantic LED matrix yet, but if you want to see what that would look like, check out the huge 6 by 4 foot matrix hanging in the Hackaday overlord office.
Continue reading “The Possibility Of Driving 16,000 RGB LEDs”
The availability of Smart RGB LED’s, either as individual units, as strips or even as panels, have made blinky light projects with all kinds of color control and transition effects easy to implement using even the simplest of controllers. Libraries that allow control of these smart LEDs (or Smart Pixels as they are sometimes called) make software development relatively easy.
[overflo] at the Metalab hackerspace in Vienna, Austria recently completed development of usblinky – a hacker friendly blinky USB stick. It can control up to 150 WS2812B smart LED’s when powered via an external power supply, or up to 20 LED’s when powered via a computer USB port. The micro-controller is an ATTiny85 running the Micronucleus bootloader which implements software USB using vUSB. The hardware is based on the DigiSpark platform. The usblinky software sources are available on their Github repo. The section on pitfalls and lessons learned makes for interesting reading.
Metalab plans to run workshops around this little device to get kids into programming, as it is easy enough and gives quick visual feedback to get you started. To round off the whole project, [overflo] used OpenSCAD to design a customizable, 3D printable “parametric orb” which can house the LED strip and make a nice enclosure or psychedelic night light. Check out the mesmerizing video of the usblinky Orb after the break.
Thanks to [papst] for sending in this tip.
Continue reading “A Hacker-Friendly Blinky USB Stick”
[Evan] wrote in to let us know about the LED matrix infinity mirror he’s been working on. [Evan] built a sizable LED matrix out of WS2812B LEDs and mounted them to a semi-reflective acrylic sheet, which makes a pretty awesome infinity mirror effect.
Instead of buying pre-wired strands of serial LEDs like we’ve seen in some other projects, [Evan] purchased individual WS2812 LEDs in bulk. Since the LEDs just had bare leads, [Evan] had to solder wires between each of his 169 LEDs (with some help from a few friends). After soldering up hundreds of wires, [Evan] drilled out holes for each LED in a piece of semi-reflective acrylic and inserted an LED into each hole.
To create the infinity mirror effect, [Evan] mounted the LED matrix behind a window. [Evan] put some one-way mirror film on the outside of the window, which works with the semi-reflective acrylic to create the infinity mirror effect. The LEDs are driven by an Arduino, which is controlled by a couple of free programs to show a live EQ of [Evan]’s music along with patterns and other effects.
Whether you call them individually controllable RGB LEDs, WS2812, or NeoPixels, there’s no denying they are extremely popular and a staple of every glowey and blinkey project. Fresh off the reel, they’re nearly useless – you need a controller, and that has led to many people coming up with many different solutions to the same problem. Here’s another solution, notable because it’s the most minimal WS2812 driver we’ve ever seen.
The critical component in this build is NXP’s LPC810, an ARM Cortex M0+ in an 8-pin DIP package. Yes, it’s the only ARM in a DIP-8, but still able to run at 30MHz, and hold a 4kB program.
JeeLabs is using the SPI bus on the LPC810 to clock out data at the rate required by the LEDs. The only hardware required is a small LED to drop the voltage from 5V to 3.3V and a decoupling capacitor. Yes, you could easily get away with this as a one-component build.
The build consists of a ring of sixty WS2812b RGB LEDs, and the chip dutifully clocking out bits at the correct rate. It’s the perfect start to an LED clock project, an Iron Man arc reactor (are we still doing those?), or just random blinkey LEDs stuffed into a wearable.
Thanks [Martyn] for sending this one in.
[Jordan] has been playing around with WS2812b RGB LED strips with TI’s Tiva and Stellaris Launchpads. He’s been using the SPI lines to drive data to the LED strip, but this method means the processor is spending a lot of time grabbing data from a memory location and shuffling it out the SPI output register. It’s a great opportunity to learn about the μDMA available on these chips, and to write a library that uses DMA to control larger numbers of LEDs than a SPI peripheral could handle with a naive bit of code.
DMA is a powerful tool – instead of wasting processor cycles on moving bits back and forth between memory and a peripheral, the DMA controller does the same thing all by its lonesome, freeing up the CPU to do real work. TI’s Tiva C series and Stellaris LaunchPads have a μDMA controller with 32 channels, each of which has four unique hardware peripherals it can interact with or used for DMA transfer.
[Jordan] wrote a simple library that can be used to control a chain of WS2812b LEDs using the SPI peripheral. It’s much faster than transferring bits to the SPI peripheral with the CPU, and updating the frames for the LED strip are easier; new frames of a LED animation can be called from the main loop, or the DMA can just start again, without wasting precious CPU cycles updating some LEDs.
Tired of balls that are just balls, and not glowing geometric constructions of electronics and wonderment? Get yourself an IcosaLEDron, the latest in Platonic solids loaded up with RGB LEDs.
The folks at Afrit Labs wanted a fun, glowy device that would show off the capabilities of IMUs and MEMS accelerometers. They came up with a ball with a circuit board inside and twenty WS2812B RGB LEDs studded around its circumference
The frame of the ball is simply a set of twenty tessellated triangles that can be folded up during assembly. The outer shell of the ball is again printed in one piece, but fabricated out of transparent NinjaFlex, an extraordinarily odd, squishy, and likely indestructible material.
Inside the IcosaLEDron is a PCB loaded up with an ATMega328p, an accelerometer, a LiPo battery charger, and quite a bit of wiring. Once the ball is assembled and locked down, the squishy outer exterior is installed and turned into a throwable plaything.
If 20 sides and 20 LEDs aren’t enough, how about a an astonishing 386-LED ball that’s animated and knows its orientation? That’s a project from Null Space Labs, and looking at it in person is hypnotic.