'A Christmas Story' Leg Lamp


 Some of my favorite memories from childhood are of watching 'A Christmas Story'. This project uses OpenSCAD to create parts for a fan rendition of the leg lamp from 'A Christmas Story'.

This version borrows parts from the one by jetpuf. This version differs in that the lamp shade is more round and the 'leg' part has pre-made holes for wiring the LED.

Also, the lamp shade is customizable!











 Bill of Materials


 The instructions for constructing the leg lamp are as follows.

Print all the 3D models linked to in the 'Resources' section. Note: Print the 'leg' part with zero infill (and plenty of walls) to ensure you can run the wires through it. The heel of the leg print is pretty delicate, so there is a model of just the heel in case it breaks off during assembly. Either print them in the final colors or paint the per the requirements of your project.




This project is powered by a standard USB A cable (5V). The a USB A end of the cable is plugged into any cell phone charger or similar port that provides 5V. The other end of the USB cable is cut and 5V and ground wires are stripped about 3mm to 4mm. These pins are usually red and blue in USB cables. The other two wires from the USB cable are not used and cut at the point where the other two (5V and ground) are exposed from the outer USB cable.

It is highly recommended that the two remaining wires, when the USB A end is plugged, actually give 5V with a multimeter.

Prepare the LED by tinning both leads. Tin both leads of the resistor as well. Cut three strips of the thin wire that are the length of the leg part, plus the height and radius of the base, plus 40mm or 50mm longer at both ends. You will thank yourself for that 45ish mm during assembly. Strip two of the wires and tin them. The third wire is used to pull the other two through the holes in the lamp shade, leg, and base.

Here is a wiring diagram:


Solder one leg of the resistor to the cathode (ground/shorter) lead of the LED. Solder one of the wires to the other end of the resistor. Solder the remaining free lead (anode/longer) of LED to the other tinned wire. Keep track of which wire is attached to which lead of the LED. Color coding helps; red for positive/anode and some other color for the negative/cathode lead of the LED.

One mnemonic I use to remember which leg is positive/negative is: On your report card, A(node)+ is better then a C(athode)-


For this next step, be careful not to cause a short circuit by letting the LED leds touch. Test the light on a breadboard, with the tinned ends of the USB cable, to ensure the connections are good. If it lights up then continue. If not then check the solder connections.

IMPORTANT: While the wire ends are still free, use heat shrink wrapping to insulate the LED leads. Insulating the resistor is also recommended. If heat shrink is not available E6000 works as an insulator too.

Pass the third (still free) wire through the lamp shade, leg, and base. Try threading the leg part first, as it is the trickiest.


Attach the lamp shade end of the third wire to both free ends of the two soldered wires. Keep the winding/twisting as thin as possible, since the whole thing has to pass through all of the holes in the 3D printed parts. Gently pull the third wire from the bottom of the base, which in turn pulls the electronic components.

Before making the final solder connection, use a small dab of adhesive to partially attach the 3D printed parts. Also use some adhesive to fix the LED to the lamp shade at this point. That keeps the LED from coming out of the top while making the last connection. For this project E6000 was used as the adhesive.


This next part is tricky since groove on the bottom of the base, where the USB cable run, does not have much wiggle room. Measure where the LED wires and USB wires will connect. Cut and tin all four wires at that spot. Place some small pieces of heat shrink on the wires with the most room; almost done. Solder the LED wires to the USB wires matching 5V with 5V and ground with ground. Move the heat shrink over the two solder connections and heat.

Plug the USB cable into a power supply. If it lights up, then continue. If not check the soldering on that last connection.


Lastly, use adhesive to more permanently connect the 3D printed parts and keep the USB cable in the bottom base groove.


Software Prerequisites


Software Walkthrough

 The OpenSCAD cylinder primitive was used to make the holes for the leg part, which was imported as an STL file.

The real meat and potatoes of the project is the OpenSCAD code that is used to make the lamp shade. An example of how to make a lamp shade (or trumpet) shape was given by a fellow, Marc Brevoort on Facebook.

I was really impressed with Marc's geometric insight that created the trumpet shape. He pretty much came up with it as the rotated extrusion of the intersection of (a difference of two circles) and a square. o_0

To get a better understanding of what was doing what in his code, I had to create an OpenSCAD Customizer. See the source code link in the 'Resources' section. There is an online (Thingiverse) Customizer too, also linked in the 'Resources' section.



Going Further

 The following are some ways to take this project further.

  • Make a name plate for the base.
  • Add more electronics to make the lamp cordless and run off a rechargeable battery.
  • Add cutouts to the lampshade.
  • Have the leg wear a different shoe.

Date Created

Sat Jan 04 11:42:50 CST 2020

Last Updated

Mon Jan 05 12:15:22 CST 2020

back    |    top