Make: Projects

Luminch One

Build an interactive lamp that you can control by waving your hand.

Luminch One

Luminch One is an interactive lamp controlled by the movements of your hand. Wave your hand over it to turn it on or off, or move your hand up or down above it to change its brightness. Inside the lamp, an Arduino hooked to an infrared distance sensor tracks your hand and sets the state and the brightness of the LED lamp.


Step #1: Get the tools and materials

Luminch OneLuminch OneLuminch One

You can get most of the electronic parts required for this project from Sparkfun. Click the items from the parts list to go to the product page of each part.

Step #2: Solder the connectors

Luminch One
  • Cut a 2-pin piece from the right-angle header strip and solder it to the LED board.
  • Cut a 3-pin piece from the right-angle header strip and solder it to the infrared sensor cable following the color order in the picture. You can add heat-shrink tubing to the wires before soldering them.

Step #3: Assemble the circuit

Luminch OneLuminch OneLuminch OneLuminch One

Assemble the circuit on the protoboard following the picture and the schematic. Pay attention to the polarity of the electrolytic capacitors and the transistor.

Step #4: Program the Arduino

Luminch One
  • Connect the Arduino to your computer using the USB cable.
  • Download the source code for the project.
  • Start the Arduino IDE and open the luminch_one.ino file.
  • Configure the board type and serial port for your Arduino in the IDE.
  • Upload the code to the Arduino.
  • Test if it works!

Step #5: Cut the balsa sheet

Luminch One

Cut three pieces of balsa wood of the following sizes: 77 mm x 77 mm, 70 mm x 70 mm, and 45 mm x 65 mm.

Step #6: Glue the base

Luminch One
  • Glue the 70x70 mm balsa square on the center of the 77x77 mm balsa square using the white glue.
  • Let it dry for two or three hours under a heavy object like a large book.

Step #7: Glue the Arduino

Luminch One

Glue the Arduino on the center of the wood base using the hot-glue gun. Make sure the board of the Arduino does not stick out of the small square of the base. Only the USB connector of the Arduino must stick out of the small square.

Step #8: Stack the circuits

Luminch OneLuminch OneLuminch OneLuminch One
  • Glue the protoboard and the infrared sensor to the 45x65 mm balsa piece.
  • Put the 45x65 mm balsa piece on the top of the Arduino and fold the cables on the sides.

Step #9: Cut and score the lampshade

Luminch OneLuminch OneLuminch One
  • Print the luminch_one_lampshade.pdf file from the project files on the A4 tracing paper sheet.
  • Fix the A4 tracing paper sheet to the cutting mat using the masking tape.
  • Cut the solid lines of the pattern using the hobby knife.
  • Score the dashed lines with the point of the file tool of the Swiss Army knife or with another paper scoring tool.
  • Remove the sheet from the cutting mat.
  • Score the dot-dashed lines on the back side of the sheet with the point of the file tool of the Swiss Army knife or with another paper scoring tool.

Step #10: Fold and glue the lampshade

Luminch OneLuminch OneLuminch One
  • Fold the sheet following the dashed and dot-dashed lines. Dashed lines are valleys and dot-dashed lines are mountains.
  • Glue the flap to shape the lampshade as a square prism.
  • Cut a square hole for the USB connector of the Arduino.

Step #11: Assemble the lamp

Luminch OneLuminch OneLuminch One
  • Put the lampshade on the wood base.
  • Connect one end of the USB cable to the Arduino.
  • Connect the other end of the USB cable to the USB wall charger.
  • Plug the USB wall charger into a power outlet.
  • Enjoy! :)

Step #12: Further improvements

Luminch OneLuminch OneLuminch OneLuminch One
  • Replace the Arduino with an ATtiny45 or ATtiny85 to reduce the size of the circuits.
  • Attach a heat sink to the LED and replace its resistor by a smaller one (6.8 to 10 ohms) to increase the LED power.
  • Replace the hot-glue with screws to ease disassembly at the unit's end-of-life.

Step #13: End-of-life disassembly

Luminch One
  • Remove the circuits and the hot-glue from the balsa wood pieces.
  • Cut the lampshade and the balsa wood in small pieces and compost them in your garden.
  • Disassembly the circuits by removing the cables and the components from the protoboard.
  • Reuse the Arduino and the electronic components in another fun project!


  • Francisco Castro

    You can use [|octopart] to search or also you can replace it with any NPN transistor that can handle a current of 500ma, just check the pinout of the replacement in its datasheet as not all the transistor have the pins in the same order.

  • Francisco Castro

    The LED in this lamp is rated to maintain 70% of its brightness after 50.000 hours. I had not checked the datasheets of all the components, but I suppose the LED is the one that wears faster of all them.

    Anyway, as you have all the plans on how it is built, if some part fails just replace that part and it will remain alive.

    Most probable cause of end-of-life will be that you get bored of it or want to use the Arduino for another project, that is why I included the end-of-life disassembly step.

    I think we already have enough garbage on the planet and that is very important when designing new objects to think about how its parts can be reused at end-of-life and what impact on the environment will have throwing the non-reusable parts. For more info about EOL design search for [|Design for Disassembly].

  • Francisco Castro

    Yes, you can use two 10ohm 1W or 1/2W in series, or also you can use four 68 ohms 1/4W in parallel.

  • Francisco Castro

    1) You need to take in account the gain of the transistor you are using and the current you want to switch with it. If you have a high gain version of the BC337 like the BC337-40 you can use a higher value resistor and it will work OK.

    2) The 100uF capacitors are for stabilizing the power source because the PWM of the LED introduces noise in the 5VDC and the distance sensor do the same because it consumes big pulses of current for driving its internal IR LED. I have not calculated it, I just tried with some capacitors I had around :)

    3) I used a 18ohm resistor to limit the current to what I think the LED can withstand without and extra heat sink. If you add a heat sink you can use a smaller resistor to the send more current to the LED, but never more than 500ma that is the current limit for the BC337 and also for the Arduino 5V I think.

  • Matt Rozema

    I’m doing the same thing. You need a mosfet to interface the pwm output with the 12 Volts. I think you also need to use a voltage regulator or some other way to step down the 12V to 5V for the Arduino.

  • Parker

    I have the same problem. I haven’t figured out a way to fix it yet.
    Would delaying the time between senspr readings help?
    Maybe use delay(Microseconds) for greater precision?

    Although I don’t fully understand the programming,
    how exactly does the turn off function work?

  • Panagiotis Grigorakis

    Exciting! Would it work with an existing closed lamp?

  • Océane

    I made it, but not against it goes like this :
    – After running the program, the LED lights. Then I pass the hand : the LED goes out.
    – I will return the hand, led lights.
    – I try to vary the intensity but the LED is already at max when it comes on, so I can only go down its intensity.
    – THE BIGGEST PROBLEM: Impossible to turn off the LED after she was turned on. What can I change in the code?

    Thank you

  • Durss

    Oceane, you must have done something wrong with the circuit or changed something in the program, not?
    It works correctly on my side. I’m just reviewing the code as i don’t like much the behavior but still, when built as explained and with the program given, it works the same as the video !

  • Jocelyn Hotte

    Hi, I’m new to arduino builds, and this lamp is really elegant and cool. Wanted to build it, but I notice the High Power LED breakout is discontinued. Do you know any alternatives?


  • Admar Schoonen


    Thanks for sharing this build. Execllent description and pictures.

    I decided to make one as well, but added a little twist and made a color version:


  • Grzegorx

    Hi there,

    can anyone say me exactly which components were used in this project? I mean the values of capacitors, etc. I’d be grateful for any information.

    Thanks in advance

  • Hakan Tokat

    i ve buildet this circuit with an arduino pro mini and use 12 V LED Stipe with MOSFET.
    But i have one problem. The sensor is placed on a place, that is an objet in the range of the sensor.
    It is possible to reduce the maximum track distance of this Sensor. there is an object (wall, furniture) at a discance of 110cm (Vo 0,6 Volt)?

    that is no problem, if the minimum track distance (value of Sensor) moved in both (+-) direction.

    i hope sombody can help

    Thank you.
    sorry for this bad english. that is the best i can talk.