The 200 LED Ring Clock

There are LED clocks, and then there are LED clocks that can blind you from 30 paces. [Stiggalicious’s] LED ring clock is of the latter variety. 200 WS2812B/Neopixel RGB LEDs drive the ring clock to pupil searing levels. The clock runs on ATMega1284P, with timekeeping handled by an NXP PCF8563 real-time clock chip. Code is written in Arduino’s wiring language using Adafruit’s Neopixel library.

Building the clock with a single Printed Circuit Board (PCB) would be both expensive and wasteful. [Stiggalicious] cleverly designed his clock to be built with 8 copies of the same PCB. Each board makes up a 45° pie slice of the ring. All 8 PCBs have footprints for the CPU, clock chip, and other various discrete parts, but only the “master” section has these parts populated. 7 “slave” sections simply pass clock, data, power and ground through each LED. He used Seeedstudio’s board service to get 10 copies of his PCB made, just in case there were any mistakes.

[Stiggalicious] rolled the dice by buying exactly the 200 LEDs he needed. Either he got really lucky, or the WS2812 quality testing has improved, because only one LED had a dead blue LED.

If you’d like to find out more, [Stiggalicious] gives plenty of details in his Reddit thread. He doesn’t have a webpage setup for the clock but he’s uploaded his source code (pastebin link) and Altium schematic/PCB files (mega.nz link). We may be a bit biased, but hackaday.io would be a perfect spot for this or any other project!

Driving 1000 NeoPixels With 1k Of Arduino RAM

timing

NeoPixels, or WS2812 RGB LEDs, are the display device du jour for impressive and blinding lighting projects. Commonly known for very tight timing requirements, [Josh] discovered this is, in fact, usually unnecessary. The timing requirements for NeoPixels aren’t as bad as they seem, once you get to know them.

The official WS2812 timing specs give values that are fairly constraining for anyone writing a library to drive these RGB LED pixels, but simplifying the timing diagram by assuming a 50% duty cycle on the data lines and ignoring the longer maximum times results in a surprising conclusion: the only tight timing parameter for NeoPixel signaling is the maximum width of the 0-bit pulse.

Realizing this, [Josh] wrote a simple demo program to drive over 1000 NeoPixels – an 11 meter long strip – using 1K of RAM on an Arduino. The trick comes by simply delaying the bitbanging a set number of cycles. No obtuse assembly required.

There is only one problem with [Josh]’s method of driving a nearly unlimited amount of NeoPixels – building a display where every NeoPixel is an element in a larger image, such as in a video display, is impossible on systems with limited amounts of RAM. The code writes values to the NeoPixel strip algorithmically, so if you can’t build your animation with for loops, you’re out of luck. Still, Driving this many NeoPixels is a migraine trigger, and we have to give [Josh] credit for doing this with 1K of RAM.

Check out the video of [Josh]’s extreme NeoPixel strip below.

Continue reading “Driving 1000 NeoPixels With 1k Of Arduino RAM”

Huge RGB Ring Light Clock

After several months of work, [Greg] has completed one of the most polished LED clocks we’ve ever seen. It’s based on the WS2812 RGB LEDs, with an interesting PCB that allowed [Greg] to make a huge board without spending a lot of money.

The board is made of five interlocking segments, held together with the connections for power and data. Four of these boards contain only LEDs, but the fifth controller board is loaded up with an MSP430 microcontroller, a few capsense pads for a 1-D touch controller, and programming headers.

Finishing up the soldering, [Greg] had a beautiful LED ring light capable of being programmed as a clock, but no enclosure. A normal plastic case simply wouldn’t do, so [Greg] decided to try something he’d never done before: casting the PCB inside a block of resin.

A circular mold was made out of a piece of MDF and a router, and after some problems with clear resin that just wouldn’t cure, his ring light was embedded in a hard, transparent enclosure.  Conveniently stuck in the mold, of course. The MDF had absorbed a little bit of the resin, forcing [Greg] to mill the resin ring free from the wood, with a lot of finish sanding to make the clock pretty.

It’s a clock that demonstrates [Greg]’s copious manufacturing skills, and also his ability to troubleshoot the problems that arose. While he probably won’t be casting things inside an MDF mold anymore, with the right tools [Greg] could easily scale this up for some small-scale manufacturing.

 

Breadboardable WS2812 LEDs

LED

Hackaday sees a ton of projects featuring the WS2812 series of digitally controllable RGB LEDs, in the form of bare chips, RGB LED strips, or some form of Adafruit’s NeoPixels. All these WS2812 LED products have one thing in common – they’re chip LEDs, making some projects difficult to realize. Now there’s a new member of the WS2812 family – a through-hole LED version – that should be available through the usual sources sometime later this year.

The key difference between these and the usual WS2812 LEDs is the packaging; these are 8mm LEDs with pins for power, ground, data in, and data out. With the preexisting libraries, this 8mm LED should work just the same as any other WS2812 LED.

Aside from a through-hole package, these new LEDs are very diffuse and aren’t as blinding as the normal chip LEDs. If you want to pick up a few of these LEDs, they’re available here, 13 LEDs for $15. There’s a lot of potential here for RGB LED cubes, something we hope to see sooner rather than later.

Driving RGB Pixel LEDs With CAT5 Cable

cable-test

[Teknynja] was working on a project where he needed to drive a few strips of Adafruit Neopixels – WS2812 LED strips – that were located several feet apart. These LED strips draw a lot of current, and are very timing sensitive; anything more than a few feet of wire between the microcontroller and the LED strip will probably result in missed data, voltage drops, dimming LEDs, and possibly a non-functional strip.

The solution, as in all matters concerning long distance transmission of data, was CAT5 cable. [Teknynja] used RS-422 drivers and receivers to pull this task off, with 75174 line drivers receiving signals from a Teensy 3.0, and 75176 bus transceivers reading everything at the other end of a 20 foot cable.

For the power drop issue, [Teknynja] is feeding 12V into a few of the wire pairs in the cable and using a cheap  LM2596 buck converter to step everything down to 5V at the strip.

With a fairly simple circuit, [Teknynja] was able to drive a few strips of WS2812 LEDs through 20-foot lengths of CAT5 cable with ease; it worked just the same as if the pixels were connected directly to the Teensy on a workbench.

IKEA LED Table Mod Doesn’t LACK Awesome

Some people look at IKEA LACK tables as cheap furniture. Our readers look at them as a blank canvas. [Klaas] has turned a LACK Side table into an interactive LED table featuring 144 RGB LEDs. After attending a class on WS2801 pixel strings at his student IEEE chapter, [Klaas] was inspired to design something of his own. He settled on an IKEA LACK table and started sketching. He didn’t actually have a table on hand, so he had to deduce the size from the website images and dimensions. He calculated a usable size of around 45cm, which was pretty close to the mark. After running a few tests, [Klaas] determined that a 12×12 grid of squares 35mm on a side would provide that enough resolution to play simple games. The 35mm x 35mm grid would also be small enough for the LEDS to illuminate. He used a laser cutter to cut the an interlocking grid from 3mm MDF. A base plate with 144 12mm LED holes was also cut out, and the entire assembly was glued together.

For illumination, [Klaas] settled on WS2812B LEDs, as they were cheaper than their WS2801 couterparts. The WS2812B’s also snapped easily into his 12mm holes. At this point [Klaas] actually purchased his IKEA table and proceeded to cut a huge hole in it. The grid glued right in, and some aluminum L-profile cleaned up the top edge. Driving all those LEDs would need a bit of processing power, [Klaas] chose a Teensy 3, and the well-known OctoWS2811 library. He also added a USB host shield, which allowed him to use an Xbox 360 USB game pad as his controller. For software, he created a simple Tetris clone, and ported snake from the Arduino game shield. A menu and some scrolling text ties everything together. The only thing left to add is a glass top. [Klaas] hasn’t settled on clear or diffuse glass yet. We a suggest clear to avoid hiding any details of this great build.

Continue reading “IKEA LED Table Mod Doesn’t LACK Awesome”

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.