The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Stack Light Base

Having external indications for the laser cutter’s internal status signals seemed like a good idea and, rather than build the whole thing, I got a five-layer stack light:

Stack Light - disassembly
Stack Light – disassembly

It arrives sans instructions, apart from the data plate / wiring diagram label on the housing, so the first puzzle involves taking it apart to see what’s inside. My motivation came from a tiny chip of blue plastic on the kitchen table where I’d opened the unpadded bag. Apparently, a mighty force had whacked the equally unpadded box with enough force to crack the blue lens, but I have no idea how the sliver escaped the still-assembled stack.

Anyhow, hold the blue/green lenses in one hand and twist the red/yellow lenses counterclockwise as seen looking at the cap over the red layer. Apply more force than you think appropriate and the latches will reluctantly give way. Do the same to adjacent layers all the way down, then glue the blue chip in place while contemplating other matters.

A switch on each layer selects either steady (the default and what I wanted) or blinking (too exciting for my needs). Reassemble in reverse order.

A Stack Light generally mounts on a production-line machine which might have a suitable cutout for exactly that purpose. I have no such machine and entirely too much clutter for a lamp, so I screwed it to a floor joist over the laser:

Stack Light - installed
Stack Light – installed

The tidy blue PETG-CF base started as a scan of the lamp’s base to serve as a dimension reference:

Stack Light - base scan
Stack Light – base scan

Import into LightBurn:

  • Draw a 70 mm square centered on the workspace
  • Round the corners until they match the 13 mm radius
  • Draw one 5.6 mm circle at the origin
  • Move the circle 52/2 mm left-and-down
  • Turn it into a 4 element array on 52 mm centers
  • Verify everything matches the image
  • Export as SVG

Import into Inkscape:

  • Put the perimeter on one layer
  • Put the four holes on another
  • Center around an alignment mark at a known coordinate
  • Save as an Inkscape SVG

Import into OpenSCAD, extrude into a solid model, and punch the holes:

Stack Light Mount base - solid model
Stack Light Mount base – solid model

The lip around the inner edge aligns the lamp base.

If I ever make another one, I’ll add pillars in the corners to put the threaded brass inserts close to the top for 10 mm screws instead of the awkward 30 mm screws in this one. More than a single screw hole in the bottom would align it on whatever you’re indicating.

Now, to wire the thing up …

The OpenSCAD source code as a GitHub Gist:

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
// Stack Light mount
// Ed Nisley – KE4ZNU
// 2025-01-03
include <BOSL2/std.scad>
/* [Hidden] */
ID = 0;
OD = 1;
LENGTH = 2;
BaseCenter = [100,100,0];
Base = [70,70]; // nominal, for figuring holes
Insert = [4.9,5.9,6.0];
PlateThick = Insert[LENGTH];
HolderTall = 24.0;
WallThick = 2.7; // outer wall of light base
LipThick = 1.5; // alignment lip inside light base
LipTall = 0.75;
CableOD = 5.0;
Protrusion = 0.1;
difference() {
translate(-BaseCenter)
linear_extrude(height=HolderTall + LipTall)
import("Stack Light – base layout.svg",layer="Base Perimeter");
up(Insert[LENGTH])
translate(-BaseCenter)
linear_extrude(height=HolderTall – LipTall)
offset(delta=-(WallThick + LipThick))
import("Stack Light – base layout.svg",layer="Base Perimeter");
up(HolderTall)
linear_extrude(height=HolderTall,convexity=5)
translate(-BaseCenter)
difference() {
offset(delta=WallThick) // avoid glitches on perimeter edge
import("Stack Light – base layout.svg",layer="Base Perimeter");
offset(delta=-WallThick)
import("Stack Light – base layout.svg",layer="Base Perimeter");
}
down(Protrusion)
translate(-BaseCenter)
linear_extrude(height=2*HolderTall,convexity=5)
import("Stack Light – base layout.svg",layer="Base Holes");
up(HolderTall/2)
yrot(90) zrot(180/6)
cylinder(d=CableOD,h=Base.x,$fn=6);
}

Comments

One response to “Stack Light Base”

  1. Stack Light: Optoisolator Boost Transistor – The Smell of Molten Projects in the Morning Avatar

    […] LEDs in each stack light layer require a current sink handling about 50 mA, far above the ability of cheap optoisolators based on […]