It seems like every third project on Hackaday uses WS2812 RGB LEDs in some way. We all love our blinkenlights, and bright, cheap, serial controlled RGB LEDs are the bees knees.
As with all products these days, competing manufacturers have discovered the huge market for these things, and clones are now available. [Tim] recently took a look at the PD9823, as well as three versions of the WS2812. [Tim] is considered something of a WS2812 guru here at Hackaday. You might remember him from his WS2812 driver optimization article, which should be required reading for any WS2812 hacker.
As many of us know, the timing characteristics for these LEDs can be a pain to work with. The values also differ between the WS2812S and WS2812B. [Tim] discovered that the new through hole WS2812D parts are different yet again, though rather close to the B parts. The PD9823′s designers must have studied the WS2812′s closely, as their 190ns time base falls directly between WS2812S 166ns time and the 208ns time of the WS2812B. The PD9823 also requires a slightly longer reset pulse.
The takeaway is that well written drivers such as [Tim's] should have no problem with the new parts, but compatibility is something to keep in mind as more clones hit the market.
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!
The folks at NYC Resistor have a thing for circular displays, it seems. Their earlier Hexascroller was a ceiling mounted display with six 30×7 displays – good enough to display the time and a few textual message in six directions. The Octoscroller bumped up the display capability with eight 16×32 RGB LED panels. Now the Megascroller, a 32-sided 512×64 display is hanging in the hackerspace, complete with 360° Mario and Pong.
The Megascroller is one of [Trammell Hudson]‘s projects, constructed out of sixty-four 32×16 RGB LED matrices. That’s an impressive amount of controllable LEDs, that required a lot of processing power: namely, the BeagleBone-powered LEDscape board used in their earlier Octoscroller
As far as applications go, they naturally have Pong, but a more interesting application is the side-scrolling Mario that requires you to move around the display as you play. You can check out a video of that below.
If you’d like to see the Megascroller in person, as well as a whole bunch of other crazy blinking interactive projects, NYC Resistor is holding a an interactive show this weekend, beer provided.
Continue reading “The Megascroller, For Video Games In The Round”
[repkid] didn’t set out to build a lamp, but that’s what he ended up with, and what a lamp he built. If the above-pictured shapes look familiar, it’s because you can’t visit Thingiverse without tripping over one of several designs, all based on a fractal better known as the Koch snowflake. Typically, however, these models are intended as vases, but [repkid] saw an opportunity to bring a couple of them together as a housing for his lighting fixture.
Tinkering with an old IKEA dioder wasn’t enough of a challenge, so [repkid] fired up his 3D printer and churned out three smaller Koch vases to serve as “bulbs” for the lamp. Inside, he affixed each LED strip to a laser-cut acrylic housing with clear tape. The three bulbs attach around a wooden base, which also holds a larger, central Koch print at its center. The base also contains a PICAXE 14M2 controller to run the dioder while collecting input from an attached wireless receiver. The final component is a custom control box—comprised of both 3D-printed and laser-cut parts—to provide a 3-dial remote. A simple spin communicates the red, green, and blue values through another PICAXE controller to the transmitter. Swing by his site for a detailed build log and an assortment of progress pictures.
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”
With the Raspberry Pi now most famously known as a $30 media PC, it only makes sense that the best uses for the GPIO pins on the Pi are used for an Ambilight. [Great Scott Labs] put up a great video on using the Pi as a uniquely configurable Ambilight with Hyperion and just about any video input imaginable.
This isn’t the first Ambilight clone [Great Scott] has put together, but for the first version the Ambilight functioned only under Raspbian and not any random HDMI input. The new version solves this by using an HDMI splitter box, feeding into an HDMI to composite converter, and finally into a USB composite capture dongle attached to the Raspi.
With the software in the instructions, the Raspi effectively mirrors the video coming from the video capture dongle. The Pi is running Hyperion to control a strip of WS2801 RGB LEDs, making the back of any TV glowey and blinkey.
Since [Great Scott] is using a component video signal as an input, the adapters necessary to have any device work with this Ambilight are readily available. We’d honestly like to see this build working with the old Commodore disk access screen border going nuts, so be sure to send that in if you ever get that working.
Continue reading “A Raspi Ambilight With HDMI Input”
Depending on your taste for social interaction and tolerance for distraction, an open floor plan or “bullpen” office might not be so bad with a total of four people. Hackaday.io user [fiddlythings] likes it, but people often stop by to see him or one of his coworkers only to find them busy or absent. While their status is something they could plainly see in Microsoft Communicator from their own desk, some people like to chat in person or stop by on their way to and from meetings.
In order to save these visitors a few seconds, [fiddlythings] came up with an IM status indicator using their existing nameplates outside the door. Each of their names has a little silver dot by it which he backlit with a flattish RGB LED. These LEDs are driven by a Raspberry Pi and NPN transistors through a ribbon cable.
The plan was to imitate the Communicator status colors of green for available, red for busy, and yellow for away. [fiddlythings] dialed up a lovely shade of amber for away using a mix of red and green. Since he really only needs two colors, he’s using eight NPN transistors instead of twelve. The quick ‘n dirty proof of concept version used Python and a Pidgin IM console client called Finch. Once he got IT’s blessing, he implemented the final version in C++ using Libpurple to interface with Communicator.
This isn’t the first time we’ve seen a Pi used to indicate status—remember this mobile hackerspace indicator?