Exploding Death Star Lamps

As a big Star Wars fan, I was inspired by other makers (here, here, and here) to modify a pair of IKEA PS 2014 lamps into motorized, exploding Death Star accent pieces for my kitchen. My kitchen has plenty of lighting already, so these are not designed as light sources – more for entertainment and conversation. While others had many clever ideas about how to enhance these lamps, I ultimately settled on some unique approaches after experimenting.

I purchased the lamps about 11 months ago, on a whim, while at an IKEA far from home (I don’t live near one, so it was a rare visit). I’m ashamed to say, they sat on the floor of my office for at least 9 months until the guilt and nagging feelings became too much to bear. The lamp is designed to have the user pull a drawstring dangling from the bottom to expand and contract the lamp panels to adjust the amount of light to suit the need. I (like so many before me) immediately saw it as an “exploding Death Star”. Unsatisfied with the idea of pulling strings, I made it a goal to automate the movement and make the trigger touchless. Additionally, coloured lighting would be required to complete the effect.

For this project, I’m really proud to say that most of the components were either fabricated or pulled from my personal supply. Very few components needed to be purchased and the total cost for modifying both lamps was around $100 USD + about $70USD for each lamp. Lately, I’ve been working hard to find creative ways to use up some of my surplus components/material as they are growing out of control.

Painting

The first step was to paint all the panels before attaching them. A grey primer coat on the front and back was the foundational first step. From there, I closely followed the tutorial outlined in this video from SopranoGI for creating realistic exterior paint pattern. It was slow and tedious, especially since it had to be done for both lamps. Masking tape and more spray paint created the long/lat lines. Thin-tipped paint markers helped to make the black and white “windows”. I found it easiest to keep the lamp assembled and place it inside a bucket to keep them from rolling.

I didn’t trust my unsteady hands to draw the circles needed for the laser weapon dish, so I went to the Cricut and created some thin, perfect circles to apply onto the surface of the lamp. I cut the vinyl along the lines of the pieces to allow them to separate. I think it turned out quite well – much better than any freehand painting I could have done.

Labeling each segment with some painters tape at the top was a critical step here since I ended up attaching and removing the panels many times during the next steps of the fabrication. Removing the labels was the very last step in the process for this reason.

Interior

I used a rapid prototyping approach to iterate on the design for fabricating the interior structure to accommodate the motor drive. I used Tinkercad to design the 3D parts from scratch.

v0.1 – Add a stepper Motor

Upon careful inspection of the inner workings of the lamp, I felt the best approach was to replace the pull string and slide rod with a threaded rod and use a stepper motor to raise and lower bottom platform that the side panels attach to.

To make room for the bulb in the top, the stepper motor needed to be at the bottom, which meant it would be suspended. In order to support the suspended motor and keep the platform from spinning, I bought a pair of 6mm rods and a pair of short linear bearings (LM6UU) for each lamp. I 3D printed an enclosure for the motor and a mounting bracket for the top and included drill holes to provide a load-bearing mechanism (rather than trust a friction fit. This assembly was narrow enough to avoid any interference with the expanding/contracting panels.

The stepper motor would drive a T8 threaded rod with a brass nut. This came with a right-angle bearing (KLF08) that I needed to keep the top aligned. I’ve not had good luck with the couplers provided, so I bought some solid steel 5mm to 8mm couplers that has a low profile to minimize the space needed.

My idea was to harvest the sliding bottom platform from the lamp and use it as the bottom connection point for the moving panels. My 3D-printed platform was designed to sit inside with the brass nut and the linear bearings. This would require some minor removal of some plastic parts to make the thread hole in the middle and bolt holes for afixing the 3D-printed part to the bottom platform.

v0.15 Prototyping electronics

I was thinking of using an Arduino Pro Mini and a Pololu DRV8834 Stepper Motor Driver as the main electronic components to drive the Stepper Motor. The Pololu board was left over from another project where I switched directions to use bigger stepper motor drivers (hindsight – I may not have needed the bigger ones since these worked so well!). I also scavenged 2 old Sharp IR distance sensors (similar to this, but not sure they still make the model I have) from my collection that I thought would be a good fit for a touchless trigger. Finally, I found 2 pair of stepper motors, but opted for the smaller of the two, even though it had no documentation. After some research, I identified it as a Teco DSH40-series motor. Smaller and lighter weight was key for this project, so it was the best choice, assuming they actually worked.

After a lot of trial and error I finally got the assembly working. I spent days attempting to debug a problem with the stepper motor only to find that I had the wires connected to the wrong pins on the driver board (off by 1)! The open source Sharp IR sensor library for Arduino worked even though I had a different model, but I had to modify it to meet my needs.

This setup gave me an opportunity to play around with the various settings of the stepper motor board to find the optimal configuration. I also wrote some custom code for the Arduino that allowed the stepper motor to ramp up and ramp down for every move rather than abruptly stop. This made for some interesting sound effects from the stepper motor, but made the motion look more elegant.

v0.2 Powering the electronics

Both of my electronic boards and my stepper motor require a stable 5V supply, so I started investigating options about how I could get a 5V DC from the 120V AC plug. I came across several similar products, but settled on the Nyce LampCharger which provides 2 USB outlets from a screw lamp outlet. This would give me the 5V DC with enough Amps to power the Stepper Motor. It even had a nice on/off switch built in.

The Nyce LampCharger also allowed me to screw in a Govee LED bulb which I could use to provide multi-coloured and patterned illumination. I already have many Govee products in my home, so this would work nicely with my existing scheduler.

Unfortunately, after purchasing them and experimenting, I found that the Nyce LampCharger + Govee LED bulb did not fit. No matter how tightly I screwed the threads in, I was still a 1/4″ too long. I also knew that running a bulb so close to the frame would cast an unwanted shadow and could potentially cause warping over time due to the heat (yes, even LED bulbs get warm).

I briefly considered some other options for building my own low-profile converter for 120VAC to 5VDC, but decided against it, mostly for safety reasons.

v0.3 LED Array

I liked the idea of using USB as the 5V power source since the plugs are small, plentiful and modular. However, I’d need a smaller light source to fit within the allotted space. I rummaged through my spare parts drawer and found unused strip of AdaFruit Mini Skinny NeoPixel 144 strips. These are dense LED strips with individually addressable LEDs that require only 3 wires.

I experimented with some Arduino code and found a happy mix of high brightness with moderately low Amp pull that met my needs. I took the opportunity to create some light pattern effects: For opening the lamp, the LEDs use random intervals to create a fiery explosion effect using Red and Orange colours. For closing the lamp, the LEDs glow green and perform a “chasing” effect to represent the main weapon fire sequence. The Adafruit-provided Arduino library makes these things very easy.

I was able to quickly fabricate some platforms for mounting 6 strands of 10 LED lights. It required printing multiple 3D-printed parts with tight tolerances and assembly with nuts/bolts, but it came together quickly. I added cross-bars inside the U-shaped piece since I would no longer need to make room for a bulb, which helped strengthen the part.

I cut the LED strips to length and soldered wire to connect them together in a long chain. I was a bit worried about the size of the wire and their ability to handle the required current (I’ve been burned by this before). Solid-core wire was inflexible and I kept breaking the solder points, so I switched to 26 AWG stranded wire and was able to thread a few strands through tiny holes on the LED strips to provide a mechanical attachment which was much more resilient when bending. I also applied dabs of hot glue over the solder points in order to prevent the wires from touching during bending.

v0.4 Power Revisited

I adjusted the plan again and decided to scrap the Nyce LampCharger after discovering a combination of two products that would allow the same capability with a much smaller form factor.

  1. A Lightbulb socket outlet adapter. It is a 2-pronged outlet that screws into a standard bulb socket. It’s very low profile and inexpensive. No electronics – just extending the wires inside the bulb socket.
  2. A USB Wall Charger. I had a huge selection to pick from, but these were an especially good fit because they were only 1 inch tall, had the USB outlets off to the side, where I needed them, and it provided up to 2.4 Amps which was more than enough to run all the LEDs and the motor simultaneously.

This was a much better fit for my needs than the Nyce LampCharger because it was lower profile and left more room for the LEDs.

My next task was to harvest some unused USB cables and use 2 of the 4 wires to connect to the boards to power them. This ended up being a much bigger job than I expected as I was discouraged to find that not all USB cables are created equal! Most have very skinny wires, incapable of handling the 1+ Amps of power that I needed to drive the motor and LED strip. After cutting open almost every cable I own, I finally found 4 that were satisfactory for my needs. Tip of the hat to companies like LG and Samsung that make great cables using proper gauge wire to handle the high amps. Apple – let’s just say I continue to be disappointed.

v0.5 Electronic Board Mounting

I had to find a way to mount the Arduino and Stepper Motor Driver in a way that securely held them in place, helped to manage the many wires connected, yet was module enough that I could uninstall/reinstall many times with little effort.

What I came up with was a pair of custom board mounts that would attach inside the U frame. they have narrow slots to allow a friction-hold of pins soldered to the board (for unused pins). This worked especially well because it gave me the added benefit of allowing air flow on top and bottom of the boards – especially important for the Stepper Motor driver board which can get VERY hot after continuous use.

v0.6 Modular Wiring

Based on my many years of experience with hobby electronics, I know that the ability to easily disconnect and reconnect components is key to a fast and successful problem resolution. Because of this, I like to add modular connectors instead of hard-writing components together with fixed-length wires. Ideally, these are small connectors that only fit one way to avoid accidentally flipping the wire and destroying a component.

For the final assembly, I soldered wires attached to modular connectors, cut to short length. I also modified the U frame design (for the 100’th time) to include slots for cable ties so they don’t slide.

v0.7 Moving Platform

In order for the panels to open/close, the bottom platform needs to raise/lower on a linear guide. For this, I had to make some minor modifications to the bottom platform to accommodate the screw thread and linear rails. I used a Dremel cut disk and sanding wheel to cut away the excess plastic needed for my 3D print to lie flat inside. I also used a drill press to carefully remove plastic from the hole the threaded rod will use, but not too much so I still had surface area for the mounting screws of the brass nut.

As it turned out, I didn’t have to do anything for the holes for the 6mm linear guide rails as there were already holes/spaces to allow these to pass.

v0.75 wire Management

I started to think about final assembly and wire management.

  • My plan was to thread wires between top and bottom through holes behind the LED arrays to ensure they did not obstruct the light or get tangled by the moving arms.
  • I opted for some 8mm OD-7mm ID carbon fiber tubes to act as wiring conduit for the 7 conductors that went down to the stepper motor (4) and Sharp IR sensor (3). I did not want these wires getting tangled in the threaded rod or impeding the moving platform. Carbon fiber is very light weight, rigid and a perfect choice for short-run conduit.
  • Placement of all the wires when fully assembled would leave little room, so I zip tied as many components to the frame as possible. Zip ties are easily cut if needed and are light-weight and inexpensive.

I also started thinking about aesthetics – the Sharp IR sensor would be protruding from the bottom and didn’t look great. I designed a rounded cover for it to make it look better and give it a bit of protection.

v0.8 Final Assembly

Final assembly required me to fully commit by performing some “no going back” steps.

  • I had to cut the 6mm linear rails and the threaded rod to length – easily done using an angle grinder with a cutting wheel.
  • I had to drill holes in each of the 6mm linear rails with top and bottom holes 90 degrees from each other. I went through several drill bits and lots of cutting fluid, but was finally able to grind flats and make holes in the hardened steel (next time, I’ll use something softer!)
  • I had to cut the carbon fiber tube to length and cut a notch at the bottom to allow the cables to enter.
  • I used E6000 glue to affix the components for greater strength. I love this stuff as it’s strong, but not permanent – a bit of heat and I can scrape it off, if needed.
  • I ground down the shaft of the stepper motors to minimize the length of the assembly.

At this point, I had a pair of really strange looking towers that resembled some kind SciFi weapon. Lots of testing at this stage to ensure everything was working as designed. With their rounded bottoms, my only option was to keep them upside down. The delicate LED strip wires were giving me fits at this point and I had to make multiple adjustments to keep them stable and working as expected. Luckily, they are fairly easy to diagnose, but fully assembled, I was at a disadvantage for resolving them.

v0.9 Adjusting the Panels

Testing with some of the panels on revealed the need to remove some material at the bottom. Because the stepper motor and Sharp IR sensor is protruding slightly, some of the panels won’t fully close and they crowd up around the bottom and start overlapping. To solve this, I took each panel to a belt sander and carefully removed some of the plastic to widen the hole at the bottom. At first, i attempted to make a rounded shape, but it did not turn out well, so I when with a straight cut. I used a ruler and kept griding each one until the length was 7/8″ exactly. As long as I kept each piece perpendicular to the belt sander, I’d have consistent results with all 20 panels. Afterward, I had to touch up the paint to hide the white plastic that I just exposed. The end result turned out really well.

Installation

After carefully removing the old pendant lights from the kitchen ceiling, I installed the new lamps.

  • I started with just the outlet and wire (light weight and easy to manage – tested with a regular bulb to confirm the wiring was good and power was flowing.
  • Next, I attached the screw plug adapter and USB brick
  • Then, I took the frame without the panels and installed, I connected the USB cables to power and tested to confirm everything was working.
  • After a bit of wire management, I assembled half the panels and tested
  • Then I installed the remaining panels.
  • I repeated the process for the 2nd lamp
  • I carefully measured and made adjustments to ensure both were hanging at the same height
  • I twisted the wires to have the weapon dish facing outward
  • I attached the top outer shell and I was done!

This process required about 4 hours because of the need to debug some issues with a bad connector, and a few stripped screws.

Links

Here is a link to the final version of the Arduino sketch.

Conclusion

Lots of fun hacking this IKEA product and making it my own. I enjoyed applying some previous skills and experience with stepper motors to make this project happen. In the end, I ended up fabricating almost all of the interior, except for the top and bottom platform that mounted the exterior panels. Here are some concluding thoughts about the build.

  • I’m trilled that I was finally able to use some of the components that I’ve been hoarding collecting all these years! I’m motivated to continue this trend for a while.
  • I wish that the Stepper Motor was more concealed inside the frame. the bottom only peaks out slightly, and it’s not very noticeable, but it will haunt me. I could have bought a smaller stepper motor that might have fit better, but the budget for this build was very low and I was trying to use up some surplus components. Also, I’m not sure a smaller stepper motor would have the torque required to move the platform with the weight of all 10 panels. Additionally, I think the panels might have prevented the Sharp IR sensor from working and I might have had to cut a larger opening even if it was completely concealed.
  • The use of the stepper motor was an excellent choice. I noticed that most others used things like continuously rotating motors or servos to move the mechanism. This requires the motor to remain on and pulling a lot of power to hold the panels open. With my design, I’m able to completely cut the power to the stepper motor and it remains in place due to the friction against the threaded rod. Also, the power and duration to raise/lower is equal and easy to dial in without the need for sensors that detect upper and lower limits. Plus, I can adjust the speed and do ramp up/down movements to give it a great looking movement which could not be done easily with a DC motor.
  • Interior paint – The primer gray interior paint and black arms look good, but it might have been interesting to paint them all chrome to get more reflection from the LEDs. Currently, I feel the matte finish absorbs a lot of the light.
  • Continuous light – I made the design decision to run the light animation only during and immediately after a movement sequence as it is intended to be an accent piece and not a light source. However, it would have been nice to be able to do both. However, triggering an open/close vs a change in LED would have required some additional design and components that I did not have on-hand.
  • LED Animation during movement – Unfortunately, the stepper motor drivers require a continuous pulse from the Arduino with precise timing. That means I was unable to have the Arduino multi-task and perform other operations while the movement was happening. So, I settled for turning the lights on, moving the arms, then running the LED animation sequence. It’s not terrible, but I might have been able to do more with a more powerful board, different stepper motor driver, or multiple Arduinos.

Leave a comment