Computing stuff tied to the physical world

Meet the LED Node

In AVR, Software on Nov 3, 2011 at 00:01

More than a year has passed, and I still haven’t finished the RGB LED project. The goal was to have lots of RGB LED strips around the house, high up near the ceiling to provide indirect lighting.

The reason is perhaps a bit unusual, but that has never stopped me: I want to simulate sunrise & sunset (both brightness and colors) – not at the actual time of the real sunset and sunrise however, but when waking up and and when it’s time to go to bed. Also in the bedroom, as a gentle signal before the alarm goes off.

Now that winter time is approaching and mornings are getting darker, this project really needs to be completed. The problem with the previous attempt was that it’s pretty difficult to achieve a really even control of brightness and colors with software interrupts. The main reason is that there are more interrupt sources (the clock and the RFM12B wireless module), which affect the timing in subtle, but visibly irregular, ways.

So I created a dedicated solution, called the LED Node:

Screen Shot 2011 10 26 at 11 48 54

It’s basically the combination of a JeeNode, one-and-a-half MOSFET Plugs, and a Room Board, with the difference that all MOSFETs are tied to I/O pins which support hardware PWM. The Room Board option was added, because if I’m going to put 12V power all over the house anyway for these LEDs, and if I want to monitor temperature, humidity, light, and motion in most of the rooms, then it makes good sense to combine it all in one.

Here is my first build (note that all the components are through-hole), connected to a small test strip:

DSC 2706

The pinouts are pre-arranged to connect to a standard common cathode anode RGB strip, and the SHT11 temp / humidity sensor is positioned as far away from the LEDs as possible, since every source of heat will affect its readings. For the same reason, the LDR is placed at the end so it can be aimed away from the light-producing LED strip. I haven’t thought much about the PIR mounting so far, but at least the 3-pin header is there.

The LED Node is 18 by 132 mm, so that it fits inside a U-shaped PVC profile I intend to use for these strips. There can be some issues with color fringing which require care in orienting the strips to avoid problems.

Apart from some I/O pin allocations required to access the hardware PWM, the LED Node is fully compatible with a JeeNode. It’s also fully compatible with Arduino boards of course, since it has the same ATmega328. There’s an FTDI header to attach to a USB BUB for uploading sketches and debugging.

The MOSFETS easily support 5 m of LED strips with 30 RGB LEDs per meter without getting warm. Probably much more – I haven’t tried it with heavier loads yet.

Here’s what I used as basic prototype of the whole thing, as presented last year:

DSC 2710

Tomorrow, I’ll describe a sketch for this unit which supports gradual color changes.

  1. I’ve been toying with the same sunrise/sunset idea for months now, too. Your solution here is very elegant.

  2. I really like the custom-function JeeNodes: more compact and the combination with Roomboard functionality is an added bonus!

    You mention common cathode: all my ledstrips are common anode, does that impose a problem, or can this be configured?

  3. You mention common cathode: all my ledstrips are common anode

    Whoops, corrected. I always mix them up.

  4. This is a project I will also do the next weekend my gf is gone :) but with a dimmable CFL or LED (depends on the cost) + radio clock and mp3 shield. Your work will be a good base, thanks :)

  5. A nice project, looking forward for a LEDNode in the Shop! I always liked the idea of a wakeup light ( but yours is so much better!

    Where did you got this LED strip from? There are a lot of LED strips in eBay but I have no idea what to look for.

  6. Nice little board. You might like to take a look at this app, available for Windoze, Mac and loonix which changes the colour temperture of your monitor based on time if day

    I really like it. Just remember to override it before working on photos :)

    • Nice!!! Too bad it’s not open – I’d like to find out how to best define the colors (and would like to use much deeper red at the end of the range).

  7. Hey. Nice idea. BTW, the link to the LED Node in 404!

  8. I’m looking into the exact same thing at the moment.

    About the PIR mounting, why does it have to be on the lednode? It might actually be more convenient to be able to move the PIR around!

    I’m want to tie this into my staircase, but for the PIR to work effectively, it has to be mounted in a corner. The LedNode however, will not be in that same corner because there is no space to fit it!.

    JCW, you could just see if you can find some 3-wire extension cable of about 70 cm+ to fit the PIR, because I’m not going to be the only one with this problem ;)

    Evne better yet, just 3 female jumper wires and a 3 pin header!

    This might save us the trouble of mounting stuff where there’s no place and it saves you the headache.

Comments are closed.