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.

Author: Ed

  • OpenSCAD: Useful Sizes file

    My Useful Sizes.scad file has been accumulating the dimensions of nuts & bolts & a motor that don’t (seem to) appear elsewhere in the OpenSCAD universe:

    //-- Useful sizes
    
    Tap2_56 = 0.070 * inch;
    Clear2_56 = 0.082 * inch;
    Head2_56 = 0.156 * inch;
    Head2_56Thick = 0.055 * inch;
    Nut2_56Dia = 0.204 * inch;
    Nut2_56Thick = 0.065 * inch;
    
    Tap3_48 = 0.079 * inch;
    Clear3_48 = 0.096 * inch;
    Head3_48 = 0.184 * inch;
    Head3_48Thick = 0.058 * inch;
    Nut3_48Dia = 0.201 * inch;
    Nut3_48Thick = 0.073 * inch;
    
    Tap4_40 = 0.089 * inch;
    Clear4_40 = 0.110 * inch;
    Head4_40 = 0.211 * inch;
    Head4_40Thick = 0.065 * inch;
    Nut4_40Dia = 0.228 * inch;
    Nut4_40Thick = 0.086 * inch;
    
    Tap10_32 = 0.159 * inch;
    Clear10_32 = 0.190 * inch;
    Head10_32 = 0.373 * inch;
    Head10_32Thick = 0.110 * inch;
    Nut10_32Dia = 0.433 * inch;
    Nut10_32Thick = 0.130 * inch;
    
    Tap025_20 = 0.201 * inch;
    Clear025_20 = 0.2660 * inch;
    Head025_20 = 0.492 * inch;
    Head025_20Thick = 0.144 * inch;
    Nut025_20Dia = 0.505 *inch;
    Nut025_20Thick = 0.161 * inch;
    
    NEMA17_ShaftDia = 5.0;
    NEMA17_ShaftLength = 24.0;
    NEMA17_PilotDia = 0.866 * inch;
    NEMA17_PilotLength = 0.080 * inch;
    NEMA17_BCD = 1.725 * inch;
    NEMA17_BoltDia = 3.5;
    NEMA17_BoltOC = 1.220 * inch;
    

    It seems I’m among the few CamelCase holdouts…

  • Logitech Ball Camera Tripod Adapter

    The Logitech notebook webcam that peers into the Thing-O-Matic has terrible dynamic range compensation; turning on the LED ring light washes out the image something awful. An old Logitech ball camera seems better, but it sits atop a rubbery dingus adapted to grip huge old laptops. So I built an adapter with a standard 1/4-20 tripod screw thread in the bottom that ought to make it more useful.

    The old & new mounts compared:

    Logitech ball camera mounts
    Logitech ball camera mounts

    The color change comes from switching to yellow filament for an upcoming larger object.

    The solid model shows those tiny little notches will require a bit of riffler file work:

    Logitech camera tripod adapter - solid model
    Logitech camera tripod adapter – solid model

    The bottom has a blind 1/4-20 tapped hole. Lacking a bottoming tap, not having any broken 1/4-20 taps, and being unwilling to grind the end off a perfectly good taper tap, I filed three notches along a bolt. Ran the taper tap in until it hit bottom, ran the bolt in likewise, and defined the result to be Good Enough:

    Homebrew bottoming tap
    Homebrew bottoming tap

    On the other end, the most probable failure will leave that delicate little post jammed firmly inside the camera’s socket. There’s not enough post to allow printing a small guide hole, but there’s no real need for one; I drilled a #50 hole right down the middle, ran a 2-56 screw into it without tapping the hole, and filed the screw head flat:

    Camera mount with filed screw
    Camera mount with filed screw

    After cleaning up those notches, it snapped solidly into place:

    Logitech ball camera with mount
    Logitech ball camera with mount

    And then the camera sits neatly atop a cheap Gorillapod knockoff:

    Logitech ball camera on tripod
    Logitech ball camera on tripod

    That tiny reddish dot in the middle of the imposing set of rings marks the actual lens, so it’s more of a pinhole camera than anything else. The fixed focus kicks in beyond a meter, but a bit of rummaging in the Box o’ Lenses produced a random meniscus lens that pulled the focus in to maybe 100 mm. Alas, that means the camera must float in mid-air about 15 mm inside the Thing-O-Matic’s box. If I can conjure up a mount that holds the ball inside the box, above-and-forward of the stage, that’d work great. VLC can allegedly rotate the image upside-down, so maybe I can mount it bottom-up.

    Here’s everything I know about those two cameras, with the ball camera on top and the webcam on the bottom:

    Logitech ball and notebook webcam data
    Logitech ball and notebook webcam data

    Apparently it’s easier to put that information on a tag than provide a good old data plate on the camera body.

    The OpenSCAD source code:

    // Tripod mount for Logitech ball camera
    // Ed Nisley KE4ZNU - Oct 2011
    
    include </home/ed/Thing-O-Matic/lib/MCAD/units.scad>
    include </home/ed/Thing-O-Matic/Useful Sizes.scad>
    include </home/ed/Thing-O-Matic/lib/visibone_colors.scad>
    
    //-------
    //- Extrusion parameters must match reality!
    //  Print with +0 shells and 3 solid layers
    
    ThreadThick = 0.33;
    ThreadWidth = 2.0 * ThreadThick;
    
    HoleFinagle = 0.2;
    HoleFudge = 1.02;
    
    function HoleAdjust(Diameter) = HoleFudge*Diameter + HoleFinagle;
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    Protrusion = 0.1;			// make holes end cleanly
    
    //-------
    // Dimensions
    
    BallDia = 60.0;				// camera ball
    BallRad = BallDia/2;
    
    BaseDia = 16.0;				// interface at tripod surface
    BaseRad = BaseDia/2;
    
    BaseLength = 10.0;			// to base of ball
    
    BoltDia = Tap025_20;		// standard 1/4-20 thread
    BoltLength = 7.0;
    
    StemLength = 8.5;
    StemDia = 4.7;
    StemRad = StemDia/2;
    
    FlangeWidth = 6.6;
    FlangeThick = 2.6;
    
    NotchSectionDia = 1.4;		// toroid cross-section diameter
    NotchSectionRad = NotchSectionDia/2;
    NotchOffset = 2.3;			// from top of stem
    
    //-------
    
    module PolyCyl(Dia,Height,ForceSides=0) {			// based on nophead's polyholes
    
      Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
    
      FixDia = Dia / cos(180/Sides);
    
      cylinder(r=HoleAdjust(FixDia)/2,h=Height,$fn=Sides);
    }
    
    module ShowPegGrid(Space = 10.0,Size = 1.0) {
    
      Range = floor(50 / Space);
    
    	for (x=[-Range:Range])
    	  for (y=[-Range:Range])
    		translate([x*Space,y*Space,Size/2])
    		  %cube(Size,center=true);
    
    }
    
    //-------
    //
    
    ShowPegGrid();
    
    translate([0,0,BaseLength])
      union() {
    	difference() {
    	  translate([0,0,-BaseLength])
    		cylinder(r=BaseRad,h=2*BaseLength);
    	  translate([0,0,BallRad])
    		sphere(r=BallRad);
    	  translate([0,0,-(BaseLength + Protrusion)])
    		PolyCyl(BoltDia,(BoltLength + Protrusion));
    	}
    	rotate(180/16)
    	  cylinder(r=StemRad,h=StemLength,$fn=16);
    	difference() {
    	  translate([0,0,StemLength/2])
    		cube([FlangeWidth,FlangeThick,StemLength],center=true);
    	  translate([0,0,(StemLength - NotchOffset)])
    		rotate_extrude(convexity=3,$fn=64)
    		  translate([FlangeWidth/2,0,0])
    			circle(r=NotchSectionRad,$fn=16);
    	  translate([0,-FlangeWidth/2,StemLength + sqrt(FlangeWidth)])
    		rotate([0,45,0])
    		  cube(FlangeWidth + 2*Protrusion);
    	  translate([0,FlangeWidth/2,StemLength + sqrt(FlangeWidth)])
    		rotate([0,45,180])
    		  cube(FlangeWidth + 2*Protrusion);
    	}
      }
    
  • Harbor Freight Bar Clamp Failure

    The squeeze handle that tightens the bar clamp cracked exactly where you’d expect: directly across the pivot hole where the miracle engineering plastic thins down to a precarious ridge. The end of the handle is still inside the clamp:

    Bar clamp with broken handle
    Bar clamp with broken handle

    Nothing bonds that plastic, so, in the nature of a quick fix, I cut a steel strap to wrap around the perimeter of the broken section and epoxied the whole mess together:

    Reinforced bar clamp handle
    Reinforced bar clamp handle

    That lasted for exactly 2.5 squeezes and then pulled apart; the epoxy doesn’t really have anything to grab.

    ABS isn’t a good substitute for engineering plastic, so this will require a bit of CNC work on the Sherline. I’ll probably carve the first one from polycarbonate, just because I have a sheet of the right thickness, but it really cries out for aluminum, doesn’t it?

    Why CNC? Well, I’m going to make a handful of handles and get proactive on the other clamps.

    My other bar clamps have much heavier sections in that area, so perhaps the folks supplying Harbor Freight could take a hint? Yeah, but the clamp was cheap, which always conflicts with good. On the other paw, I’ve seen exactly this same clamp priced at not cheap elsewhere.

  • Glass Chip Flat

    Having had trouble with tire liners eroding the rear tube, I went with just a tube and a Kevlar belted Marathon tire. Somewhat to my surprise, that lasted for most of the riding season, but a recent trip had a protracted rest stop:

    Glass chip in tire
    Glass chip in tire

    The puncture came from a knife-edged glass chip that avoided most of the Kevlar belt inside the tire:

    Glass chip - detail
    Glass chip – detail

    I think even a tire liner wouldn’t help with this one.

    Other than that, the tube was in fine shape, so I’ll probably patch it and toss it back in the bike pack. Tire liners prevent most flats from gashes along the midline of the tire, but …

  • LTSpice IV: Simulation Run Hotkey

    For some odd reason, Linear Tech’s LTSpice IV simulator has a hotkey to stop a simulation (Ctrl-H), but not one to start the run.

    Add one:

    • Control Panel
    • Drafting Options
    • Hot Keys button
    • Click in Run Simulation slot
    • Tap the ~ key
    • Back out of everything
    LTSPice Run key binding
    LTSPice Run key binding

    Done!

  • Window Strike: Swainson’s Thrush

    Birds flow through the Hudson River Valley during spring and fall migratory seasons, leading to tragedies such as this:

    Dead Swainsons Thrush - ventral
    Dead Swainsons Thrush – ventral

    We think it’s a Swainson’s Thrush that mistook our bedroom window for open sky:

    Dead Swainsons Thrush - left side
    Dead Swainsons Thrush – left side

    We’ve tried several techniques to prevent birds from making that mistake, but to no avail.

    It weighed 38 grams, a bit heavier than the typical 30-ish grams reported in our bird books. If I were flying to Mexico I’d want a little extra padding, too.

    I put it out for recycling in the back yard; in Nature, nothing goes to waste…

  • Monthly Aphorism: On Right Behavior

    • Do what’s right and sleep well at night

    Father Vaughn taught that precept to everybody he managed: he expected complete technical and personal honesty. That meant you did your best, reported the facts, and didn’t tell different versions of the same story to different people.

    It was painful to watch him in meetings with his manager who had, shall we say, a tendency to skew the truth in certain situations.

    Dilbert is a documentary of what happens when you don’t live by that rule…