Driving 16 WS2812B Strips with GPIOs and DMA

[Martin Hubáček] wrote in with his WS2812 LED library for the STM32F3 series processors. [Martin]’s library takes the same approach as [Paul Stoffregen]’s OctoWS2811 for the Teensy, and [Erich Styger]’s for the Freescale FRDM-K64F board. That is, it uses three DMA channels to get the signal out as fast as possible.

Continue reading “Driving 16 WS2812B Strips with GPIOs and DMA”

Realize the Truth… There Is No Word Clock

Do you always look at it encoded? – Well you have to. The image translators work for the construct program.

Word clocks are supposed to de-encode time into a more readable format. Luckily [Xose Pérez] managed to recover the encoded time signal of the simulation we are all living in with his word clock that displays time using a stylish Matrix code animation.

[Xose] already built his own versions of [Philippe Chrétien’s] Fibonacci Clock and [Jeremy Williams’s] Game Frame, and while doing so he designed a nice little PCB. It’s powered by an ATmega328p, features an RTC with backup battery, an SD-card socket, and it’s ready to drive a bunch of WS2812Bs aka NeoPixels. Since he still had a few spare copies of his design in stock, his new word clock is also driven by this board.

Continue reading “Realize the Truth… There Is No Word Clock”

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. Surprisingly, there’s been new science done on color perception in the last twenty years, even though both eyes and colors have been around approximately forever. In this shorty, I’ll work through just enough to get things 95% right: making yellows, magentas, and cyans about as bright as reds, greens, and blues. In the end, I’ll provide pointers to getting the last 5% right if you really want to geek out. If you’re ready to take your RGB blinkies to the next level, read on!

Continue reading “RGB LEDs: How to Master Gamma and Hue for Perfect Brightness”

540 LEDs On A Geodesic Sphere

[burgerga] loves attending Music Festivals. He’s also a MechE who loves his LED’s. He figured he needed to put it all together and do something insane, so he build a huge, 15″ geodesic sphere containing 540 WS2812B addressable LED’s. He calls it the SOL CRUSHER. It sips 150W when all LED’s are at full intensity, making it very, very, bright.

As with most WS2812B based projects, this one too is fairly straightforward, electrically. It’s controlled by four Teensy 3.2 boards mounted on Octo WS2811 adapter boards. Four 10,000 mAh 22.2V LiPo batteries provide power, which is routed through a 5V, 30Amp heatsinked DC-DC converter. To protect his LiPo batteries from over discharge, he built four voltage monitoring modules. Each had a TC54 voltage detector and an N-channel MOSFET which switches off the LiPo before its voltage dips below 3V. He bundled in a fuse and an indicator, and put each one in a neat 3D printed enclosure.

The mechanical design is pretty polished. Each of the 180 basic modules is a triangular PCB with three WS2812B’s, filter capacitors, and heavy copper pours for power connections. The PCB’s are assembled in panels of six and five units each, which are then put together in two hemispheres to form the whole sphere. His first round of six prototypes set him back as he made a mistake in the LED footprint. But it still let him check out the assembly and power connections. For mechanical support, he designed an internal skeleton that could be 3D printed. There’s a mounting frame for each of the PCB panels and a two piece central sphere. Fibreglass rods connect the central sphere to each of the PCB panels. This lets the whole assembly be split in to two halves easily.

It took him over six months and lots of cash to complete the project. But the assembly is all done now and electrically tested. Next up, he’s working on software to add animations. He’s received suggestions to add sensors such as microphones and accelerometers via comments on Reddit. If you’d like to help him by contributing animation suggestions, he’s setup a Readme document on Dropbox, and a Submission form. Checkout the SolCrusher website for more information.

Thanks [Vinny Cordeiro], for letting us know about this build.

Continue reading “540 LEDs On A Geodesic Sphere”

Easy LED Panel

Imagine how impressed your friends will be when you tell them about your homebrew 4K LED panel. Just don’t tell them it is a 64X64 grid. (Hey, that’s 4K LEDs total!) We’ll keep your secret. [Tom Nelson] has a good write up on how to create such a panel from 16X16 WS2812B panels.

At first glance, this doesn’t sound like a tough project. But if you read [Tom’s] log, you’ll see that he has a lot of good advice about heat management and the use of a diffuser to get good performance. The build uses several ECG-P2-2 controllers, plus it is mechanically neatly done.

The 64 cm square array is a precursor to a planned 128X128 display that [Tom] wants to build. He mentions he will release the custom driver software for the panel, so check his site for more details. We’ve seen some panels and diffusers before if you want to start with something smaller and work your way up.

TrainLight: Transit Info At A Glance

In a world of sensory overload, sometimes it’s nice to get the information you need without a bunch of clutter. [Savage] has created an attractive and minimalist system to display the current wait times for specific trains in his San Francisco neighborhood.

trainlight-legendIt’s basically a Spark Core and a 60 LED-per-meter strip of WS2812Bs. A 1000µF cap filters the power coming in from a switching adapter and a resistor limits the level-shifted logic going to the LEDs. Eight barriers made from card stock keep the light zones from bleeding together. The sides of the square canvas panel indicate cardinal directions and are oriented to [Savage]’s southern-facing house.

The server gets prediction data every 30 seconds using the RESTbus JSON API. [Savage] added in a bit of time for walking down the stairs, putting shoes on, and walking to each stop. TrainLight receives these times over WiFi and lights the LEDs accordingly. If a section isn’t lit at all, the wait time for that line is greater than 10 minutes. Dark green means you have 5-10 minutes to get there, and pale green means 2-5 minutes. If the LEDs are yellow, you’d better put on your running shoes.

This is a fairly simple build with a focus on subtlety. Even before guests in his house understand what they’re looking at, [Savage]’s TrainLight makes for an interesting conversational piece of blinkenlights and doubles as illumination for the stairs. There’s a slightly sped-up demo after the break.

Want to make your own? [Savage] has a tutorial page and his code is up on the gits. Blinky lights are also good for telling you whether the trains are running at all.

Continue reading “TrainLight: Transit Info At A Glance”

Break Your Wrist? Twitter-Enable That Plaster Cast

Plaster casts are blank canvases for friends and family to post their get well messages. But if it’s holiday season, adding blinky LED lights to them is called for. When [Dr Lucy Rogers] hurt her hand, she put a twitter enabled LED Christmas tree on her cast.

The hardware is plain simple – some RGB LEDs, an Arduino, a blue tooth module and a battery. The LEDs and wires formed the tree, and all the parts were attached to the plaster cast using Velcro. This allowed the electronics to be removed during future X-ray scans. The fun part was in connecting the LEDs to the #CheerLights project. CheerLights is an “Internet of Things” project that allows people’s lights all across the world to synchronize to one color set by a Tweet. To program the Arduino, she used code written by [James Macfarlane] which allowed the LED color to be set to any Cheerlights color seen in blue tooth UART data.

Connectivity is coordinated using MQTT — lightweight standard popular with connected devices. By connecting the MQTT feed to the cheerlights topic from [Andy Stanford-Clark’s] MQTT feed (mqtt://iot.eclipse.org with the topic cheerlights) the lights respond to tweets (Tweet #cheerlights and a color). The LED colors can also be selected via the phone from the color picker tool in the controller, or directly via the UART. If the Bluetooth connection is lost, the LEDs change colors randomly. Obviously, delegates had great fun when she brought her Twitter enabled LED blinky lights plaster cast arm to a conference. It’s not as fun unless you share your accomplishments with others!