How is this color-changing LED array being driven?
November 18, 2008 12:18 PM   Subscribe

Electronics/LED Folks: I bought a few cheap, poorly-assembled LED color-changing orb-things and I'm pretty sure they're the coolest objects I have ever owned. I cracked 'em open, and damned if I know what is going on in there, but it looks simple/cheap as all hell. Help me figure it out, I'll post a build-log/parts list somewhere, and in short-order we can all be ass-deep in home-made, disarmingly sublime mood-lighting.

So it's about the size of a tennis-ball, made of hard, milky plastic, and it cycles in a smooth, slow gradient between Red, Green, and Blue. (8-Second Video: Globe On, Globe Off). That's it. It doesn't look like much, and it's no danger of "blowing anyone away" or anything, but lemme tell you... it has absolutely transfixed the dozen or so people that've been to my house in the week I've owned it. I'm talkin' young, gadget-savvy folks who absolutely should know better. But we all love the stupid little thing.

Cracked it open, and inside are three 1.5V watch batteries, 3 LEDs (one each: red, green, blue), a resistor, a switch, a board, and a tiny mysterious shiny black spot.

I'd like to know what method they're using to cycle thru these colors.

This schematic represents my closest attempt at understanding the build. I'm sure you'll agree that there is at least one key element missing. It is my (unfounded, but) strong suspicion that this missing element is a very simple one (though I am very interested in answers, simple or otherwise).

* LED board, top
* LED board, bottom
* Switch/Battery assembly

There's a huge chance that I've unknowingly left out something of dire importance. I will try to clarify/photograph anything that is needed. I have the disassembled globe on my workbench as we speak... multimeter at the ready.

Another related question: Would there be any way to run a common anode high-power RGB LED star off of a configuration similar to what is being used in the globe above? I'm interested, very generally, in novel methods that can be used to drive RGB (or separate "R, G, and B") LEDs. I'm slowly getting the hang of PWM and microcontroller/Arduino-based methods, and I like what I've learned... but I've not come across much that deals with any other methods. Thanks to all.
posted by jjjjjjjijjjjjjj to Technology (23 answers total) 22 users marked this as a favorite
Under the mysterious black shiny spot is an IC that drives the LEDs.
A simpler solution would be one of these, with the IC built in. You'd just need a switch, a battery and a resistor.
posted by Floydd at 12:28 PM on November 18, 2008

Response by poster:
Floydd: " of these, with the IC built in"
I've seen those... messed around with a few of them. The problem I've had with them is that while I've seen 4 or 6 versions that'll cycle thru all sorts of fancy sequences, I've never seen (as in "held in my hand, hooked to a power supply and seen") one that'll do just a smooth, slow cycle, without trying to "mix it up" at some point. I've seen them advertised... even bought some... but somewhere on their way from Hong Kong, they decided that what I'd ordered was too boring or something.

Might be remedial... but what are we abbreviating with "IC"? And how would we go about implementing such a thing with 3 LEDs in parallel?
posted by jjjjjjjijjjjjjj at 12:45 PM on November 18, 2008

Ok, so you've got an epoxy-blobbed IC there. The IC is where the magic happens, in Wayne's World parlance, and to hack/make your own, you're going to need to recreate that.

It's probably just a really simple 555-type IC running a timer and a little bit of voltage regulation through the resistor network.

If you have a friend who's an electrical engineer, it's time to call him/her. That's what I did when I had a blue laser project I needed help with. The engineer knows the theoretical stuff and which transistor/IC/VR leg to wire to where, and you know the practical stuff, like soldering and form factor.

If it were me, I'd email the guys over at Make Magazine. A lot of the time, asking for help on a project like this will get all kinds of hackers all fired up over there, and they'll be making you fancy schematics with Arduino chips and shit. That's probably overkill, but I'm gonna bet a box of donuts that someone does/proposes it.

Oh, and it sounds like you're of a hackerly bent, so you really should be pulling Make's RSS feed anyway. Get right on that.
posted by SlyBevel at 12:47 PM on November 18, 2008

Whoops, sorry.

IC = Integrated Circuit.
posted by SlyBevel at 12:47 PM on November 18, 2008

Make Blog

RSS Link:
posted by SlyBevel at 12:51 PM on November 18, 2008

Response by poster: Re: blinkM. Strangely enough, I own a blinkM... and it is 100% every bit as awesome as you suggest. Very cool and highly-recommended.

But it's also $15, whereas three 5mm LEDs (or, hell, a superflux RGB like they use in the blinkM), and.... whatever's under the black dot would probably come to around $0.35. (Estimate might be off... but not by more than a dollar.)
posted by jjjjjjjijjjjjjj at 12:53 PM on November 18, 2008

I have one of those, and always wanted to know what was inside, thanks! Mine does a nice smooth cycle - I think it's advertised as an "orb" though, not a snowball.
posted by HopperFan at 12:53 PM on November 18, 2008

we can all be ass-deep in home-made, disarmingly sublime mood-lighting.

With nothing else particularly productive to add, that is the best phrase I've heard all day.
posted by hip_plumber at 1:06 PM on November 18, 2008

The batteries appear to be LR44's. You can buy them at a huge discount here.
posted by shinybeast at 1:10 PM on November 18, 2008

Response by poster: (Very good and very helpful points/suggestions made, thus far, all the way around... Have been reading y'alls links with great interest.)
posted by jjjjjjjijjjjjjj at 1:24 PM on November 18, 2008

Here's the 555 IC I referenced above.
posted by SlyBevel at 1:35 PM on November 18, 2008

Nothing to add on the technical side, but Mathmos makes a ton of these light toys and sells replacement parts on their website.

I only know of this because my wife is so enamored with light-up stuff that I'm fairly certain you could attach LEDs to a pile of dog poo and she'd pay 19.99 for it.
posted by JaredSeth at 1:46 PM on November 18, 2008

The IC is either a custom, application specific device that outputs three (one per LED) slow sawtooth waveforms to ramp up /down voltage to each LED, phased to provide the color change effect, or it's a small cheap microcontroller programmed to do the same, only with PWM (pulse width modulation) outputs instead of ramping analog voltages.
posted by rocket88 at 1:49 PM on November 18, 2008

Um, folks, you don't vary brightness on an LED by varying voltage. They don't work that way.

You vary brightness on an LED by feeding it a fast square wave and adjusting the duty cycle. Anything above 100 hz is good, but a khz is pretty typical.

It may be a timer, but I'd be more likely to think it's some sort of single chip micro doing it. Those can be had for very cheap now, cheap enough so that they get included in greeting cards and in product packaging.
posted by Class Goat at 2:07 PM on November 18, 2008

I've built gizmos like this myself, using a 8-bit microcontroller (PIC12C508A) driving the LEDs using pulse width modulation. A good ultrabright RGB LED will set you back $1-$2 (I like these 5mm ones from Nichia), though if you want more brightness you could use a Luxeon or other multiwatt LED. To drive high power ones you'll need some transistors.

All told it's $5-$10 to build one yourself. If you want to put it on a circuit board getting the board made will probably be the most expensive piece.

I would probably just use a BlinkM unless you wanted to make a lot or you wanted some features the BlinkM doesn't have.
posted by pombe at 2:08 PM on November 18, 2008

The black dot is called a Chip-on-board device (COB). Epoxy covers an IC whose pads are soldered directly to the circuit board. In super high volume products, it's the cheapest packaging technology.

ClassGoat is right. Pulse width modulation (PWM) controls the AVERAGE brightness by varying the percentage of time that an individual LED is fully on. It has to be at a fast enough frequency so that your eye won't detect the flicker. (Usually, that is more than 30 Hz.)

Rocket88 is also probably correct that the chip is likely to be a single chip micro, as it is super easy to do this in software. In low power LEDs, you can use any chip with an output current sink capability of 20 mA or so. For big ones, currents need to be handled with buffer transistors, typically logic level field effect transistors (FETs).
posted by FauxScot at 4:33 PM on November 18, 2008

You could use an Arduino (or compatible) and its PWM outputs to do this pretty easily. A USB-enabled Arduino is about $35 (there are cheaper clones but they require a special $20 programming cable, so not cheaper if you're only getting one), which is quite a bit more than a BlinkM, which is probably brighter.

I haven't tried a BlinkM, but apparently you can program-it-and-forget-it using an Arduino, so you only need one Arduino to make n BlinkMs.

There are LED controller ICs out there (hundreds of 'em!), but good luck finding the right one. You'll need one that supports PWM, and from what I've seen most of them don't.
posted by neckro23 at 5:09 PM on November 18, 2008

FauxScott, 30 hz is awfully slow. Given that LED on/off brightness transitions are instantaneous, pretty much anyone would be able to detect the flickering.

The usual guideline is that 70 hz is imperceptible, but I think I'd prefer to go up to 100. (It would also make the control calculations easier to deal with 1 ms cycles.)

I know someone who's been doing this kind of thing using an 8051, and it apparently works really well. They're field programmable, and they're cheap even in small quantities.
posted by Class Goat at 7:00 PM on November 18, 2008

Some LED projects on Instructables led me to do a search on Ebay for "RGB LED slow color change", which led to this sort of thing. Not in the least programmable, but usable in projects like this simple LED moodlight. And cheap.
posted by fermion at 7:36 PM on November 18, 2008

Yeah, if you wanted to do this yourself, you'd probably want to use a tiny cheap microcontroller like an ATtiny13(A), a PIC12F629 or PIC10F2xx, an MC68HC908Qxx, a Philips/NXP P89LPC9xx, a small Zilog Z8, etc. Lots of manufacturers have small flash-programmable 8-pin MCUs. (Also the Fairchild ACEX series, small Cypress PSoCs, pretty much everyone in the world has a small 8051 derivative…) These cost between $1 and $2 apiece, generally, but you need to program them to do what you want.

The chip-under-blob is pretty much not useful to you from a hacking perspective, unfortunately. (Even if you could decapsulate it and mess with it, it's probably a mask-programmed 4-bit micro or something, to save another 50¢ in parts cost.)

One of the oddities of modern electronics is that it's a lot cheaper and simpler (in terms of parts count) to put a microcontroller in there than it is to put in a straightforward 555 kind of circuit.
posted by hattifattener at 7:57 PM on November 18, 2008

Oops, sorry: ten millisecond cycles.
posted by Class Goat at 8:24 PM on November 18, 2008

The easy way to make colour-changing LED lights at home is to just use self-contained RGB-cycling LEDs. Three LED dies and the (fixed-mode, unchangeable) driver hardware are all built into one standard 5mm package. Connect to power and you're done.
posted by dansdata at 11:43 PM on November 18, 2008

I think somebody already mentioned it, but it wouldn't be hard to re-use the existing globe's circuit to drive the high power LEDs. You just have to buffer the outputs, probably with a single transistor for each colour.

You've already noticed one of the better threads on driving LEDs in general: Build a massive LED array. Here is another: LED angst. And, just because it is so cool, I will throw in this other one: Drive a LED as a light-emitter and a photo-diode simultaneously?

you'd probably want to use a tiny cheap microcontroller like an ATtiny13(A), a PIC12F629 or PIC10F2xx, an MC68HC908Qxx, a Philips/NXP P89LPC9xx, a small Zilog Z8, etc.

Funny you should mention that :) Because, I have surplused PIC12F629 boards for sale -- I think the price is supper cheap!? And, I'd be happy to loan out a pickit so that you can get familiar with programming them.
posted by Chuckles at 9:00 PM on November 19, 2008 [1 favorite]

« Older I can't hear anything!   |   How do I knit with multiple strands of yarn? Newer »
This thread is closed to new comments.