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.

Category: Machine Shop

Mechanical widgetry

  • Ceiling Lamp Nuts

    Ceiling Lamp Nuts

    While cleaning dead bugs out of the ceiling lamps, we discovered the kitchen light was missing one of the three nuts holding its cover in place. While spare nuts might be available, this seemed like a quicker & easier solution:

    Ceiling Lamp Nut - bottom view - solid model
    Ceiling Lamp Nut – bottom view – solid model

    The stepped interior fits a brass insert with 8-32 threads (not metric, to my utter astonishment) rammed in place with a heat-set tool:

    Ceiling Lamp Nut - insert staking
    Ceiling Lamp Nut – insert staking

    Using the nominal diameters seems to work fine, although I’m sure some finesse will be needed with smaller inserts.

    Printed four just to be sure, rammed three inserts, and they’re ready:

    Ceiling Lamp Nuts - as-built
    Ceiling Lamp Nuts – as-built

    The curved cap matches the original nut through the use of the Chord Equation to get the cap radius as a function of its height (sagitta) & base diameter. Admittedly, it looks kinda grotty with only a dozen layers, but it’s the thought that counts.

    The original nuts are heavy knurled steel and the new ones are cheap plastic, but nobody will ever know:

    Ceiling Lamp Nut - installed
    Ceiling Lamp Nut – installed

    Bonus: now I have two spare steel nuts for the next time …

    The OpenSCAD source code:

    // Nuts for LED ceiling light fixture
    // Ed Nisley KE4ZNU
    // 2024-09-27
    
    KnurlLength = 7.4;
    KnurlOD = 9.0;
    
    CapOD = 9.0;
    CapHeight = 2.0;
    CapRadius = (pow(CapHeight,2) + pow(CapOD,2)/4)/(2*CapHeight);
    echo(CapRadius=CapRadius);
    
    NumSides = 1*(2*3*4);
    $fn = NumSides;
    
    Protrusion = 0.1;
    
    difference() {
        union() {
            intersection() {
                translate([0,0,KnurlLength + CapHeight - CapRadius])
                    sphere(r=CapRadius);
                translate([0,0,KnurlLength])
                    cylinder(d=2*KnurlOD,h=KnurlLength);
            }
    
            cylinder(d=KnurlOD,h=KnurlLength);
    
        }
    
    // Ad-hoc 8-32 brass insert sizes
    
        cylinder(d=5.5,h=8.0);
        cylinder(d=5.9,h=5.7);
        cylinder(d=6.2,h=2.2);
        translate([0,0,-Protrusion])
            cylinder(d=6.2,h=2.2);
    
    }
    
  • Prusa MK4: Cart Coins vs. Extrusion Multiplier

    Prusa MK4: Cart Coins vs. Extrusion Multiplier

    A special request came in for cart coins with a handle:

    Overstuffed cart key - 1.0EM
    Overstuffed cart key – 1.0EM

    That’s in gray PETG-CF (carbon fiber) with Extrusion Multiplier = 1.0 based on the Pill Tube tests and and slightly lower temperatures based on the temperature tower. It definitely looks overstuffed and so does the Wipe Tower for that set of six coins:

    Overstuffed cart key - wipe tower
    Overstuffed cart key – wipe tower

    The orange threads off to the right suggest something went terribly wrong with the top layer, which corresponds to the somewhat recessed cart image in the coin, but there were no other symptoms.

    All six of the next set failed completely:

    Failed cart key - 1.0EM
    Failed cart key – 1.0EM

    Apparently the nozzle hit the clotted gray filament in the Wipe Tower and stalled the X axis motor:

    Failed cart key - wipe tower
    Failed cart key – wipe tower

    That suggests the same thing happened to the first set during the last pass over the Wipe Tower, causing a less obvious failure.

    Setting the Extrusion Multiplier = 0.65 produced a better result:

    Cart key print - blue - 0.65EM
    Cart key print – blue – 0.65EM

    Albeit with a slightly understuffed top layer:

    Cart key print - 0.65EM
    Cart key print – 0.65EM

    But not by much:

    Cart key print - black - 0.65EM
    Cart key print – black – 0.65EM

    So the answer depends slightly on the PETG-CF filament color, but not by enough to justify defining three different filament types.

    Cart coins are essentially solid plastic layers with no empty infill, so they have nowhere for excess filament to hide. The Wipe Tower should have plenty of room, but even at EM=0.65 the tower looks overstuffed on the side with the carbon fiber purge lines:

    Cart key print 0.65EM - wipe towers
    Cart key print 0.65EM – wipe towers

    The default 110% line spacing in the tower seems too small for PETG-CF, so I’ll increase it to 150% to see if that reduces the clumping.

    Judged by the surface finish, a 0.65 Extrusion Multiplier is too low, so I’ll try a set of coins at 0.80.

  • Subaru Upholstery Peg

    Subaru Upholstery Peg

    One of the flat-topped pegs anchoring the fuzzy black upholstery / carpet to the back of the rear seats went walkabout a while ago, but the situation only became critical after I vacuumed the crud out of the car.

    Living in the future simplifies things:

    Upholstery Peg - solid model
    Upholstery Peg – solid model

    Rather than getting all fancy with barbed ends and suchlike, I just slathered the stem with hot-melt glue, jammed it in place, and waited a few breaths:

    Upholstery peg - installed
    Upholstery peg – installed

    The vivid yellow stuff is seat cushion foam.

    3D printing is wonderful for simple parts like that.

    The OpenSCAD source code is simple enough:

    // Upholstery pin for Subaru back seat
    // Ed Nisley KE4ZNU
    // 2024-09-13
    
    HeadThick = 1.5;
    HeadOD = 25.0;
    
    PegLength = 10.0;
    PegOD = 8.0;
    SlotWidth = 1.5;
    
    rotate_extrude(angle=360,$fn=32)
        polygon(points=[[0,0],[HeadOD/2 - 1,0],[HeadOD/2,HeadThick],[0,HeadThick]]);
    
    difference() {
        rotate(180/8)
            cylinder(d=PegOD,h=10.0,$fn=8);
    
        translate([0,0,HeadThick ])
            cylinder(d=PegOD/2,h=PegLength,$fn=8);
    
        for (a=[0,90])
            rotate(a)
                translate([0,0,PegLength/2 + HeadThick + 1.0])
                    cube([SlotWidth,10.0,PegLength],center=true);
    
    }
    
    
  • Improvised Garden Gate Latch Staple

    Improvised Garden Gate Latch Staple

    For reasons not relevant here, I ended up making a field-expedient repair to a garden gate latch:

    Improvised gate latch staple - installed
    Improvised gate latch staple – installed

    The hole in the post just to the left of the obviously improvised staple shows where the Original Staple had vanished, never to be seen again. It looks like the gate has shifted an inch or so to the right (or the post to the left), which would explain why the staple gradually worked loose.

    The improvised staple is a length of coat hanger wire bent into a square U, with the ends snipped off at an acute angle:

    Improvised gate latch staple - cut wire
    Improvised gate latch staple – cut wire

    Those points do look scary, don’t they?

    Then I gently tapped it into place, driving maybe ¾ inch of wire in the wood, flattening the loop a little more than I wanted, but not enough to make me try again.

    Not our gate, not Mary’s garden, but deer pose a threat to all veggies within, without regard to ownership.

    I have *a lot* of coat hanger wire for repairs like this …

  • Scanning Offset Adjustment: LightBurn vs. RDWorks

    Scanning Offset Adjustment: LightBurn vs. RDWorks

    A protracted debugging session on the LightBurn forum produced an interest result, which I must yoink over here so I can recall my thoughts:

    The test patterns will require power / speed tweakage to properly mark cardboard on other machines. The vector boxes are about 1.5 mm wide: these are small differences in small patterns.

    The setup for both LightBurn 1.7 RC-13 and RDWorks 8.01.65:

    • The engraved patterns run at 500 mm/s & 20% power
    • The lines & letters run at 100 mm/s & 8% Min – 9% Max power
    • All on white cardboard, with image contrast blown out

    Scanning offset = 0.2 mm = the usual setting for my machine

    In LightBurn:

    Scanning Offset 0.2 - LightBurn
    Scanning Offset 0.2 – LightBurn

    In RDWorks:

    Scanning Offset 0.2 - RDWorks
    Scanning Offset 0.2 – RDWorks

    The slight shift to the left in the LightBurn results shows LB does not shift the uni-directional pattern to line up with the vector shape as RDWorks does, which is what started the forum thread.

    Scanning offset = 1.0 mm to accentuate the difference, while shredding the bi-direction pattern as expected.

    LightBurn’s uni-directional engraved pattern is still in the same slightly leftward-shifted position relative to the vectors, showing the offset value has not been applied:

    Scanning Offset 1.0 - LightBurn
    Scanning Offset 1.0 – LightBurn

    RDWorks definitely applies the offset in both modes:

    Scanning Offset 1.0 - RDWorks
    Scanning Offset 1.0 – RDWorks

    I do not know why RDWorks did not output the final “l” over there on the right, but it did so on some (not all) of the patterns while setting things up. The jank is strong with it.

    So having LightBurn apply the same offset value for both uni- and bi-directional engravings would fix the (slight) offset in my machine. I think it will also fix the much larger misalignment in [the other] machine in that forum discussion.

    The whole problem seems to arise from the response time of the HV power supply / laser tube: the position of the left & right edges of the scanned output line depend critically on the rising and falling edges of the current applied to the tube and its power output.

    Being me, of course, makes me want a different offset value applied to the uni-directional case, just for fine tuning. Which would require a duplicate offset-per-speed table and that looks like a UX disaster comin’ on strong.

  • Simpleminded Photographic Light Box

    Simpleminded Photographic Light Box

    The general idea of a light box is (wait for it) a uniform background in a box full of bright light:

    Light Box - overview
    Light Box – overview

    Obviously, this is a low-budget light box, but it makes perfect sense if you already have an essentially unlimited supply of moving boxes, 11×17 inch plotter paper, and a couple of photo / video lights lying around.

    A two-layer cardboard ring glued to the top keeps the light from sliding off the box and stiffens the gaping hole letting the light shine through.

    You’d normally use a fabric background to get rid of those ugly gaps around the edges and a larger box would be better, so this is along the lines of a proof-of-concept.

    From the camera’s viewpoint, it looks better than my crusty desktop cutting mat:

    Light Box - gears overview
    Light Box – gears overview

    Those gears would not look out of place in Bowman’s bedroom in 2001: A Space Odyssey.

    In this day and age, you’d normally use a phone camera:

    Light Box - gears overview - DOF
    Light Box – gears overview – DOF

    The lens on my Pixel 6a has a fixed focal length (around 4.4 mm = 27 mm equivalent) and a fixed f/1.8 (-ish) aperture, producing a razor-thin depth of field at the rear of the front gears. Note the fuzzy gears in the background, all of three inches away, and the slightly fuzzy front edge of the front gears. The camera’s digital zoom doesn’t help matters in the least, despite the AI-powered interpolation.

    Keeping things close together helps, although the far end of the wipe towers and the rear of the gears lose detail:

    Light Box - gears stacked
    Light Box – gears stacked

    Looking from above also helps a little, but a top viewing port would reduce the skewed perspective:

    Light Box - gears detail - DOF
    Light Box – gears detail – DOF

    Shallow DOF keeps your attention on the foreground, which is why real photographers use it for portraits:

    Light Box - gears standing - DOF
    Light Box – gears standing – DOF

    The camera, an ancient Sony DSC-H5 with a zoom lens going down to f/8, still does nice work through a 2× macro adapter lens:

    Light Box - gear detail - top light
    Light Box – gear detail – top light

    The DOF is still narrow, but at least the entire front gear is in focus.

    Adding a front light picks out the knurling:

    Light Box - gears detail - front light
    Light Box – gears detail – front light

    The results definitely look better than before, but it’ll take a bit of getting used to traipsing to the Basement Laboratory for every photo …

  • Husky Workbench Caster Feet

    Husky Workbench Caster Feet

    The flat robot vacuum assigned to clean the floors around here would occasionally get stuck under the leg of my Husky workbench-as-desk and fail to complete its mission. Living in the future makes solving that problem a matter of minutes:

    Husky workbench caster feet - installed
    Husky workbench caster feet – installed

    The upper rim captures the locked-in-place wheel in a 35×25 mm recess atop the middle 45×35 mm slab, with a 2.5 mm cork layer on the bottom. Laser-cut, of course, glued with ordinary yellow wood glue, and clamped for about half of a Squidwrench remote meeting.

    Raising the desk by 5.5 mm gives the Flat One juuust enough clearance to scuttle under there:

    Husky workbench caster feet - vacuum clearance
    Husky workbench caster feet – vacuum clearance

    That was easy …