Kenmore 158: Presser Foot Screw Shrink

Mary started doing “ruler quilting” that involves sewing seams aligned with templates, only to find that the thumbscrew holding the (modified) presser foot obscures the view to the left of the needle:

Kenmore Model 158 - OEM Presser Foot Screw
Kenmore Model 158 – OEM Presser Foot Screw

The screw looked to be 6-32 and I wanted to use a socket head cap screw, but thread turns out to be 6-40. Having previously bought the Brownell’s Fillister Head Screw Assortment specifically to solve that problem, all I had to do was cut the screw to length:

Kenmore Model 158 - Small Presser Foot Screw
Kenmore Model 158 – Small Presser Foot Screw

The washer epoxied to the screw provides a bit more bearing surface.

Rather than putz with a screwdriver, this handle locates itself around the screw head; turn until the blade clicks into the screw slot, then tighten or loosen as needed:

Kenmore Model 158 - Presser Foot - Driver and Screw
Kenmore Model 158 – Presser Foot – Driver and Screw

The chubby driver handle descends directly from the Sherline tommy bar handles and four-jaw chuck speed keys:

Presser Foot Screw Driver - solid model
Presser Foot Screw Driver – solid model

The slot holds a chunk of spring steel (barely visible in the driver’s snout in group photo above) that accounts for the fat shaft around the screw head:

Presser Foot Screw Driver - top - Slic3r
Presser Foot Screw Driver – top – Slic3r

I think the shaft could be a few millimeters narrower, but a bit of meat around the ends of the blade will support it against the torque.

The screw head slot is about 1 mm and the blade is 0.75 mm. I chopped the blade to fit by whacking the spring with a poorly tempered cold chisel, then flexing across the impact line until it broke. That chisel needed sharpening anyhow.

A dab of epoxy along the slot edges holds the blade in place. I inserted it flush with the top of the socket, then lined up the screw and pushed, with the steel bottomed out in the screw head and riding down for a perfect fit.

Then it’s all good!

The OpenSCAD source code:

// Presser Foot Screw Driver for Kenmore Model 158
// Ed Nisley - KE4ZNU - December 2015

use <knurledFinishLib_v2.scad>

//- Extrusion parameters must match reality!
//  Print with 2 shells and 3 solid layers

ThreadThick = 0.20;
ThreadWidth = 0.40;

HoleWindage = 0.3;			// extra clearance to improve hex socket fit

Protrusion = 0.1;			// make holes end cleanly

inch = 25.4;

//----------------------
// Dimensions

SocketDia = 5.75;				// generous fit on 6-40 fillister screw head
SocketDepth = 3.2;

Blade = [9.0,1.0,ceil(SocketDepth + 5)];		// inserted metal driver blade
echo(str("Blade: ",Blade));

ShaftDia = 1.5*Blade[0];		// un-knurled section diameter
ShaftLength = 10.0;				//  ... length

KnurlLen = 10.0;				// length of knurled section
KnurlDia = 18.0;				//   ... diameter at midline of knurl diamonds
KnurlDPNom = 30;				// Nominal diametral pitch = (# diamonds) / (OD inches)

DiamondDepth = 1.0;				//   ... depth of diamonds
DiamondAspect = 2;				// length to width ratio

KnurlID = KnurlDia - DiamondDepth;		// dia at bottom of knurl

NumDiamonds = ceil(KnurlDPNom * KnurlID / inch);
echo(str("Num diamonds: ",NumDiamonds));

NumSides = 4*NumDiamonds;		// 4 facets per diamond

KnurlDP = NumDiamonds / (KnurlID / inch);				// actual DP
echo(str("DP Nom: ",KnurlDPNom," actual: ",KnurlDP));

DiamondWidth = (KnurlID * PI) / NumDiamonds;

DiamondLenNom = DiamondAspect * DiamondWidth;					// nominal diamond length
DiamondLength = KnurlLen / round(KnurlLen/DiamondLenNom);		//  ... actual 

TaperLength = 0.50*DiamondLength;

KnobOAL = 2*TaperLength + KnurlLen + ShaftLength;

//----------------------
// 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);
}


//- Build it

ShowPegGrid();

difference() {
	union() {
		render(convexity=10)
		translate([0,0,TaperLength])			// knurled cylinder
			knurl(k_cyl_hg=KnurlLen,
				  k_cyl_od=KnurlDia,
				  knurl_wd=DiamondWidth,
				  knurl_hg=DiamondLength,
				  knurl_dp=DiamondDepth,
				  e_smooth=DiamondLength/2);
		color("Orange")							// lower tapered cap
		cylinder(r1=ShaftDia/2,
					r2=(KnurlDia - DiamondDepth)/2,
					h=(TaperLength + Protrusion),
					$fn=NumSides);
		color("Orange")							// upper tapered cap
		translate([0,0,(TaperLength + KnurlLen - Protrusion)])
			cylinder(r2=ShaftDia/2,
					r1=(KnurlDia - DiamondDepth)/2,
					h=(TaperLength + Protrusion),
					$fn=NumSides);
		color("Moccasin")						// cylindrical extension
		translate([0,0,(2*TaperLength + KnurlLen - Protrusion)])
			cylinder(r=ShaftDia/2,h=(ShaftLength + Protrusion),$fn=NumSides);

	}
	
	translate([0,0,(KnobOAL - SocketDepth + Protrusion)])
		PolyCyl(SocketDia,(SocketDepth + Protrusion),8);	// screw head socket
		
	translate([0,0,KnobOAL - (Blade[2] - Protrusion)/2])
		cube(Blade + [0,0,Protrusion],center=true);
}