Rewriting WS2812 Driver Libraries for Optimization

ws2812_compared

We like [Tim's] drive for improvement. He wrote a WS2812 driver library that works with AVR and ARM Cortex-M0 microcontrollers, but he wasn’t satisfied with how much of the controller’s resources the library used to simply output the required timing signal for these LED modules. When he set out to build version 2.0, he dug much deeper than just optimizing his own code.

We remember [Tim] from his project reverse engineering a candle flicker LED. This time, he’s done more reverse engineering by comparing the actual timing performance of the WS2812(B) module with its published specs. He learned that although several timing aspects require precision, others can be fudged a little bit. To figure out which ones, [Tim] used an ATtiny85 as a signal-generator and monitored performance results with a Saleae logic analyzer. Of course, to even talk about these advances you need to know something about the timing scheme, so [Tim] provides a quick run-through of the protocol as part of his write-up.

Click the top link to read his findings and how he used them to write the new library, which is stored in his GitHub repository.

Low-Power SMD Fireflies

lowpowerledfireflies

[Tyson's] family went with creating rather than buying Christmas presents last month, which gave him the opportunity to build some electronic fireflies for gifts. He drew inspiration from a similar firefly project we featured last year, but expanded on the original model by designing dedicated PCBs and housings for each of his firefly pieces.

Although he’d settled on using ATTiny85′s for this project, [Tyson] was fresh out of through-hole versions. He decided to skip the prototyping phase and go right for fabrication, cranking up the laser-jet printer for some toner-transfer, which successfully produced 4 functioning boards (and 3 failures). The fireflies were [Tyson's] first attempt at SMD soldering, and we’d have to say it’s a job well done; he reflowed each board with a cheap-o heatgun from Harbor Freight.

After some hiccups with fuse programming, [Tyson] got the code uploaded and the fireflies illuminated.  Swing by his site for the nuts and bolts on construction, then snag the project files here. (Direct .zip download)

Stop Traffic In This 7-Mode LED Running Jacket

[Miria] was tired of tangling with bicyclists on her nighttime runs. It was obvious to her to illuminate herself, but she thought it would be really cool if the lights responded to her heart rate. The short summary that tipped us off is over at NYC Resistor, and [Miria] gives the gory details on her blog. The LEDs operate in seven different light modes that increase in speed proportionate to her heart rate.

She started the build around an Arduino but found that the compatible heart rate sensors were mostly optical and gave inaccurate readings. Since she was already using a Garmin GPS watch and heart rate monitor band, she decided to hack into the conversation between the two. Garmin uses the ANT protocol for this. While [Miria] found the documentation to be an effective sleeping pill, she also found that SparkFun has an ANT transceiver breakout board. Unfortunately, it’s been discontinued.

[Miria] continued undeterred, using the SparkFun board for prototyping. Her final version uses a Teensy 2.0 and this ANT transceiver in place of the ill-fated SparkFun board. She found an Energizer power pack that plugs directly into the Teensy and can power both Adafruit weatherproof LED strips for about an hour. Look both ways, and check out her demo after the break.

[Read more...]

SLDongle: The Microcontroller Gift That Keeps on Giving

It must be nice to be one of [kiu]‘s colleagues. Some people pass out chocolates or stress balls at work as Christmas gifts, but [kiu] made a bunch of SL dongles to introduce his colleagues to the world of microcontrollers.

The dongles are based on the ATMega88PA and work on three levels to provide something for everyone. The no-experience-necessary option is to plug it in to a USB port and admire the light show sequences. If you know enough to be dangerous, you can remotely control the LEDs from a USB host using [kiu]‘s sldtool for Linux or Mac. He originally included examples that visualize CPU utilization and ultimately added a Ruby-based departure countdown for the next outbound train at the nearby station.

If you’re 1337 enough you can flash your own C or assembly code via USB. Holding down the button during power-up lets you use the dongle as a USBasp so it can be flashed with avrdude. [kiu] says the bootloader can’t be unlocked through software and is theoretically unbrickable. Stick around after the break to see the full demo.

[Read more...]

LIDAR With LEDs For Under $100

LIDAR

If you need some sort of distance sensor for your robot, drone, or other project, you have two options: a cheap ultrasonic sensor with limited range, or an expensive laser-based system that’s top of the line. LIDAR-Lite fills that gap by stuffing an entire LIDAR module onto a small board.

In traditional LIDAR systems, a laser is used to measure the time of flight for a light beam between the sensor and an object. The very accurate clock and laser module required for this system means LIDAR modules cost at least a few hundred dollars. LIDAR-Lite gets around these problems by blinking a LED with a ‘signature’ and looking for that signature’s return. This tech is packaged inside a SoC that reduces both the cost and size of a traditional laser-based LIDAR system.

As for the LIDAR-Lite specs, it can sense objects out to 40 meters with 5% 95% accuracy, communicates to any microcontroller over an I2C bus, and is small enough to fit inside any project.

Considering the existing solutions for distance measurement for robots and quadcopters, this sensor will certainly make for some very awesome projects.

Edit: One of the guys behind this posted a link to their spec sheet and a patent in the comments

The Butt Lamp: Light From Where the Sun Don’t Shine

led-butt

[Trent] is one of those guys who can make things happen. A friend of his gifted him a  mannequin derriere simply because he knew [Trent] would do something fun with it. “Something fun” turned out to be sound reactive LED butt. At first blush, this sounds like just another light organ. This butt has a few tricks up its …. sleeve which warrant a closer look. The light comes from some off the shelf 5050 style RGB LED strip. The controller is [Trent's] own design. He started with the ever popular MSGEQ7 7 Band Graphic Equalizer Display Filter, a chip we’ve seen before. The MSGEQ7 performs all the band filtering and outputs 7 analog levels corresponding to the amplitude of the input signal in that band. The outputs are fed into an ATTiny84, which drives the RGB strip through transistors.

The ATTiny84 isn’t just running a PWM loop. At startup, it takes 10 samples from each frequency band. The 10 samples are then averaged, and used to create a noise filter. The noise filter helps to remove any ambient sound or distortions created by the microphone. Each band is then averaged and peak detected. The difference between the peak and the noise is the dynamic range for that band. The ATTiny84 remaps each analog sample to be an 8 bit value fitting within that dynamic range. The last step is to translate  the remapped signal values through a gamma lookup table. The gamma table was created to make the bright and dark colors stand out even more. [Trent] says the net result is that snare and kick drum sounds really pop compared to the rest of the music.

Without making this lamp the butt of too many jokes, we’d like to say we love what [Trent] has done. It’s definitely the last word in sound reactive lamps. Click through to see [Trent's] PCB, and the Butt Lamp in action.

[Read more...]

Built-in Coffee Table Lightbox

diydollarstorelightbox

[Flyingpuppy] sent us this tip about her cleverly-concealed pull-out lightbox drawer. Her resolution for the new year was to make more art, so she filled this coffee table with art supplies and decided she’d draw while relaxing in front of the television. She also wanted a lightbox nearby, which originally involved hacking the entire tabletop with some acrylic, but she eventually opted for a simpler build: and it’s portable, too! The drawer’s lights are battery-powered, so you can pull the entire thing out of the table and drag it onto your lap, if that makes drawing more comfortable.

[Flyingpuppy] sourced seven inexpensive LED units from her local dollar store, which she mounted to the back of the drawer with some screws. The rest of the drawer was lined with white foam board, the bottom section angled to bounce light up onto the acrylic drawing surface. Because she needs to open the case to manually flip on the lights, she secured the acrylic top magnetically, gluing a magnet to the underside of the foam board and affixing a small piece of steel to the acrylic. A simple tug on the steel bit frees the surface, providing access underneath. Stick around for a video below.

[Read more...]