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

  • Flashlight Switch: Poor Solder Joints

    My desk flashlight has three “functions”:

    • 5 UV LEDs
    • 10 white LEDs
    • laser pointer

    A four-click rotary pushbutton switch actuates the three functions (plus “off”) in sequence:

    Flashlight switch - internal wiring
    Flashlight switch – internal wiring

    All three lights became intermittent, which suggested a poor return connection at the far end of the battery. The case is, of course, aluminum, with coarse-cut threads that grate as you tighten the parts. I cleaned the crud out of the threads, anointed them with Ox-Gard compound, and discovered that the laser and UV LEDs were still flaky.

    Taking the thing apart and unsoldering the switch connections revealed the problem:

    Flashlight switch - bad solder joints
    Flashlight switch – bad solder joints

    Yup, two lousy solder joints. They’re not exactly cold solder joints, because there’s not really a joint there to begin with; the switch tabs never got hot enough to bond with the molten solder before it cooled.

    A dab of flux and touch from a hot soldering iron solved that problem.

    Assemble in reverse order and it works better than it ever did before!

  • Interplak Water Jet: End of the Line

    The brittle tubing on Mary’s Interplak water jet continued to disintegrate, so I replaced the entire tube with Tygon:

    Interplak water jet - interior
    Interplak water jet – interior

    Nisley’s First Rule of Plumbing: Never, ever look inside the pipes delivering water to your faucet.

    Interplak handle - interior view
    Interplak handle – interior view

    That’s not quite inside the pipes, but it’s pretty grotendous, isn’t it?

    As expected, flexible tubing doesn’t transmit the pressure pulses nearly as well as the OEM rigid tubing, so we finally bought a new Waterpik. At least you can get replacement tubing for Waterpiks, but I’ll wait until it fails before stocking up.

    Contrary to what you might expect, I cut the Interplak’s cord, harvested the motor windings, and dumped the carcass in the trash.

  • Shimano SPD Pedals: Creaking Resolved

    Both Shimano SPD pedals on my Tour Easy have been creaking while climbing hills and I’ve gradually eliminated all the usual mechanical suspects: loose bottom bracket bearings (it’s a cartridge), loose cranks (they’re the old-school tapered squares), loose pedal spindles, and so forth. Of course, it’s impossible to produce the creak with the bike clamped in the work stand, which make debugging particularly frustrating.

    After all that, I noticed the shoe soles were wearing the pedal frames just outside the cleat clamps:

    Shimano SPD pedal - shoe sole abrasion
    Shimano SPD pedal – shoe sole abrasion

    So I went so far as to carve away a bit of the sole:

    Shimano SPD cleat - trimmed shoe sole
    Shimano SPD cleat – trimmed shoe sole

    Turns out none of that solved the problem.

    What did solve the problem: a drop of oil on the rear of the cleat. You can see a smear of oil on the sole; it doesn’t take quite so much.

    As nearly as I can tell, the rear of the cleat drags on the slightly irregular surface of the clamp and, both surfaces being hardened steel, they stick-and-slip just slightly.

    A dab of grease may provide longer-lasting relief …

  • M2 Platform Leveling

    This doesn’t happen very often, but, after a few road trips and some jostling around, the M2’s platform was definitely out of alignment: the first layer came out generally too thin, with the X-Y+ quadrant very much too thin.

    I tried a quick and dirty adjustment that didn’t produce meaningful results, then broke out the Starrett Taper Gauge and did it right.

    The relocated platform height switch is about 4.5 mm higher than the nozzle, so:

    • Jog the nozzle off the platform to the right
    • Home the Z axis
    • Define that position as Z=-6: G92 Z-6
    • Move to Z=0: G0 Z0
    • Jog around measuring the height of the nozzle above the platform
    • Adjust screws to reduce variation
    • Change Z offset in startup G-Code
    • Run off a few test patterns to get the platform heated
    • Measure actual thickness
    • Change Z offset to get the right answer
    • Done!

    This progression of cold measurements, read top-to-bottom, left column first, shows the observed nozzle height above the platform around the edges and at the center:

    M2 Platform Leveling Progression - 2014-06-30
    M2 Platform Leveling Progression – 2014-06-30

    The final measurements seem to indicate the glass plate is 0.2 mm convex in the center, but I wouldn’t trust the measurements to that level of accuracy. It’s probably bowed upward, but it’s certainly close enough.

    The cold measurements suggest that the Z offset should be -4.80 mm, but the measurements on the hot platform with actual extrusion threads showed that -4.50 mm produced the correct thicknesses.

    It’s not clear automating the movements would produce better or faster results than just manually jogging the nozzle around the platform, particularly since it happens only every few months.

    This would be easier with the Z offset stored in the EEPROM and some modified startup G-Code to retrieve it.

  • You Know It’s Time to Change the Bike Tire When …

    …. the armor layer under the tread starts peeking through:

    Eroded Schwalbe Marathon tire
    Eroded Schwalbe Marathon tire

    Actually, it started peeking through early this year, but why rush things?

    I swapped in a Michelin Pilot City 700x32C tire with their Protek Max armor and reflective sidewalls; we’ll see how well all that works.

    No tire liner inside, so I’m depending on the armor and the fact that it’s a rather chunky tire.

  • Tweaked Crossword Scanning

    In what’s surely a change intended to better meet the needs of their customers, the newspaper changed the crossword layout just a little teeny bit, so my previous script needed a tweak:

    #!/bin/bash
    echo Scanning...
    scanimage --mode Gray --opt_emulategray=yes --resolution 300 -l 5 -t 0 -x 105 -y 195 --format=pnm > /tmp/scan.pnm
    echo Converting...
    convert /tmp/scan.pnm -level 45%,60% -resize 2400x3150 +repage -unsharp 0 /tmp/trim.png
    convert -density 300 -size 2550x3300 canvas:white /tmp/trim.png -gravity center -composite /tmp/page.pdf
    echo Printing...
    lp -n 2 /tmp/page.pdf
    echo Done!
    

    It now spits out two large-print copies, to better meet their actual needs, at least for two of their customers.

  • Kenmore 158: Foot Pedal Foot Bushings

    As you’d expect, the soft feet on the bottom of the Kenmore Model 158 sewing machine’s foot pedal control turn into hard buttons after a few decades. The OEM feet have mushroom tops that push through holes in the case and latch in place; of course, none of the rubber feet in my collection match the hole diameter or case thickness.

    No problem! Design a bushing that fits the case hole and passes a 4-40 screw:

    Speed Control Foot Bushing
    Speed Control Foot Bushing

    Then print up a handful, add screws to fit the rubber feet, and top off with nuts:

    Kenmore 158 - pedal foot bushing - detail
    Kenmore 158 – pedal foot bushing – detail

    Installed, with the screws cropped to a suitable length, they look about like you’d expect:

    Kenmore 158 - pedal foot bushing - interior
    Kenmore 158 – pedal foot bushing – interior

    Turns out that the springs supporting the foot pedal rest in those pockets, so the bushing reduces the spring travel by a few millimeters. The springs aren’t completely compressed with the pedal fully depressed, so it’s all good.

    The OpenSCAD source code:

    // Kenmore Model 158 Sewing Machine Foot Control Bushings
    // Ed Nisley - KE4ZNU - June 2014
    
    //- Extrusion parameters must match reality!
    //  Print with 2 shells and 3 solid layers
    
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    
    HoleWindage = 0.2;			// extra clearance
    
    Protrusion = 0.1;			// make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //----------------------
    // Dimensions
    
    Stem = [2.5,5.7];			// through the case hole
    Cap = [3.0,10.0];			// inside the case
    
    LEN = 0;
    DIA = 1;
    
    OAL = Stem[LEN] + Cap[LEN];
    
    ScrewDia = 2.8;				// 4-40 generous clearance
    
    //----------------------
    // 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) {
    
      RangeX = floor(100 / Space);
      RangeY = floor(125 / Space);
    
    	for (x=[-RangeX:RangeX])
    	  for (y=[-RangeY:RangeY])
    		translate([x*Space,y*Space,Size/2])
    		  %cube(Size,center=true);
    
    }
    
    //----------------------
    // Build it!
    
    ShowPegGrid();
    
    difference() {
    	union() {
    		cylinder(d=Stem[DIA],h=OAL,$fn=16);
    		cylinder(d=Cap[DIA],h=Cap[LEN],$fm=16);
    	}
    	translate([0,0,-Protrusion])
    		PolyCyl(ScrewDia,OAL + 2*Protrusion,6);
    }