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

  • Wouxun KG-UV3D GPS Interface: PCB Component Envelopes

    This doodle just emerged from the heap:

    TT3 and Interface PCB keepout dimensions
    TT3 and Interface PCB keepout dimensions

    It gives the envelope dimensions for the two PCBs in the quasi-extruded GPS interface case:

    HT-GPS Case - Trial fit - rear view
    HT-GPS Case – Trial fit – rear view

    The overall idea was to subtract the envelopes from the interior of the solid case and print the shell:

    HT-GPS Adapter Case - end view
    HT-GPS Adapter Case – end view

    Surprisingly, after minimal cleanout, the PCBs pretty much just slid into place and the setscrews locked them down.

    Now I can throw out that scrap of paper…

    The OpenSCAD source has the gory details; the actual dimensions don’t quite match the doodle, but that’s in the nature of fine tuning.

  • New Aztek Brake Shoes

    The front brake on my bike started sounding more gritty than usual on a recent ride, which led to pulling the pads off, which led to discovering that one pad had worn completely through:

    Worn-through brake pad
    Worn-through brake pad

    The rim had a slight scuff where that aluminum tab stuck through, but nothing worth worrying about. The wear indicators aren’t reliable, because the pad curve matches 27-ish inch wheels and the Tour Easy has a 20 inch front wheel. If you align the pads to the outside of the rim, as I do, the inside edge gets light wear. So I let ’em wear, check them when the tire gets a flat, and this is the first time a pad has worn through. I think that means the front tire hasn’t had a flat in quite a while…

    While I was at it, I replaced all the pads on both our bikes. The rear pads didn’t have nearly as much wear, which is about what you’d expect, although the wear indicator grooves have just about bottomed out:

    Worn replaceable pads
    Worn replaceable pads

    Those are replaceable pads, which work quite well on the new brake arms. I suspect by the time I get around to needing new inserts (I bought a bunch, of course) they’ll be obsolete and unobtainable.

    I file the pads flat to save a bit of time wearing them in:

    Filed replaceable pads
    Filed replaceable pads

    I don’t hold with the notion of toeing in the pads to avoid squealing, vastly preferring crisp brakes with very little travel. Whatever the material is in Aztek pads, they don’t squeal after they’ve fitted themselves to the rim… but, of course, this new pair howled worse than the Freezer Dog when I got them out on the road.

    Squealing brakes aren’t entirely a bad thing, as they scare the daylights out of oblivious pedestrians, but I’d rather use the bell. So I gripped a strip of fine sandpaper between pad and rim, gently squeezed the brake lever, and rolled the bike about two wheel revolutions. Repeat on the other side and the rim’s now nice and clean and grippy. Flip the sandpaper over, scrub the pad surface, and they don’t make a sound.

    Ding!

  • Belt Gluing

    When I bought a new belt some months ago, I thought the lack of stitching meant it was made from a single strip of leather. Come to find out that it’s actually two strips glued together with something sticky that came un-done at the point where the belt passes through the buckle.

    So I peeled a bit more apart, smoothed a thin layer of urethane glue (aka Gorilla Glue) inside, laid waxed paper on both side just in case the foam expanded beyond my wildest imagination, and clamped it together:

    Belt clamping
    Belt clamping

    The glue layer turned out just about perfect, with only a few blobs sticking out the sides:

    Belt with urethane glue blobs
    Belt with urethane glue blobs

    Those blobs snapped off easily enough and the belt works fine again.  We’ll see how long this one lasts…

  • NIC Backpanel Shortening

    Actually, that NIC didn’t slip right into place, because its backpanel plate was sized for a full-height PC case. Unlike the cheap stamped steel you find these days, NetGear used much thicker metal that required an attack with the bandsaw, a hammer, and some files to clean up the raw edges.

    But it fit pretty well after all that:

    Shortened NIC backplate
    Shortened NIC backplate

    You can just barely see the NetGear logo wrapped around the right-angle bend…

  • Lenovo Headset Boom: Repair Faceplant

    I picked up a Lenovo headset on sale and over the course of a few weeks the mic boom pivot worked itself loose, until I finally dismantled the left ear cup to see what was inside. Come to find out that the mic boom has a molded threaded section held into the cup with a simple nut and no locking mechanism at all:

    Lenovo headset - OEM mic boom pivot nut
    Lenovo headset – OEM mic boom pivot nut

    I think the metal washer was intended as a low-friction pivot atop the compliant silicone (?) washer underneath, but the net effect was that the nut unscrewed a little bit more every time the mic boom moved. By the time I got in there, the nut was completely off the threads.

    The original nut left a thread or two showing, so I found a thicker replacement nut with a better grip. The obvious solution involves a dab of Loctite to jam the nut in position, but we all know that some plastics, most notably acrylic, react badly to threadlocker and tend to disintegrate. Although I considered just epoxying the nut in place, that seems so, well, permanent.

    So I dutifully tested a dab of Loctite on an inconspicuous spot inside the ear cup, got no reaction at all, put a drop on the boom pivot threads, and reassembled everything:

    Lenovo headset - replacement mic boom pivot nut
    Lenovo headset – replacement mic boom pivot nut

    Alas, by the time I got back upstairs and hung the mic on the rack, the boom fell completely out of the earcup! Back in the Basement Laboratory, I dismantled the thing again and confronted this mess:

    Lenovo headset- Acrylic plastic vs. threadlock
    Lenovo headset- Acrylic plastic vs. threadlock

    Huh. The ear cup isn’t made of the same plastic as the mic boom: one shrugs off threadlock, the other disintegrates.

    That’s obvious in retrospect, eh?

    The only threads that aren’t ruined lie completely within the ear cup frame, with just a stub sticking up around the wire. So I cleaned things up and did what I should have done originally: put a dab of epoxy inside the nut to bind the pivot firmly in place. A snippet of unshrunk heatshrink tubing around the wire provides a bit of strain relief:

    Lenovo headset - boom pivot nut with epoxy
    Lenovo headset – boom pivot nut with epoxy

    There’s no longer any space for the compliant washer in that stack, so we’ll see how long this lasts. The next repair will certainly venture far inside non-economical territory. I like the headphones, though.

    Memo to Self: Check in an inconspicuous spot on the same material.

  • Toyota Sienna: Hatch Latch Handle Replacement

    Sienna hatch - replacement latch
    Sienna hatch – replacement latch

    The replacement metal latch handle fit perfectly and works fine.

    That skinny protruding arm shouldn’t break off, but now it has a metal-to-metal sliding joint that will eventually gall. With any luck, though, it’ll outlast the van… which, admittedly, that kludged repair probably would have, too.

  • Whirlpool Refrigerator Fan Noise: Cartridge Bearings?

    The endcaps of that fan motor have a crimped-in-place aluminum disk capturing a felt washer that held oil and a circular spring that presses the spherical bronze bearing in place:

    Fan motor endcap - interior
    Fan motor endcap – interior

    Pulling all that out reveals the bearing (tilted on its side to show the spherical outer shape):

    Fan motor endcap - parts
    Fan motor endcap – parts

    The shaft is a scant 3/16 inch in diameter, about 0.181 instead of 0.1875 inch. I have some 3/16 inch ID cartridge bearings in the heap that are a sloppy fit on the shaft, but nothing that a wrap of 2 or 3 mil shimstock and a dab of green Loctite wouldn’t cure.

    A bit of doodling suggests two of these bearing holders should fit in the endcaps, stand over the spherical bearing mounts, capture the ball bearing OD, keep dust out of the balls, and perhaps have enough compliance to let the bearings self-adjust to the right fit:

    Fan Bearing Holder
    Fan Bearing Holder

    The fan tries to pull the rotor out of the frame, although I think the bearings & Loctite can handle that much axial load. I must try this out on the bench and see how long it takes for the Freezer Dog to return…

    It needs a trial print and some sizing adjustment, plus maybe an allowance for end play, but it’s close.

    The OpenSCAD source code:

    // Refrigerator Fan Bearing Support
    // Ed Nisley KE4ZNU - May 2012
    
    // Layouts
    
    Layout = "Show";			// Show Fit Build
    
    Gap = 5.0;					// between parts in Show mode
    
    BuildOffset = 5.0;			// offset between parts on build plate
    
    //- Extrusion parameters must match reality!
    //  Print with +1 shells and 3 solid layers
    
    ThreadThick = 0.25;
    ThreadWidth = 2.0 * ThreadThick;
    
    HoleWindage = 0.2;
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    Protrusion = 0.1;			// make holes end cleanly
    
    //----------------------
    // Dimensions
    
    CapID = 32.0;				// bearing endcap
    CapHeight = 7.0;			//  ... below aluminum cap recess
    
    SupportOD = 10.3;			// spherical bearing support
    SupportHeight = 3.0;
    
    BearingOD = 12.7;			// ball bearing race
    BearingID = 4.68;			//  ... shaft dia
    BearingThick = 4.0;
    
    Ribs = 8;					// number of support ribs
    RibLength = 2.0;			// length beyond cylinder
    RibWidth = 4*ThreadWidth;
    
    LidOD = CapID/2;			// bearing retainer lid
    LidThick = 2*ThreadThick;
    
    //----------------------
    // Useful routines
    
    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=(FixDia + HoleWindage)/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);
    
    }
    
    //-------------------
    // Objects
    
    module Retainer() {
      color("Green")
      difference() {
    	PolyCyl(LidOD,LidThick);
    	translate([0,0,-Protrusion])
    	  PolyCyl(BearingID,(LidThick + 2*Protrusion),8);
      }
    }
    
    module Holder() {
    
      color("Chocolate")
      difference() {
    
    	union() {
    	  cylinder(r=(CapID - 2*RibLength)/2,h=(CapHeight + LidThick));
    	  for (Index = [0:Ribs-1]) {
    		rotate(Index*360/Ribs)
    		  translate([0,-RibWidth/2,0])
    			cube([CapID/2,RibWidth,CapHeight],center=false);
    	  }
    	}
    
    	translate([0,0,-Protrusion])
    	  PolyCyl(SupportOD,(CapHeight + 2*Protrusion));		// clear old support
    
    	translate([0,0,SupportHeight])
    	  PolyCyl(BearingOD,CapHeight);						// bearing pocket
    
    	translate([0,0,(SupportHeight + BearingThick)])
    	  PolyCyl(LidOD,CapHeight);							// bearing retainer
    
      }
    }
    
    //-------------------
    // Build things...
    
    ShowPegGrid();
    
    if (Layout == "Show") {
      Holder();
      translate([0,0,(CapHeight + Gap)])
    	Retainer();
    }
    
    if (Layout == "Fit") {
      Holder();
      translate([0,0,CapHeight])
    	Retainer();
    }
    
    if (Layout == "Build") {
      translate([(CapID/2 + BuildOffset),0,0])
    	Holder();
      translate([-(LidOD/2 + BuildOffset),0,0])
    	Retainer();
    
    }
    
    

    Well, it’s a thought…