Not too long ago a friend of mine who makes guitars asked me for help with using LEDs to add even more blinky bling to his creations. So far, so good; if you give me the bloated corpse of a yak I can show you how to stuff LEDs into it. However he wanted the LEDs to be programmable so that he could incorporate them into the visual design of his guitars and, dammit Jim, he’s a guitar maker, not a programmer.
I needed an interface that he could use that would be user friendly enough for a non programmer but still give him a good degree of control of how the LEDs are sequenced. Not wanting to write any sort of GUI interface to sequence the lights I figured out that you can use the drawing/painting features of a program such as Photoshop to program the lights.
Recently I’ve been playing with something I think is somewhat of a holy grail in LED enthusiast circles: the addressable RGB LED strip.
Non-addressable RGB strip (meaning you can turn the whole strip a particular color but not any individual LED) is becoming easier to find in the market but a RGB strip where you can actually control each LED individually has only been the subject of geek fantasy. Every time I’ve done something public with common RGB strip, someone has come up to me and said “oh wow man, can you control those LED’s individually?”. No, sorry, with those strips you couldn’t — but with this strip you can!
So part of the reason that I’ve been so slack with the postings this year has been because I’ve been collaborating on this project as well. We’ve been sorta pseudo-hush about it as we’ve been developing it but, now that we’ve shown it in its full glory at Maker Faire, the cat’s outta the bag.
They’re in! I’ve finally gotten back the first factory run of serial LED strips and they look awesome. 50 meters of LEDs on a string and I’m really quite happy with them. I’ve tested about half of the batch and so far haven’t run into any build-quality problems. They just seem to all work.
In particular I’ve been impressed with how flexible the strips have been and how resilient (so far) they’ve been in the face of bending. Most LED strips that are available on the market now are coated with a rubbery like clear flexible coating which protects them from the elements and gives them additional strength. The factory was able to apply such a coating but I opted out of it since my intended application was indoors-only and I didn’t want the additional bulk. Also having them uncoated lets me change the color of the LED’s later if I need to. Thus without the coating these strips are significantly more fragile than your typical LED strip and yet they’ve put up with all the punishment I’ve dished out to them so far.
My friend Ian Hanschen (aka Furan) has been doing a number of impressive projects involving LED’s and electronics. If you enjoy the sort of material I write about here, definitely give his blog a visit too.
16 LED’s surface mounted onto flexible circuit-board material and driven by a small microcontroller. The LED’s animate a pattern which pulses (approximately) to the beat of my own heart. Read the rest of this entry »
Since my last posting, Synoptic Labs has been transplanted to new, larger digs in Sacramento, CA. As a feature of the new location, we now find ourselves with a full garage which has substantially increased our storage and work area. However, this garage opens up onto a busy downtown street with a lot of foot-traffic and a bit of that traffic is from scavengers — people who routinely comb the neighborhood (usually early in the morning) looking for recyclables or, frankly, anything that isn’t nailed down.
The door is opened by remote control and, as we’ve found on numerous occasions already, it’s all too easy to inadvertently hit the remote and open the door without realizing or just forget to close it. More than once we’ve woken up and found that the door has been wide open all night long; the fact that we haven’t lost any tools or equipment because of this astounds me.
Knowing that our luck wasn’t going to hold out forever if we keep leaving the door open, I decided something had to be done. So I hacked together a internet/mobile-phone enabled garage door monitoring system which will notify us if the door is left open during the night.
Progress continues on the Serial LED strips project. I’ve assembled a fair number of the prototype strips and have been experimenting with a few ideas. I’m really excited about this project… I keep thinking of new projects I can do with these little strips. However for now my focus is on testing the ones that I have in prep for a larger scale production run.
Also I got a lot of positive feedback from people at the Bay Area Maker Faire on the prototype strips I brought mounted on black acrylic (slapped together at the *very* last minute).
Today I set about testing the resistance on the power and ground rails. The resistance on these rails imposes a maximum length of serial strips that can be chained together before power needs to be re-tapped into the chain. Much to my pleasant surprise, the resistance that I measured closely matched my predictions. I had predicted a resistance of 5.70 mOhm on VCC and 6.48 mOhm on GND and I measured 5.79 mOhm on VCC and 6.42 mOhm on GND respectively. Not bad.
Video of the prototype strips in action after the jump.
My prototype boards for the striplight came in this week, woohoo! Now starts the process of putting the design through its paces and making sure it works but before that can begin the boards have to be first assembled.
According to the guys over at SparkFun there’s no better way to do bulk surface-mount soldering in the home than with skillet reflow. According to universal truth, there’s no better use for a skillet than for making delicious fluffy pancakes. Thus it follows that any activity combining the two must be a doubleplus good.
Besides, heavy metals poisoning is the sweetest sauce.
Rob and I have recently been talking about doing some wireless projects. A friend loaned us a Cypress CYM6935 module which is an evaluation module for the CYWUSB6935 chip and today we attempted to hook it up. We chose an Arduino board simply for convenience though connecting the module to it actually took the bulk of our time today since the 2mm pitch pin headers on the module won’t fit into a breadboard. Also, the Arduino runs at 5V and the Cypress chip can’t tolerate voltages that high so we had to drop the 5V signals from the Arduino down to 3.3V. Fortunately I had a Futurlec 5V to 3.3V level shifter board on hand so that problem was easily solved.
Once we got the module wired into the Arduino we had to figure out how to communicate with it. Thankfully, that work has largely been done already and we borrowed code written by Lars Englund (available here) to test the communications with the chip. This code was written for an ATMega8 so a few of the port definitions needed to be changed to make it run on the Arduino’s ATMega168, but this was fairly painless.
It should be noted to avoid possible confusion that, while we used the Arduino board, we did not use the Arduino programming environment to compile and run Lars’s code. His code is not compatible with the Arduino framework and would require significant porting. (this is not a criticism of the code but rather a disclaimer intended for those who may find this post. It’s not commonly understood that the Arduino hardware is perfectly happy functioning without its development environment).
Anyways, once we got the code to compile and talk back to us via the USART and once we got the Cypress module wired up to the board, we were pretty much done. Much to our surprise the software found the chip and was able to talk to it on the first try. Honestly, we had expected to be chasing stupid wiring mistakes for another few hours so this was a pleasant shock.
That’s pretty much where we left it. We got the software to recognize the chip and talk to it and we called it a productive day. Now what’s left to do is get it to scan the wireless spectrum and send that data back to the host computer for analysis and display.