Posts Tagged Repairs

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!

About these ads

Leave a comment

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.

, ,

Leave a comment

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:

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,

module ShowPegGrid(Space = 10.0,Size = 1.0) {

  RangeX = floor(100 / Space);
  RangeY = floor(125 / Space);

	for (x=[-RangeX:RangeX])
	  for (y=[-RangeY:RangeY])


// Build it!


difference() {
	union() {
		PolyCyl(ScrewDia,OAL + 2*Protrusion,6);


Leave a comment