[James Bruton], from the XRobots YouTube channel is known for his multipart robot and cosplay builds. Occasionally, though, he creates a one-off build. Recently, he created a video showing how to build a LED ball that changes color depending on its movement.
The project is built around a series of 3D printed “arms” around a hollow core, each loaded with a strip of APA102 RGB LEDs. An Arduino Mega reads orientation data from an MPU6050 and changes the color of the LEDs based on that input. Two buttons attached to the Mega modify the way that the LEDs change color. The Mega, MPU6050, battery and power circuitry are mounted in the middle of the ball. The DotStar strips are stuck to the outside of the curved arms and the wiring goes from one end of the DotStar strip, up through the middle column of the ball to the top of the next arm. This means more complicated wiring but allows for easier programming of the LEDs.
Unlike [James’] other projects, this one is a quickie, but it works as a great introduction to programming DotStar LEDs with an Arduino, as well as using an accelerometer and gyro chip. The code and the CAD is up on Github if you want to create your own. [James] has had a few of his projects on the site before; check out his Open Dog project, but there’s also another blinky ball project as well.
On the front of a building in New York City, above a branch of the ubiquitous Starbucks coffee chain, there is a clock. It is no ordinary clock, the 200 Water Street clock is an art installation created by the artist [Rudolph de Harak], and consists of 72 lighted numbers which are illuminated in sequence to show hours, minutes, and seconds. It is a landmark of sufficient fame that [Jason Ben Nathan] and [Eldar Slobodyan], Cornell University students of [Bruce Land], decided to make their own tribute to it as their course project.
It’s a fairly straightforward build, thanks to the use of Adafruit Dotstar multicolour LED strips which are populated with APA102 pixels. Behind the scenes is a PIC32 microcontroller, and the time information comes from an off-the-shelf 60kHz WWVB time signal receiver. There is also a temperature sensor, for a handy second function.
The front panel is a piece of ply with the required numbers nicely laser-cut. All the schematics and code are available, should you fancy your hand at building your own version of the clock.
If you are curious about the real-life clock here’s an image. But you get a much more interesting perspective if you stand in front of it. If you just can’t go there, get an approximation through the wonders of Google Street View.
Adafruit has long been the undisputed ruler of the smart LED product, with their WS2812B (NeoPixel) and APA102C (DotStar) product lines dominating due to the robust assortment of sizes and form factors, as well as their ease of use. SparkFun Electronics recently announced Lumenati, their new line of APA102C breakouts that feature some intriguing features which do a good job of distinguishing the two lines.
First, the screen-printing on the boards include pixel numbers. We were working on NeoPixel assemblies the other day and keeping track of pixels was a nightmare. In addition, the Lumenati boards are meant to combine into larger creations, allowing you to make complicated shapes. SparkFun supports this by giving the boards castellated headers — far better than the solder pads! If you are running into logic conflicts with the boards you can solder in jumpers to bypass the data connections and control individual boards separately. On the down side, SparkFun’s intitial offerings — 6 products — still can’t compete with Adafruit’s, like their 255-LED disk, shields, strips, matrices, and flexible PCBs.
We’re sure there are more expensive LED controllers out there, but the TI-84 has got to be up there. Unless you have one on hand, then it’s free. And then you’ll doubtless need an SPI library for the famously moddable graphing calculator.
[Ivoah] is using his library, written in assembly for the Z80 processor inside the TI, to control a small strip of DotStar LEDs from Adafruit. The top board in the photograph is an ESP8266 board that just happened to be on the breadboard. The lower Arduino is being used as a 5V power supply, relegated to such duties in the face of such a superior computing device.
Many of us entertained ourselves through boring classes by exploring the features of TI BASIC, but this is certainly a step above. You can see his code here on his GitHub.
After his proof-of-concept, [Ivoah] also made a video of it working and began to program a graphical interface for controlling the LEDs. Video after the break.
Sometimes you design the hardware around the software, and sometimes vice-versa. It’s all about the balance of pain. [prpplague] initially wired the strips together in a consistently left-to-right raster arrangement to make the coding easier, but this means long wires on the backside of the fabric returning from the right side back to the start again at the left. These long wires snagged on stuff, and pulled the solder connections apart.
The fix? Alternate rows of left-to-right with right-to-left to minimize wiring and make nice, robust connectors for the ends, and a much more elegant implementation at the expense of more complicated software to drive the device. (Alternating rows have to be flipped horizontally, so this means custom driver routines.)
The second gremlin was that the interfacing board that [prpplague] was using didn’t have enough current sourcing capability on the SPI lines, and he discovered that he couldn’t communicate reliably with the strings if the first pixel was more than 24″ of wire away from the board. Once the signal got to the first pixel, though, everything was fine. [prpplague] figured out that the RGB LEDs themselves had more drive capability than the SPI source.
The solution? Add a single pixel at the front of the chain to buffer the SPI lines and serve as a bonus status indicator. Cute.
We’d hardly call these “fails”, but rather “learning experiences”. Anyway, here’s two design “mistakes” that we won’t make when making a roll-up flexible pixel display. Thanks [prpplague].
Last week, Adafruit released the DotStar RGB LED Disk, a 240mm diameter disk packed with 255 individually addressable RGB LEDs. Because blinkey glowey projects are the best projects, [Adam] had to have one. His tests open up some interesting possibilities in the world of blinkey LED stuff, including a polar coordinate display that would be perfect for low-res games and LED clocks.
[Adam] found the Disk sufficiently bright and glowey, but there were two problems. The first was the JST SM connector on the input of the DotStar Disk; with 255 LEDs on the disk, it has a maximum draw of over 10A, while the connector can only supply 7A without getting unreasonably warm. Secondly, there aren’t 60 LEDs around the outer edge of the disk, limiting its application as a clock.
There’s another thing wrong with the DotStar Disk, until you realize it’s effectively a polar coordinate display. RGB LED libraries are usually written for strips or matrices, not circles. The LEDs are sequentially arranged on the DotStar disk spiraling inwards, and after mucking about with some terrible code, [Adam] realized he could control a pixel with only its distance from center and angle from the connector. This makes plotting circles easier, but it also opens this display up to some interesting applications; circular Pong would be cool, and LED clocks are the bees knees.