Warp Core Table Lamp Finished!

This project is part of what first got me to get my first 3D printer, but I got discouraged at the time with print quality and later by my replacement printer being too small.

But I finally did it!

A while after I originally wanted to create it, someone updated the quality of the models and manufacturing methods, making it more feasible to do.

So, earlier this year, I posted about how I had printed the parts (though it took me a couple attempts).

Failed print…. this is where I found out Octoprint doesn’t like 12+ hr prints

3D printed parts, before I took the time to reprint the failed reaction chamber.

One of the nice things about this version is that most of the parts were broken into easier to print and clean up pieces. There was a bit of a tradeoff, though. It required coat hanger wire for some parts and replace others with stainless steel rods.

It was easy enough to buy the rods, and purchase and cut the steel coat hangers… but I was unable to cut the rods myself. I ended up supporting a local business and contacting my local machinist (who I’ve gone to before when there were metal parts I couldn’t fix or fab myself). It was kinda pricey… but precisely and cleanly cutting and finishing stainless steel is no joke, and this guy did an excellent job of it.

Unfortunately, I found out later that the lengths I have him did not precisely match what was needed for some of the 3D printed parts.

This led to a bit of experimentation with modifying the 3D models and reprinting the “tension members” to “cheat” them to a length that would work with the steel rods. That took a bit longer than it should have due to unexpected 3D printer problems.

Test fitting success!

By the way, if you’re wondering where the coat hanger wires went, they are inside those gray pieces around the clear section, spaced between the steel rods.

Getting the lights in there and getting them to work took a bit, but I finally finished that recently. The system runs off of an Arduino Nano board, with a small board to break the wiring out. Before I get to the final stuff, I want to share a lessons learned.

If you use a breadboard of any kind… check how the the holes are connected! For some reason I thought this board left the holes unconnected and that I’d have to spread solder between components to form connections. Turns out they were connected and it hadn’t occurred to me to look at the back of the board until after I had soldered the resistors on. This is also why it is a good idea to buy spares of parts (or multi-packs) when working on a project. Otherwise it could cost you a lot of time and extra shipping.

Great access for wires, right?

A new board and a lot of soldering later, this is what I ended up using:

Ignore the putty, they were holding the connector pins on for soldering

I realized that this time on a project I didn’t want to trap myself with my directly soldering disparate wires to the board, so I added connector pins so I could have removable cables for disassembly/modification. I wasn’t gonna bet on getting it right the first time!

To keep the count of LEDs and wires down a bit, I used the diffusers someone else had designed (links at the bottom).

The circular indentations are where the LEDs go.

It uses a “light pipe” design to spread the light around in a mostly circular pattern. There was even a special one for the reaction chamber…but I ended up not using that.

Wiring the LEDs took a while, but it was more tedious than it was difficult. I think it was mainly because I took the time to plan out what I was doing before I started in more detail, rather than trying to wing it and label a bunch of wires afterwards.

Paper, colored pencils, and a straight-edge go a long way towards helping planning. I used this to make a simplified guide for wiring… but I cleaned up after finishing and don’t know where it currently is.

To avoid going insane with trying to glue in each LED and try to solder all the connections with reasonable spacing, I designed and printed spacers that I could simply stick the wires of the LEDs through. I think the wires would have held, but to make things simpler on myself (and so they wouldn’t push out during soldering) I hot glued them after putting them in.


To drastically cut down on the number of wires required, I soldered all of the negative terminals to a common grounding bus bar made from a bare copper wire.

10 wires enter, one wire leaves.

Referencing the drawings I had made earlier, I soldered some ribbon cable to the positive terminals, allowing me to have traceability through color-coding. The wiring is mirrored on the opposite side, so that each control output from the electronics board controls the lights in the mirrored position on top and bottom of the warp core lamp. This keeps the number of control pins needed down, and simplifies the coding.

Wire the rainbow… to save yourself headaches later.

These lights on the spacer bars fit snugly into the diffusers.

The top section. Easily identifiable by the big red grounding wire because I forgot to connect the grounding wire first. Also…snip your extra wire leg length to reduce problems.

As mentioned in the note above, I forgot to wire the ground wire first on the top section, meaning I had to add it in last, connecting it at the far end rather than the close end. In the bottom section I did it first, because I really needed room for the power/programming USB cable to fit in.

These segments then slid into the corrugated sections.

This was actually when I realized the grounding wire blunder. All positive and no negative wires.

An intermediate stage for no reason other than I like this picture.

Here’s how the wires connected up before the final closing of the casing.

Note the removable connectors for all the wires in case I needed to adjust anything. The colorcoding made connecting them to the board a breeze. The USB cable goes out the bottom for programming and power.

Now we get to where I kinda got angry. Here are the parts just before I was planning to connect the last couple wires and close it up.

Before I realized my planning failure.

Look at the circuitry. Look at the diffuser that’s supposed to go into the central reaction chamber. Now look at the reaction chamber. Do you see it yet?


I had planned for this somewhat with the board, but hadn’t fully taken into account the flexibility of the wires or the added height of the removable connectors.


1) the diffuser isn’t 100% necessary (though the light would look better in that section

2) the diffuser was weak


I kinda went barbarian on it in my desire to finish. I ripped the central diffuser apart, and just shove the LEDs in the compartment with the rest. Also, after a test fitting and plugging it in, I realized that the arduino had red LEDs that clashed with the color scheme, and put some electrical tape over them to get rid of the distracting red glow.

I closed the thing up… and then got to do something that still makes me chuckle a bit.


I pulled out the rubber mallet and began gently tapping on the end of the warp core to make sure all the rods were seated as well as they could be.

After a bit of updating some code I wrote for this years ago (and cursing at two different computers for a few hours because they didn’t want to behave with uploading to the arduino) I finally got it turned on.

Engineering to bridge, the reactor is online!

I went through a few iterations of code and pseudocode (and had to remind myself that with this board the counting started at 2 rather than 0 or 1), and finally got it to a state I liked.

Here’s the initial light pattern I went with:

I’ve got an intermediate version of this one somewhere with an extra delay built in after the FOR loop because I didn’t like that the light jumped immediately from the bottom LED to the top again. It just seemed jarring.

Here’s what I’ve most recently decided to use:

This one has 2 or 3 “waves” at a time passing through each end to the center. It looks less like a jarringly looped GIF than some of the other iterations I went through.

I originally planned on plugging this into the raspberry pi that I control my 3D printers with, but apparently Octoprint gets confused by the extra USB connection, so I have it connected to a USB wall adapter for the moment. Though I have realized I can plug it into the USB adapter in my car as well…

I hope you all enjoyed this, and I’m glad to have finally finished this project after years of wanting to build this, and I was finally able to take this off my project board.

Reference Links For Construction:

Here’s the original I saw that inspired me years ago:

Warp Core Table Lamp by ThePlanetMike

Here’s the one I actually made:

1701-D Warp Core (HI-RESOLUTION) by Novel_Mutations

Here’s the LED Diffuser I used to reduce the number of LEDs needed in the build:

LED Diffuser for High Resolution 1701-D Warpcore by Novel_Mutations

My github page for the light sequence on the arduino:


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s