Explorations in creating lamps with flexible light emitters & curved surfaces

Similar projects worth following
Flexible light-emitting materials can transform what we think of as a light source for the home or office. Let's experiment with different surface shapes and LEDs to see what kind of lamps can be built.

Throughout I will keep manufacturability in mind, with an Ikea-inspried eye towards a small amount of final customer assembly.

Part of the SupplyFrame Design Lab residency #0x02


Or.... "Welcome to the spaceship. We are happy to see you!"

  • Lamp prototype #6: "ellipseArc1"

    todbot3 days ago 0 comments

    This lamp I'm unimaginatively calling "ellipseArc1" because it is formed via truncations of ellipses.

    It is composed of 1/2" baltic birch plywood "spires" reaching upward on a 1/2" plywood base, with single strands of SK6812WWA strips running up the inner sides the spires. These spires also form the feet of the lamp.

    This lamp is derived from an early experiment with 12V "dumb" strips using 1/4" lasercut plywood (in the background of the below photo). Those strips were just barely too thick for the wood thickness so I knew I needed to go thicker, especially with the 10mm width of the WS2812-style strips.

    The design goal was to have the LED strips disappear into the base plate, so the light sinks into the wood. Unfortunately, due to how lasercutters work, you cannot cut at an angle other than 90º, so having the LEDs seamlessly disappear into the wood isn't possible with the spires being curved into the base. Instead, each strip terminates early and wires are visibly running from the strips into the base. I don't like that effect much.

    Another issue is that due to the spires curvature, there is very little room under the base for the driver board. To account for the driver, I had to glue on spacer feet to rise the lamp up enough. And the driver board is where I was experimenting with including a 5V switching power supply. Adding it takes up way too much space, even when mounted cleverly to the back of the driver PCB.

    The goal was to have each spire independently controllable, but because of the space issues, they are instead put into three groups: front, middle, and back. It's a real mess.

    To construct the wood form of the lamp (since the ShopBot was out of commission), I used the laser cutter. I designed the lamp to use 1/2" plywood but our laser cutter can only do 1/4". To create "fake" 1/2" plywood, I lasercut double of each of the shapes from 1/4". I then sanded the lasercut edges to hide their lasercut origin and reveal the nice edge detail of the baltic birch.

    The final effect looks pretty convincing and solid. The spires slot into the base in a standard lasercut fashion, but I offset them so it didn't read like a lasercut object.

    This was also my first real venture into properly designing multi-component CAM layouts in Fusion360. This is done by making a copy of the components and positioning them onto a "stock material" object (perhaps via joints). It works pretty well.

    Overall, this lamp experiment was a failure in terms of functionality and construction. But it did teach me a few things.

    Lessons learned from this lamp prototype:

    • How to take a design in Fusion360 and lay it out for laser cutting or CNC milling
    • The beginnings of how to make lasercut wood look like CNC'd or hand-built
    • Getting more comfortable using the DesignLab shop tools for doing hand-building and finishing of wood
    • Further experimentations with living hinge pattern acrylic cutting for diffuser effects (see below)
    • Initia lasercut wood veneer experiments for varying surface treatment of the lamp body. It can look pretty good! (see below)

    It also started me down the path to start thinking about how to incorporate the electronics into the body of the lamps. Until now, I have purposefully been ignoring that. I wanted to explore raw shapes and didn't want the distraction of electronics dimensions & UI considerations.

    For future lamps, I will be striving to both incorporate the electronics into the lamp bodies as well as begin integrating a more thoughtful user interface for the lamps.

  • LED diffusion experiments, some results

    todbot05/06/2017 at 01:10 6 comments

    You may have seen the wonderful Hackaday article (and resulting discussion) titled "Ask Hackaday: What about the Diffusers?" The article was a good summary of common techniques used to diffuse LED brilliance and the ensuing discussion listed some additional approaches and materials to try. I particularly like the idea of milled Corian, but I don't see a way to fit that into my project. It did remind me that Jimmy Diresta did a Corian lamp for Core77's Youtube channel a while back. It's a good demo of the material.

    A month ago, there was also this great post about LED diffusion on the Arduino sub-reddit.

    The materials I've been considering have been a bit simpler than most. They are, in no particular order:

    There are several criteria I have been using for judging material:

    • Diffusive ability (obviously)
    • Structural capacity (can it hold its own shape)
    • Flexibility (can it be bent to the curves I am considering)
    • Availability / cost / amenable to manufacturing

    The diffusiveness of the material should be around 50%-60% light-transmissive it seems. I don't have a good way to measure this except by eyeballing it.

    The availability / cost / manufacturability aspects mean I discount the cool "hacks" I normally would do like pingpong balls or hot glue. I'm looking for products or materials or processes that conceivably can be done by a hired third party.

    The structural and flexibility issues are fundamentally at odds with one another: the materials that are very flexible cannot hold their shape. Many of the diffuser shapes I want to make exhibit two different types of curvature (e.g. curve around the LEDs while also following the curve of the lamp). This combined curvature is not possible from a sheet material that cannot deform. (This is also why you can't form an accurate flat map of the world. See this Numberphile video about Gaussian curvature for an easy-to-see explanation using pizza)

    So anyway, here are the results thus far.

    PETG sheet

    The PETG sheet by itself was immediately out of the running. It is much too clear. However it is very flexible and easily cuttable with a box cutter. It became a nice substrate for some of the other materials that couldn't hold their own shape.


    This is very promising. I cast 1"-diameter 2ft long tube in a D-profile and used it as a diffuser for the "helixMetal1" lamp.

    It turned out pretty well, but absorbed too much of the light. I think making a thinner shape that sits above the LEDs by some air gap is the next experiment to try.

    Privacy glass film

    The privacy film is some of the best material tested so far. It is a thin film (~4mil) made of vinyl I think. Since it is a flexible film, it needs to be attached to a structure. It worked wonderfully on the edge-lit acrylic of the "ufo1" lamp.

    To give the film structure, I bonded it to the PETG sheet using spraymount adhesive. This worked well and allowed me to create some very interesting diffusers that looked great.

    I'll definitely be exploring uses of the privacy film more. It comes in a variety of patterns, which could be very useful:

    and since I think it is vinyl, it should cut well on the Design Lab's vinyl cutter.

    Laser-cut Acrylic Sheet

    Acrylic sheet is probably the first material people think of for LED diffusion. Frosted acrylic works well for flat surfaces and edge-lit clear acrylic can look pretty awesome too.

    But my stuff is curves, so what to do? One answer is heat-bending the acrylic. I have had some success with this, but I've been trying to stay away from processes...

    Read more »

  • Playing with Capacitive Sensors for Buttons

    todbot05/05/2017 at 23:13 3 comments

    I made a quick capsense button PCB for the CAP1188 capacitive touch chip . I intentionally followed none of the recommendations for designing capsense buttons. But I did design it so it would easily plug into the Adafruit breakout board which can nicely live on a small solderless breadboard with an Arduino Pro Micro.

    To make it a bit more usable, I covered the bare copper with a sheet of kapton tape.

    When running the simple test sketch for the chip, I discovered just how bad the board design was. Pretty much any touch would trigger multiple inputs. But after reading the CAP1188 datasheet a bit, I made a small config change of

    cap.writeRegister(0x1F, 0x1F); // addr 0x1F set sensitivty to 0x1F (4x, default 32x)

    to reduce the sensitivity, it ends up working out pretty well.

    I may end up using this board as a tester, but I do really need to redesign it. :-)

  • Lamp prototype #5: "woodArc1" (unfinished)

    todbot04/21/2017 at 23:55 0 comments

    This week's lamp I'm calling "woodArc1". It consists of a two mirror-image pieces of curved CNC'd plywood that contain channels to hold a thin aluminum bar and a thin diffuser sheet. Three strips of LEDs are affixed to the aluminum bar. That sandwich of materials is then embedded in a wooden base (currently a 2x4 scrap) that will house the electronics.

    This was one of my first designs but only now have I gotten skilled up enough with Fusion 360 CAM and CNC on the ShopBot (thx Dan!) to actually realize this. I'm pleased the end result looks pretty close to the original design and the renders.

    The three LED strips are comprised of two WWA (three color temperatures of white) and one strip of RGBW (a 4-channel variant of the popular WS2812/Neopixel strip). This means we can do RGB colors! A first for the lamps.

    To join the two WWA strips together, I created a new 20mm 180º NeoJoint board. Again, thanks to the Othermill, I can create these on-demand (and a make a few extra just in case)

    To create the wood pieces, I took my CAD design in Fusion 360 and with the help of Dan I created a CAM path for the Shopbot. We then milled out the two pieces from 1/2" baltic birch plywood.

    One problem we had was chip-out of the thin edge pieces (as seen in the above image). Part of this we think was due to the endmill being a little dull, part of it because the 1/4" endmill wasn't suited for delicate work. The next time we do this, it seems we should use the same 1/8" endmill we used for the channels for an initial pass. before switching to the 1/4" for the cutout.

    With the wood parts cut out, I spent some time sanding them and using some wood filler to attempt to fix the chip-outs. And then it was time to assemble it all. I hand bent the 1/16" aluminum bar and used 5-minute epoxy to affix it to the wood pieces.

    The original design had 1/16" channels but we created 1/8" channels because that's then endmill we had. In general this was a better solution I think, but it did mean I had some play with the 1/16" aluminum, so I used clamps and wood discs to attempt to push the metal bar against the outer edge of the channel. It mostly worked but was fiddly.

    The electronics driver hasn't been addressed yet, so there's this little bit of embarrassment at the back of the lamp. :-)

    While it's not done yet, it's looking pretty good. The design is perhaps a bit thick for a desk lamp. I may be able to thin it out, or use this idea for a floor lamp.

  • Lamp prototype #4: ufo1

    todbot04/08/2017 at 19:11 0 comments

    This week's lamp is an experiment with circles and laser-cut acrylic & plywood. It emits light radially from both its inner and outer edges. Thus it is also a first attempt with what I'm calling "negative space" lights, where the lamp defines and illuminates an internal region that doesn't contain emitters. In this simplest case, it's the center of the ring.

    This lamp's construction is essentially a "sandwich" of an acrylic inner ring encapsulated by two plywood outer rings. The whole assembly is held together in compression by long machine screws and aluminum standoffs. It can be placed on a table or hung against a wall. The LEDs side-emit through the acrylic to create a halo of light that bounces off the surface the lamp is on. The white faces of the inner ring emits a soft glow. The feet can be swapped to be low or tall, depending on the light bounce effect desired.

    As with all these lamps, this one is dynamically controllable. Primarily you can control the "arc" of light that is emitted by changing which LEDs are turned on, as in this video. (And like all these prototypes, this is not the intended UI, just a simple set of potentiometers)

    The LED strips are mounted both facing inwards and facing outwards, placed in a channel created in the inner acrylic layer. The innermost acrylic is clear and you can see the LEDs from the outside when they're in their channel.

    The inner and outer rings of acrylic (which would normally be free-floating) are registered and held in placed by 3 pairs of screws that also go through the outer wood layers. These wood layers cover the LED channel, lock the acrylic rings in place, and keep the LEDs secured without needing adhesive.

    (In the above image, you can see the temporary UI & LED driver board from before that's rather unceremoniously foam-taped to the bottom)

    Edge-lighting Acrylic and Diffusion

    If you've ever tried to edge-light acrylic sheet with LED strip, you may have noticed a problem. LED strips are typically around 10mm wide but standard 1/4" acrylic sheet is only 6mm wide. This is enough to cover the 5mm LED but not enough for the entire strip. If you want the acrylic to completely cover the strip, you need to use two 1/4" sheets. But then the seam is directly over the LED, and that looks crappy. What I like to do is take two 1/8" sheets and use them to sandwich a 1/4" sheet.

    This creates a 12mm wide structure that completely covers the strip and creates a nice edge-light effect. By using different types of acrylic for the 1/4" vs 1/8" sheets (as I did here), you can create different effects. In this case, I wanted the light to come directly out but have the upper and lower ring faces glow. To accomplish this, I used clear acrylic for the 1/4" center edge-lit sheet and 1/8" frosted white acrylic for the top and bottom pieces. The result was pretty nice, but the edge-lit acrylic edge faces needed some diffusion. To solve this, I finally got to use the roll of frosted privacy screen film I got off Amazon. It works great!

    This film is meant to adhere to clean class via static cling. Between the thinness of the 12mm (1/2") strips I made for the ufo edges and the fact that edges of laser cut acrylic aren't perfectly smooth, static cling wasn't going to keep the strips on. It turns out, coating the diffuser film strips with a light coating of spray adhesive made them stick great. The stuff is clear so no optical issues and it's repositionable for a time after spraying, making it easy to apply the strips around the curve of the ufo.

    The end result turned out pretty good and matched up well with my initial CAD sketch.

  • Lamp prototype #3: helixMetal1

    todbot03/31/2017 at 23:16 1 comment

    This week's lamp is called "helixMetal1" and is a first experiment with spirals and helixes. This lamp continues the material exploration of bent aluminum bar, wood base, flexible WWA WS2812 LED strip and my simple LED driver board.

    Here's a small video showing it in action:

    As you can see, this lamp is comparatively small. It's probably one of the smallest I'm going to create. It could handily work as a desk lamp, but I generally am thinking larger and want to build a few floor lamps after this. Structurally, this lamp is exploring the tightest radius possible with these standard LED strips. I think 75mm diameter radius is about as small as you should go.

    This prototype has three potentiometer knobs to play with the capabilities of the lamp. Those knobs control:

    • Overall brightness
    • Amount of LEDs lit (starting from top going smoothly to bottom)
    • Color temperature from amber through warm white to cool white

    Like previous prototypes, the electronics are purposefully exposed. I initially was a bit embarrassed by this but now I'm kind of liking the aesthetic. My original intention was to hide the electronics but maybe they get enclosed in something clear? (Maybe potted in clear resin even?)

    This lamp also does not show any diffusion experiments. Next week is documentation for that. I have some potentially promising results and an interesting new idea. Stay tuned for that.

    Some of the challenges I have been facing while working on these lamps:

    • I still haven't had time to get on the Shopbot to try some of wood-based ideas. Not a huge issue, but I'd like to get a feel for how that material works as a 3d material (instead of sawing flat stock like you do without a CNC mill)
    • Bending aluminum bar accurately requires more than jig when exploring. Some sort of mechanism. I think this bender on Amazon would work and I think I'll order it now. It's difficult to find a non-pipe bender that'll work for flat stock.
    • I also haven't found a good way to collapse the UI to allow ease-of-use but still expose the dynamism and playfulness these lamps are capable of. A bank of knobs is fun for nerds but for general use it won't do. But maybe like the exposed electronics it's to be embraced?
    • Photographing LEDs is an ever-present challenge.

  • New lamp driver board: all pots

    todbot03/31/2017 at 22:09 0 comments

    The lamp drivers I have been making for ILOVELAMP are very simple carriers for the following:

    • Arduino Pro Micro
    • Power jack
    • LED output jack
    • Various sensor inputs (knobs,etc)

    I chose a Pro Micro because I wanted a 5V microcontroller that had: a decent amount of I/O, analog inputs, pin change interrupts on most pins, I2C/SPI, easy to program / built-in USB, and good support with FastLED. The ATmega32U4-based "Pro Micro" is fits most all these and you can get a 5-pack from Amazon for $27. I don't need or want BLE or WiFi yet (or potentially ever) and didn't want to deal with the hassle of 3v3 to 5V conversion for WS2812s.

    The first two of these lamp driver boards I made explicitly had mounting for standard rotary encoder knob inputs. I love rotary encoders and thought they could be a good input method for the lamps. After using them for a few weeks, I think there are much better alternatives.

    One obvious alternative is potentiometers. So the current board I designed and am using is a smaller version with pots instead encoders and has the ability to drive two LED strips more easily.

    Here is the layout of the previous board and the new board.

    I'm still keeping the traces exceedingly thick to make Othermill milling and soldering faster and less error-prone.

    Here's the new board milled and populated.

    A trick with the Othermill: try to always do a single-sided board. If you can't get single-sided to work, perhaps you can get away with a handful of "traces" on the other side that you then wire as jumpers. That's what this new board has for the pot wipers. Notice the three white wires on the top of the PCB. These are the "bottom" traces (colored blue) in the board layout above.

    Another Othermill trick: put your traces on your "top copper" layer and your through-hole components on the "bottom" of your PCB. Yes, you can mill the bottom of boards, but it's easier to think of the main copper layer as the top, even though with through-hole components it'll be on the other side.

  • DIY Linear Encoders for Slider Knobs

    todbot03/29/2017 at 22:25 0 comments

    Along with experimenting with lamp shapes, materials, diffusers, and LED types, I really want to explore different input methods for controlling these lamps. They have the opportunity to be so expressive, a simple on/off switch or dimmer seems too restrictive.

    That's why my initial test board to drive the LED strips also had three rotary encoder knobs on it. I feel rotary encoders are more interesting, since they offer "infinite" rotation and effectively report the delta of the angle rotated. Unfortunately commercial rotary encoders have fairly low PPR (pulses per revolution).

    So let's build our own encoders! But instead of rotary, what if they were linear? Can we make our own sliders? And if so, can they be made on a curve? Turns out, the answer to all these is yes.

    In use, I'm imagining the encoder strip is mounted stationary and the slider knob is the PCB with the optointerrupters. I think that can be made robust. The cable to the interrupters can be made light. (only four wires are needed) And it would allow the encoder strip to be curved to follow the shape of a lamp. The interrupters used in the test are some of the most common (and thus the cheapest) but they are quite large for this use. The "slider knob" PCB could be made *much* smaller. For instance, here is a comparison of the interrupters used in the test and the super tiny interrupters used in some digital cameras:

    So tiny!

    The test circuit was created by mounting two standard optointerrupters on a PCB and making an interrupter strip on the laser cutter. This created a quadrature signal just like a regular rotary encoder. So, the standard Encoder Arduino library could be used to parse the output of the interrupters. The code used in the above example is on the ILOVELAMP github as "diy-linear-encoder-test0.ino" so you can see how simple it is.

    The schematic & PCB for this test is equally simple:

    One thing I neglected to remember when I first made this PCB on the Othermill, is to use a single-sided board blank when milling a single-side board! If you have *any* through-hole components, they will short together on the unused (but covered in METAL) side of the PCB.

    Ooops. I ended up frying two optointerrupters but it was a good reminder about always checking what kind of PCB blank I'm using.

  • Lamp prototype #2: "archMetal1"

    todbot03/18/2017 at 01:27 0 comments

    This last week has been spent getting more up to speed tools like the ShopBot and designing lamps that can be accomplished using tools available in the Design Lab. This next design prototype is called "archMetal1".

    This design is a better platform than the first lamp for testing flexible but structured diffusion materials (plastic PP & PET sheets, maybe velum, but not cloth or plexiglass). The design consists of a main metal arch embedded in wood, with the LEDs attached on the inner side of the arch. The diffusion material attaches with standoffs from either the centerline or edges of the metal bar, like this:

    Can we prototype this up in a few days? The design specifies a 4"-wide bar of aluminum at 1/8" thick and 48" long, sunk into a 9"x5"x2" wood block. All I had was 2" x 1/8" x 48" aluminum bar. This should still be wide enough to demonstrate the design and for future diffusion experiments.

    That width turned out for the best given that the Design Lab doesn't yet have the metalworking tools needed and I don't have full command of the ShopBot yet to make my own tools. I think this bender might work for me in the future. For this prototype, I faked up a few metal benders using scrap wood, based on what I've seen on Youtube, particularly this video:

    These benders worked up to 120º bends but I did end up manhandling it quite a bit to get it into the shape I wanted. And even then it's not very even due to the lack of precise tooling. Oh well, this is a prototype after all. After a small amount of sanding, the U-shaped bar was mounted to a block of solid wood.

    The next step was laying out the LEDs and wiring them up. The original design calls for four LED strips arranged as two pairs, with space in between and on the sides. With the smaller 2" bar I reduced the number of strips to two so I could have the spacing I wanted for diffusion standoffs. To help with wiring, I quickly made a special NeoJoint splitter in Eagle to accommodate the spacing. After a 2-minute milling on the Othermill I had it and It works great. And it looks pretty neat:

    I also made an updated version of the rotary encoder test board. It's lower profile and features a separate DC power input for easier stand-alone operation. It also swaps top & bottom copper layer because on the Othermill, it's faster to mill top copper (saves a button press). In the image below, original test board is on top, the updated one is below it.

    I milled up one of these on the Othermill, populated it, tested and mounted it.

    All that's left is to upload a test sketch to the Arduino Pro Micro that's driving the lamp and power it up. This is the result.

    It turned out okay. With dynamic patterns on it, it really comes to life.

    Here it is in size compared to lamp 1. About the same height but much more stable.

    Next steps:

    • Gain control over ShopBot to try out some wood-based ideas
    • Mod this lamp to add diffusers

  • Week 1: first lamp idea done (mostly)

    todbot03/09/2017 at 23:36 1 comment

    After having this idea so many years ago, I finally have a desktop-sized extant version of it. It's pretty cool.

    It's made from cheap aluminum extrusion, a chunk of waste walnut, WWA LEDs strip, and my rotary encoder test board. It has several issues but the form exists and I can use it as a platform to bounce future ideas off of. And now I can finally put this idea to bed after having it rattle around in my head for so long.

    This prototype uses two strips in parallel, so I needed to wire a cable to two strips. If you've ever soldered up stuff before, then you know wiring to *three* things is frustrating. But since we had an Othermill in the house, I spent 10 minutes designing a custom NeoJoints splitter and cut several out. The resulting solder up was super easy.

    To form the arc, I used an existing MDF form that was laying around the Lab. While its radius was too small, it was actually good to use since the aluminum bar springs back after forming.

    Next week: a different design and diffuser explorations

View all 14 project logs

Enjoy this project?



lomhow1234 wrote 03/14/2017 at 18:53 point

dude, i love lamp too xd

  Are you sure? yes | no

Benchoff wrote 03/11/2017 at 02:01 point

Are you just looking at things in the design lab and saying you love them?

  Are you sure? yes | no

michael.biggs.home wrote 03/11/2017 at 01:40 point

Hi Todd, are you familiar with the magnetic angle sensor chips? Those can be used to make a very high resolution rotary encoder. Not as cheap as the mechanical versions, but reasonable.

  Are you sure? yes | no

todbot wrote 03/11/2017 at 03:22 point

Hi Michael,

I've been looking into them now after having discounted them for only being for motor speed uses. If you have a chip / dev board / eval kit recommendation, I'd love to check it out. Thanks!

  Are you sure? yes | no

michael.biggs.home wrote 03/11/2017 at 07:42 point

I haven't used one, but what I've seen is made by AMS, e.g. AS5030 8-bit resolution for $6.66 at DigiKey. You just put a little rotating bar magnet above the chip.

  Are you sure? yes | no

Jegan.J wrote 03/08/2017 at 10:17 point

Hi,can i able to connect 43 inches LED TV(1920*1080) to FleaFPGA Uno Board, and can i able to the sensor data display to the big LED TV

  Are you sure? yes | no

todbot wrote 03/10/2017 at 03:17 point

Hi @Jegan.J, this is not the appropriate forum for this question. You should try the HackChat:

  Are you sure? yes | no

Jegan.J wrote 03/08/2017 at 10:15 point


  Are you sure? yes | no

todbot wrote 03/06/2017 at 23:28 point

Hi @zakqwy,  That sounds like a really cool product.  And thanks that's very generous. I think I can get the Design Lab to order some for their stock. Do you have a link I can send them?

  Are you sure? yes | no

zakqwy wrote 03/07/2017 at 00:09 point

I picked up the 5500K high-CRI stuff (p/n RF5500K-96), it's $137 for an 8x11" sheet.

  Are you sure? yes | no

zakqwy wrote 03/03/2017 at 16:04 point

I picked up an 8.5x11" sheet of PhosphorTech remote LED phosphor material a few years ago with no specific project in mind. It's not cheap and I'd be happy to donate a bit to this project if it helps your exploration. Shine blue light at it and it emits white, in a quite satisfying and diffuse manner. 

  Are you sure? yes | no

todbot wrote 03/07/2017 at 19:11 point

Neat, thanks! wow that stuff *is* expensive.  I'll think about how I can use it. I'm not sure yet how I could use a phosphorescent material but wow that stuff looks cool.

  Are you sure? yes | no

zakqwy wrote 03/07/2017 at 19:32 point

Yeah, it's intended to be used in tiny quantities for white LEDs. I've found it produces an excellent surface emitting/diffusing effect when paired with bright blue LEDs. 

  Are you sure? yes | no

Simon Merrett wrote 03/09/2017 at 12:50 point

I've been wanting to make a lamp by shining 405nm laser at phosphorescent surfaces because you could use transparent mounts and make the lights appear to be wireless.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates