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.

Tag: Repairs

If it used to work, it can work again

  • Bicycle Helmet Mirror Mount: Re-anchoring the Boom

    My original dimensions for the helmet mirror mount used three sections of the inspection mirror shaft, with a short length of the fattest tube screwed into the azimuth turret:

    Mirror shaft - 2-56 stud
    Mirror shaft – 2-56 stud

    Each section has a pair of brass leaf springs applying just enough friction to hold the next-smallest tube in place, with a rolled crimp securing the springs and preventing the smaller section from pulling out. My first version used that short length of the largest section and the next (for Mary’s helmet) used only the two smallest tubes; it’s rapid prototyping at its finest, except that I rarely discard a prototype that actually works.

    Late last year I managed to pull the shaft out of the base while adjusting the length and watched those two springs flutter to the ground beside me.

    After finding both of them amid the usual roadside clutter, I swore a mighty oath that I’d epoxy the base of the middle tube into the larger one, eliminating one non-functional adjustment point:

    Bike helmet mirror mount - epoxied stalk base
    Bike helmet mirror mount – epoxied stalk base

    The heatstink tubing covers most of the evidence, but you can see a fillet of epoxy around the end.

    Done!

  • Water Heater Anode Rod Status

    The Whirlpool water heater anode rod is corroding nicely:

    Whirlpool anode rod - 2014-04
    Whirlpool anode rod – 2014-04

    The new GE water heater anode rod seems to be passivating:

    GE anode rod - coated - 2014-04
    GE anode rod – coated – 2014-04

    There’s some corrosion up near the bolt head, so it’s not entirely asleep:

    GE anode rod - bolt - 2014-04
    GE anode rod – bolt – 2014-04

    I hammered the coating off the rod, scuffed the shiny parts with coarse sandpaper, wiped off the dust, and stuck it back in its socket. We’ll see what it looks like next year.

    Both tanks flushed nicely without too much sediment.

    Searching for “water heater” will turn up other posts…

  • Incandescent Bulb Lifetime

    Two 40 W incandescent bulbs in the front bathroom burned out within a few days of each other. Being that type of guy, I know that I installed this bulb nine years ago:

    Bulb base - install date
    Bulb base – install date

    The date is easier to read with the bulb in hand: 13 Feb 05. The (5 yrs) indicates the previous bulb in that socket lasted five years.

    The other bulb date went in during March 09, so it survived only five years; the previous bulb lasted 6 years.

    Even though 40 W incandescent bulbs are history, maybe I have enough spares on the shelf that the next owner can replace ’em with cheap LEDs.

    This may not be science, but it does have numbers…
  • V-Brake Replaceable Pad Pins

    After replacing the front wheel bearings, I replaced both pairs of brake pads. The rear brakes use holders with slide-in pads, but I’ve never been happy with the dinky little pins that retain the pads, so this time I’m using ordinary cotter pins:

    V-brake pads - cotter pin retainer
    V-brake pads – cotter pin retainer

    The rear brake pads on a diamond-frame bike sit nearly horizontally on the seat stays, with the pin head pointed upward. On Tour Easy recumbents, the pads stand almost vertically on the chain stays, with the pins sideways:

    Tour Easy rear brakes
    Tour Easy rear brakes

    That photo dates to 2010, when those brakes were new. Nary a pin has worked loose yet and I don’t expect they ever will, but …

    If the pins rust before the pads wear out, I’ll go back to those little bitty OEM stainless pins.

  • Eyeglass Bridge Repair

    The nose bridge of my “computer glasses” snapped in the exact center, thus confirming my dislike of the springy head-clamping design. These never leave my desk, so I filled a small brass tube with epoxy, shimmed the lenses on a surface plate, tweaked the bridge into alignment with a surface gauge scribe, and let it cure overnight:

    Crude nose bridge repair
    Crude nose bridge repair

    That layout deliberately reduces the springiness by aligning the lenses to be parallel across the bridge, rather than being a bit side-eyed. They’re an un-bendable alloy that provides no way to tweak the alignment; they emerged just about perfect, but it’s time for a new pair later this year.

    FWIW, they’re DIY “computer glasses”: +1 diopter to the far (“infinity”) correction and -1 diopter from the reading adder, producing a pair of glasses with the far point at about 1 meter and an unchanged reading-distance correction. That worked well, but next time I’ll use +0.75 diopter so I can sit back a bit further from those big monitors.

    Also: the rust on that lovely surface gauge scribe base came from the previous owner and looks much worse in the picture than in real life. I should run it through an Evaporust bath the next time I have some out. It’s probably a Starrett Model 257, but with absolutely no maker marks whatsoever.

  • Bird Nesting Boxes: Cleanout Time

    Springtime moves the Bird Box Cleanout chore to the front of the to-do list…

    Three different species used this box in succession:

    Bird box - stacked nests
    Bird box – stacked nests

    Those tiny birds haul all this stuff into the boxes one twig / feather / strand at a time:

    Bird box nests
    Bird box nests

    The big branches come from a pick-up-sticks session; we don’t have birds that big around here!

    One nest sported a decorative yellow plastic ribbon that the bird surely regarded as a rather tough bit of grass:

    Bird nest with plastic strand
    Bird nest with plastic strand

    They could handle this job on their own, but we think we can reduce the number of parasites by airing out the boxes. We should do the cleanout in the fall to provide nice empty cavities that they can use for winter shelter, but they seem perfectly happy to snuggle together atop the nests in the cold and the dark…

  • Revised Thinwall Open Box Calibration Object

    Which thinwall open box is better?

    Object A:

    Thinwall Open Box - Minkowski - solid model
    Thinwall Open Box – Minkowski – solid model

    or Object B:

    Thinwall Open Box - hull - solid model
    Thinwall Open Box – hull – solid model

    The latter, of course: I blundered the inner corner radius, which occasionally produced little tiny dots of infill that shouldn’t be there. Just one of those errors that hides in plain sight until something else goes wrong, then it’s obvious.

    Rather than fix the Minkowski version, I rebuilt it using the hull() operator to shrinkwrap four cylinders for each solid, then remove the smaller block from the larger. Commenting out the hull() operators  shows that the cylinders now line up properly:

    Thinwall Open Box - un-hulled - solid model
    Thinwall Open Box – un-hulled – solid model

    The OpenSCAD source code:

    // Thin wall open box calibration piece
    // Adapted from Coasterman's Calibration set
    // Ed Nisley - KE4ZNU - Dec 2011
    // Adjust for Slic3r/M2 - March 2013
    // Reworked for hull() with correct corner radii - April 2014
    
    //-------
    //- Extrusion parameters must match reality!
    //  None of the fill parameters matter
    
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    
    Protrusion = 0.1;           // make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //-------
    // Dimensions
    
    Height = IntegerMultiple(5.0,ThreadThick);
    
    WallThick = ThreadWidth;
    
    CornerRadius = 2.0;
    CornerSides = 4*8;
    
    SideLen = 20.0 - 2*CornerRadius;
    
    Rotation = 45;
    
    //-------
    
    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();
    
    rotate(Rotation)
    	difference() {
    		hull() {
    			for (i=[-1,1], j=[-1,1])
    				translate([i*SideLen/2,j*SideLen/2,0])
    					cylinder(r=CornerRadius,h=Height,$fn=CornerSides);
    		}
    		hull() {
    			for (i=[-1,1], j=[-1,1])
    				translate([i*SideLen/2,j*SideLen/2,-Protrusion])
    					cylinder(r=(CornerRadius - WallThick),h=(Height + 2*Protrusion),$fn=CornerSides);
    		}
    	}