Posts Tagged CNC

Vacuum Tube LEDs: Noval Tube on a Platter

Replacing the hex nut traps with knurled insert cylinders slims the ends of the socket:

Noval Socket - knurled inserts - bottom - Slic3r preview

Noval Socket – knurled inserts – bottom – Slic3r preview

Making the raised part of the socket fit the 25 mm ID of a hard drive platter swells the midsection of the socket, but the platter won’t need any machining or punching:

Noval Socket - knurled inserts - top - Slic3r preview

Noval Socket – knurled inserts – top – Slic3r preview

The octal and duodecar sockets will require a punch to open up the platter hole and all sockets require two drilled clearance holes for the screws. Given that I’ll eventually do this on the Sherline, maybe milling the hole for the bigger tubes will be faster & easier than manually punching them.

I moved the screw centers to 35 mm (from the historically accurate 28 mm) to accommodate the larger center, not that anybody will ever notice, and enlarged the central hole to 7.5 mm (from 5.0 mm) to let more light into the tube base.

The support structures inside the (now much smaller) knurled insert cylinders might not be strictly necessary, but I left them in place to see how well they built. Which was perfectly, as it turns out, and they popped out with a slight push:

Noval socket - knurled inserts - support structures

Noval socket – knurled inserts – support structures

They’re just the cutest little things (those are 0.100 inch grid squares in the background):

Noval socket - support structures

Noval socket – support structures

Anyhow, the knurled inserts pressed into their holes with a slight shove:

Noval socket - installing knurled insert

Noval socket – installing knurled insert

The chuck jaws were loose on the screw cutoff stud and stopped at the surface, putting the knurled inserts perfectly flush with the socket:

Noval socket - knurled inserts - installed

Noval socket – knurled inserts – installed

The surface looks very slightly distorted around the inserts, although it’s still smooth to the touch, and I think the PETG will slowly relax around the knurls. Even without heat or epoxy, they’re now impossible to pull out with any force I’m willing to apply to the screws threaded into them. Given that the platter screws will (be trying to) pull the inserts through the socket, I think a dry install will suffice for my simple needs.

Match-mark, drill #27 6-32 clearance holes, and the screws drop right in:

Noval socket - installed

Noval socket – installed

Those stainless steel pan-head 6-32 screws seem a bit large in comparison with the socket. Perhaps I should use 4-40 screws, even though they’re not, ahem, historically accurate.

The tube pin holes get hand-reamed with a #53 drill = 1.5 mm. That’s a bit over the nominal 1.1 mm pin diameter, but seems to provide both easy insertion and firm retention. For permanent installation, an adhesive would be in order.

Buff off the fingerprints, stick the tube in place, and it looks pretty good:

Noval socket - tube on platter

Noval socket – tube on platter

Yeah, those screws are too big. Maybe a brace of black M3 socket head screws would look better, despite a complete lack of historicity.

Now to wire it up and ponder how to build a base.

The OpenSCAD source code as a GitHub Gist:

, ,


Knurled Inch Inserts

Tagging along behind the metric inserts, a sack of knurled brass inch-size screw inserts arrived:

Threaded Inserts - metric and inch

Threaded Inserts – metric and inch

The nice stainless steel screws on the right range from 4-40 to 10-32, which suffice for nearly everything I build around here.

Unlike the splined metric inserts on the left, these inserts have actual knurls and ridges that should hold them firmly in place. The specs give hard-inch dimensions, of course, that (seem to) correspond to the root diameter of the knurls. You can find nice engineering drawings of precise tapered holes (by drilling down into the Heat-Set Inserts for Plastics item on that page), but a few metric measurements of the actual parts on hand should suffice for my simple needs.

Thread: overall length x small rim OD x (knurl length x larger knurl OD)

  • 4-40: 5.8 x 3.9 x (4.0 x 4.6)
  • 6-32: 7.1 x 4.7 x (4.6 x 5.5)
  • 8-32: 8.1 x 5.5 x (5.9 x 6.3)
  • 10-32: 9.5 x 6.3 x (7.0 x 7.1)

Rather than fussing with a tapered hole, just punch a cylinder with the small rim OD (to clear the screw) through the part and put a cylinder with the knurl OD x length at the surface.

Using cylinders without diameter correction will make them slightly undersized for heat bonding. The usual 3D printing tolerances don’t justify anything fussier than that.

Using PolyCyl diameter correction will make the holes nearly spot on for epoxy bonding: butter ’em up, ram ’em in, pause for curing, done.

That’s the plan, anyhow…

, ,


Vacuum Tube LEDs: Ersatz Heat Sink Plate Cap

I wanted a slightly larger “plate cap” to fit a big incandescent bulb and it seemed a fake heatsink might add gravitas to the proceedings:

Vacuum Tube LEDs - large incandescent bulb

Vacuum Tube LEDs – large incandescent bulb

Yeah, that antique ceramic socket holds the bulb at a rakish angle. Worse, even though I painstakingly laid out the position of the heatsink atop the bulb, it’s visibly off-center. Which wouldn’t be so bad, had I not epoxied the damn thing in place.

After reaming out the M2’s filament drive, the entire blue base printed without incident.

A closer look at the cap:

Vacuum Tube LEDs - ersatz heatsink plate cap

Vacuum Tube LEDs – ersatz heatsink plate cap

Memo to Self: Next time, line it up with the vertical glass support inside the bulb and ignore the external evidence.

The boss has a hole for the braid-enclosed cable to the knockoff Neopixel:

Vacuum Tube Lights - finned cap - Slic3r preview

Vacuum Tube Lights – finned cap – Slic3r preview

The cupped surface perfectly fits the bulb’s 3.75 inch diameter. While you wouldn’t mill out a real heatsink, it definitely looks better this way and (alas) gives the epoxy more footprint for a better grip.

I built the fins with a 1/8 inch cutter in mind, so the fin root radius allows for a G3/G3 arc without gouging. I doubt machining a fake heatsink from aluminum makes any sense, but the cheap extruded heatsinks on eBay don’t look very good. Plus, they sport completely unnecessary tapped holes for LED mounts and suchlike.

A cross-section shows the wiring channel and cable entry:

Vacuum Tube Lights - fin cap solid model - section

Vacuum Tube Lights – fin cap solid model – section

I epoxied the Neopixel in place, applied double-sided carpet tape to the whole thing, then painstakingly trimmed around the fins with an Xacto knife:

Vacuum Tube LEDs - Ersatz Heatsink plate cap - tape

Vacuum Tube LEDs – Ersatz Heatsink plate cap – tape

That looked better from the top side (where it was completely hidden) and came heartbreakingly close to working, but after about a day the cable + braid put enough torque on the cap to peel it off the bulb. Obviously, the tape holds much less enthusiastically after that.

Part of the problem came from the cable’s rather sharp angle just outside the cap:

Vacuum Tube LEDs - Ersatz Heatink plate cap - detail

Vacuum Tube LEDs – Ersatz Heatink plate cap – detail

Rakish angle, indeed. Two of ’em, in fact.

Unlike the smaller cap on the halogen bulb, this time I didn’t bother with a brass tube ferrule, mostly to see how it looks. I think it came out OK and the black braid looks striking in person. Conversely, a touch of brass never detracts from the appearance.

Obviously, the cable wasn’t long enough, either. Part of that problem came from underestimating the braid length: it shortens dramatically when slipped over the cable, even when you expect shortening. Somehow I managed to overlook that, despite cutting the cable quite long enough, thankyouverymuch. There’s a tradeoff between gentle angles and having the cable stick out too far for comfort.

Memo to Self: Use a cable at least four inches longer than necessary, measure the combined cable + braid assembly after screwing the bulb in the socket, and don’t epoxy anything before all the parts are ready for assembly.

That’s why it’s a prototype made out of blue PETG…

Protip: running old ceramic sockets through the dishwasher greatly simplifies their subsequent cleanup.

All in all, I like it.

The OpenSCAD source code as a GitHub gist:

, ,


Vacuum Tube LEDs: Ersatz Tube Sockets

Even vacuum tubes destined to be decorations need sockets:

Vacuum Tube Bases - solid models

Vacuum Tube Bases – solid models

They’re entirely plastic, of course, but they match the dimensions of “real” tube sockets pretty closely. The bosses around the pins have hard-inch dimensions, so you (well, I) can unleash Genuine Greenlee Radio Chassis Punches on sheet metal.

All the key dimensions come from a table, so you can build whatever sockets you need. These four seem to cover the most common relics of the Hollow State Empire:

T_NAME = 0;                                             // common name
T_NUMPINS = 1;                                          // total, with no allowance for keying
T_PINBCD = 2;                                           // tube pin circle diameter
T_PINOD = 3;                                            //  ... diameter
T_PINLEN = 4;                                           //  ... length (overestimate)
T_HOLEOD = 5;                                           // nominal panel hole from various sources
T_PUNCHOD = 6;                                          // panel hole optimized for inch-size Greenlee punches
T_TUBEOD = 7;                                           // envelope or base diameter
T_PIPEOD = 8;                                           // light pipe from LED to tube base
T_SCREWOC = 9;                                          // mounting screw holes

//    Name      pins     BCD   dia  length   hole            punch       env  pipe screw
TubeData = [
    ["Mini7",     8,    9.53, 1.016,   7.0,  16.0,        11/16 * inch,  18.0,  5.0, 22.5],
    ["Octal",     8,   17.45, 2.36,   10.0,  36.2,    (8 + 1)/8 * inch,  32.0, 11.5, 39.0],
    ["Noval",    10,   11.89, 1.1016,  7.0,  22.0,          7/8 * inch,  21.0,  5.0, 28.0],
    ["Duodecar", 13,   19.10, 1.05,    9.0,  32.0,         1.25 * inch,  38.0, 12.5, 39.0],

Given that the tubes lack electrical connections, I omitted the base keying: plug them in for best visual effect.

The hole through the middle passes light from a knockoff Neopixel on a 10 mm OD PCB:

Vacuum Tube LEDs - Octal base - top

Vacuum Tube LEDs – Octal base – top

Seen from the bottom, each base traps a pair of 6-32 nuts for chassis mounting and has a Neopixel press-fit in the middle:

Vacuum Tube LEDs - Duodecar base - bottom

Vacuum Tube LEDs – Duodecar base – bottom

Those recesses require support structures:

Vacuum Tube Bases - solid models - support

Vacuum Tube Bases – solid models – support

The Miniature 7-pin socket has the least space for the 10 mm OD Neopixel PCB and shows the thin layer between the bottom of the pin holes and the top of the openings.

Vacuum Tube Base - Mini7 - solid model section

Vacuum Tube Base – Mini7 – solid model section

You see half of the eight holes in the “7 pin” socket, because it has the eighth hole where a standard socket has a gap between pins 1 and 7.

Somewhat to my surprise, punching the support spiders out with a 6-32 stud (grabbed in the drill press) worked perfectly:

Vacuum Tube Base - nut trap overhang - detail

Vacuum Tube Base – nut trap overhang – detail

They look like I intended to build tiny decorations:

Vacuum Tube Base - support structure - detail

Vacuum Tube Base – support structure – detail

The cookies held on tenuously, then released with a loud bang! as I gradually increased the pressure. A PETG support structure in a blind recess wouldn’t pop out nearly so well.

The OpenSCAD source code as a GitHub gist:




Knurled Metric Inserts

These seem like they ought to come in handy for fastening things to 3D printed objects:

Kurled Inserts - M2 M3 M5

Kurled Inserts – M2 M3 M5

The assorted screws come from the Small Can o’ Small Screwlike Things, all harvested from various dead bits of consumer electronics:

Kurled M3 Inserts

Kurled M3 Inserts

These would benefit from a heated staking tool that slides them into the hole parallel to the axis and flush with the surface. Such things are commercially available, of course, but for my simple needs something involving a cartridge heater, a wall wart, and a drill press may suffice.

It would be better if the inserts had actual knurls, rather than splines. So it goes.

For the record (thread x length x Knurl OD x Body OD):

  • M2 x 4 x 3.5 x 2.8
  • M2 x 6 x 3.5 x 2.7
  • M3 x 4 x 4.5 x 3.8
  • M3 x 8 x 5.0 x 3.9
  • M5 x 10 x 7.5 x 6.9

The actual measurements seem to vary within ±0.02 of nominal and I doubt the manufacturing consistency justifies any assumption tighter than ±0.1 mm.

The M3 inserts really do have two different ODs.

The M5 insert was listed as “7 mm OD” and measures 7.5 mm, which suggests a typo in the description.

The polygonal hole adjustment I use produces dead-on diameters for small vertical holes:

HoleWindage = 0.2;

module PolyCyl(Dia,Height,ForceSides=0) {	// based on nophead's polyholes
  Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
  FixDia = Dia / cos(180/Sides);
  cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);

So an ordinary cylinder() with the nominal knurl OD or a PolyCyl() with the nominal body OD should suffice. Horizontal holes can probably use a plain old cylinder() with the nominal body OD, because they need reaming anyway.

Perhaps a dab of epoxy would bond better with the plastic around a nominal-size hole than forcing the insert into an undersized hole or heat-bonding the insert. Some experimentation is in order.

Ten bucks for the entire collection (five bags of 50 inserts each = 250 little brass doodads = 4¢ each), shipped free halfway around the planet, seemed reasonable, given that inch size knurled brass inserts run anywhere from 50¢ to upwards of $2 a pop and a Genuine Helicoil 4-40 insert sets you back just shy of a buck.

An Amazon vendor offers 4-40 inserts for $0.24 each in single quantities, but with $9.25 shipping. [le sigh]

Inch-size inserts with knurled rings intended for ultrasonic bonding seem to be 5¢ to 15¢ on eBay. I think the straight-side versions will work better than the tapered ones for heat or epoxy bonding.

It knurls my knuckles that we here in the US haven’t gone solidly metric. Yes, I have a goodly assortment of metric hardware in addition to the harvested fasteners shown above, but it definitely wasn’t cheap & readily available.

, ,


Ham It Up Noise Source Enable Switch

Some rummaging produced a tiny DPDT switch that actually fit the holes intended for a pin header on the recently arrived Ham It Up board, at least after I amputated 2/3 of the poor thing’s legs:

Ham-It-Up - noise source switch - B

Ham-It-Up – noise source switch – B

The new SMA noise output jack sits in the front left, with the white “noise on” LED just left of the switch:

Ham-It-Up - noise source switch - A

Ham-It-Up – noise source switch – A

There’s no way to measure these things accurately, at least as far as I can tell, but the holes came out pretty close to where they should be. The new SMA connector lined up horizontally with the existing IF output jack and vertically with the measured / rounded-to-the-nearest-millimeter on-center distance:

Ham It Up - noise SMA drilling

Ham It Up – noise SMA drilling

The Enable switch doesn’t quite line up with the LED, so the holes will always look like I screwed up:

Ham-It-Up - noise source switch - case holes

Ham-It-Up – noise source switch – case holes

That’s OK, nobody will ever notice.

Now, to stack up enough adapters to get from the SMA on the Ham It Up board to the N connector on the spectrum analyzer …


, , ,


Slic3r vs. Sequential 3D Printing

The tiny posts on the fencing helmet ear grommet produced a remarkable amount of PETG hair, because the nozzle had to skip between four separate pieces on the platform at each layer:

So I told Slic3r to build each part separately:

Fencing helmet grommet - separate builds - first attempt

Fencing helmet grommet – separate builds – first attempt

Due to absolutely no forethought or planning on my part, that actually worked. Slic3r defines a cylindrical keep-out zone around the nozzle that I set to 15 mm radius and 25 mm height, but those numbers are completely wrong for the M2, particularly with a V4 hot end.

To the rear, the nuts & bolts along the bottom of the X gantry sit 5 mm above the V4 nozzle, with the relaxed actuator on my re-relocated Z-axis home switch at Z=+1 mm:

V4 PETG - extruder priming

V4 PETG – extruder priming

To the front, the bed fan doesn’t sit much higher:

M2 V4 Extruder - 24 V fans

M2 V4 Extruder – 24 V fans

As it turned out, the front washers built first, sitting there in front of the gantry and behind the fan, the rear washers appeared last, and Everything Just Worked.

However, even though the M2’s layout won’t allow for automated layout, I figured I could do it manually by building the parts from front to rear:

Fencing Helmet Ear Grommet - Slic3r layout

Fencing Helmet Ear Grommet – Slic3r layout

That way, the already-built parts never pass under the gantry / switch. For particularly tall parts, I could remove / relocate the bed fan to clear the already-built parts as they appear.

Come to find out that Slic3r, for whatever reason, doesn’t build the parts in the order you’d expect from the nice list on the far right side of the screen:

Sequential Build Order - Slic3r vs Pronterface

Sequential Build Order – Slic3r vs Pronterface

Worse, the Slic3r 3D preview shows the threads by layer (which is what you’d expect), rather than by object for sequential builds:

Slic3r - sequential preview vs build order

Slic3r – sequential preview vs build order

I don’t know how you’d force-fit a four-dimensional preview into the UI, so I won’t complain at all.

There’s no way to tell which part will build first; selecting the part will highlight its entry in the list (and vice versa), but the order of appearance in that list doesn’t tell you where the G-Code will appear in the output file. That’s not a problem for extruders with a keep-out volume that looks like a cylinder, so there’s no reason for Slic3r to do it any differently: it will manage the extruder position to clear all the objects in any order.

The Pronterface preview creates the objects by reading the G-Code file and displaying the threads in order, so, if you’re quick and it’s slow, you can watch the parts appear in their to-be-built order. The detailed preview (in the small window on the right in the screenshot) does show the parts in the order they will be built as you scroll upward through the “layers”, which is the only way you can tell what will happen.

So doing sequential builds requires iterating through these steps until the right answer appears:

  •  Add all objects separately to get each one as a separate line in the list to the right
    • Using the More option to duplicate objects produces multiple objects per line = Bad Idea
  • Arrange objects in a line from front to back
  • Export G-Code file
  • Load G-Code file into Pronterface
  • Pop up the Pronterface layer preview, scroll upward to show build order, note carefully
  • Rearrange parts in Slic3r accordingly

That’s do-able (note the different order from the Slic3r preview):

Fencing helmet grommet - manual sequential build

Fencing helmet grommet – manual sequential build

But it’s tedious and enough of a pain that it probably makes no sense for anything other than parts that you absolutely can’t build any other way.

In this case, completing each of the bottom washers separately eliminated all of the PETG hair between the small pegs. The upper washers still had some hair inside the inner cylinder, but not much. If you were fussy, you could suppress that by selecting “Avoid crossing perimeters”, at the cost of more flailing around in the XY plane.

All those spare grommets will make a good show-n-tell exhibit…


Leave a comment