Built back in 2004, the Dell GX270 PC had PS/2 keyboard and mouse ports on its back panel, so I put a PS/2 plug on the cable from the Hall effect sensor in the foot pedal. Although the original sockets mounted on a complex system board structure that I can’t repurpose, it’s easy enough to conjure up a mount for a single socket on the back panel:

A quick fit check verified the dimensions:

Astonishingly, the socket slid firmly into its slot. I love it when that happens on the first try!
The flat plate in front of the mount snaps into the chassis cutout to locate the 2-56 screw hole positions:

The screws thread directly into the mount, with the holes tapped for 2-56. PLA isn’t all that strong, but there’s enough meat to hold the mount firmly enough for my simple purposes.
And it looks pretty good, in a post-apocalyptic missing-windows sort of way:

That was easy…
The OpenSCAD source code:
// PS/2 Socket Mount // Ed Nisley - KE4ZNU - October 2014 Layout = "Build"; // Build Socket Guide //- Extrusion parameters must match reality! ThreadThick = 0.20; ThreadWidth = 0.40; HoleWindage = 0.2; // extra clearance Protrusion = 0.1; // make holes end cleanly AlignPinOD = 1.70; // assembly alignment pins: filament dia function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit); //---------------------- // Dimensions Socket = [14.1,13.3,13.0]; // PS/2 socket outline, minus tabs & wires on bottom Flange = 6.0; WallThick = IntegerMultiple(2.0,ThreadWidth); Mount = Socket + [2*Flange,WallThick,WallThick]; ScrewTap = 1.90; // 2-56 tap for machine screws ScrewOC = 19.0; echo(str("Screw OC: ",ScrewOC)); ChassisHole = [13.0,13.0,1.0]; GuideLayers = IntegerMultiple(0.5,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) { 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 the mount module SocketMount() { difference() { translate([0,Mount[1]/2,Mount[2]/2]) cube(Mount,center=true); translate([0,Socket[1]/2,Socket[2]/2]) cube(Socket + [0,Protrusion,Protrusion],center=true); for (i=[-1,1]) // holes centered on socket, not mount translate([i*ScrewOC/2,-Protrusion,Socket[2]/2]) rotate([-90,0,0]) rotate(180/6) PolyCyl(ScrewTap,Mount[1] + 2*Protrusion,6); } } //-- Totally ad-hoc drill guide to center holes on PS/2 cutout module DrillGuide() { union() { intersection() { translate([0,0,GuideLayers]) cube([2*Mount[0],2*Mount[1],2*GuideLayers],center=true); translate([0,-Socket[2]/2,Mount[1]]) rotate([-90,0,0]) SocketMount(); } translate([0,0,Protrusion]) linear_extrude(height=(3*GuideLayers - Protrusion)) { circle(d=ChassisHole[0],$fn=8*4); translate([-ChassisHole[0]/2,0]) square([ChassisHole[0],(ChassisHole[1] - ChassisHole[0]/2)],center=false); } } } //---------------------- // Build it ShowPegGrid(); if (Layout == "Socket") SocketMount(); if (Layout == "Guide") DrillGuide(); if (Layout == "Build") { translate([0,-Mount[2],0]) DrillGuide(); translate([0,0,Mount[1]]) rotate([-90,0,0]) SocketMount(); }
One thought on “Kenmore 158: Hall Effect Pedal Connector”
Comments are closed.