Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.
That polycarbonate slab holds most of the pieces in place, with the rest on the prototype board to the left of the monster heatsink:
Model 158 Controller – Interior Overview
That bulky wire harness got bent out of the way for the photo; normally, it’s jammed down beside the ATX power supply and over the blower.
The AC Interface circuitry looks like this:
AC Power Interface
The relay on the top disconnects the AC line from the circuitry when the clamshell case opens.
The key hardware spreads neatly across the middle: the optoisolator, a 2955 PNP power transistor in a TO-220 case on a heatsink as a current amplifier, and the ET227 controlling the motor current. The gain of that mess depends strongly on the transistor temperatures, so there’s not much point in calibrating it. More on that later.
Down at the bottom of the schematic is the slit toroid and knockoff SS49(E) Hall effect sensor that senses the actual motor current.
A closer look at that board:
HV Interface board – detail
The board in the bottom left corner of the overview picture holds the Arduino Pro Mini that runs the whole show (so far, anyway), along with various & sundry analog circuitry that I’ll write up in a bit.
Conspicuous by their absence:
Motor speed sensing
Shaft position sensing
Power to the LED strip lights
Permanent mount for the pedal cable socket
Now I can make measurements without killing myself…
The GX270 case contains a perfectly serviceable ATX power supply that can power all the bits & pieces that don’t run directly from the AC power line. I torched the connector off the system board, but there’s no practical way to mount it standing up through the prototyping board I’m using for the low voltage electronics. This bracket surrounds that connector and holds it at right angles to the board, with a pair of screws clamping it in place:
ATX Connector Bracket – front
I invoked the shade of Willy McCoy, slashed the outside of the connector with a razor knife, buttered it up with epoxy, and shoved it flush inside the adapter. That messy epoxy bead around the joint should prevent it from pulling out to the front:
ATX Connector Bracket – rear
The solid model looks like you’d expect:
ATX Connector Mount
In the unlikely event you need one, make sure the slot clears the locking clip on your ATX connector, as they differ between (at least) the 20 and 24 pin versions. This is actually a split 20/24 connector, with the smaller connector terminating elsewhere to power the LED strips.
The Dell GX270 chassis has a small support plate under the CPU, evidently to support the heatsink and fan:
Optiplex GX270 CPU heatsink mount
It slides neatly into those clips on the system board tray, but it’s not actually locked into position. I think that allows it to slide around a bit under the system board, providing vertical support without constraining the board’s horizontal position. Anyhow, it looked like the easiest way to support the prototyping board that will hold the low voltage interface circuitry.
By some mischance, I found a nice aluminum plate exactly the right width, so only one side needed a saw cut and squaring. Coordinate drilling four #6 clearance holes matched the support:
LV Interface Adapter Plate – drilling
That corner of the tray had another system board retaining clip, but rather than bashing it flat, I just sawed a slit in the plate so it can slide right into position. Note the perfect alignment of that screw hole:
LV Interface Adapter Plate – retainer
I love it when all my mistakes cancel out!
Four more holes matched the prototyping circuit board and, while I had some epoxy mixed up for another part, I fastened four standoffs over the holes. A washer under each original screw soaked up exactly enough space that the screws barely indented the case and, as if by magic, hold the support plate firmly in place:
LV Interface Adapter Plate – installed
Of course, that means I must remove the circuit board to get the tray out, but the AC interface board must also come out, so we’re not talking a spur-of-the-moment operation.
The switch in the lower left corner is the original Dell “intrusion monitoring” switch harvested from a complex metal stamping in the diagonally opposite corner of the case. It’s epoxied to the case wall, with the plunger contacting a shim epoxied to the top of the case, and will eventually disconnect the AC line power from the drive electronics: case open = switch closed = lethal power off.
Back in the day, heatsinks like this sat atop Moah Powah Pentium CPUs:
ET227 transistor on heatsink
I picked it because the hulking ET227 transistor fit neatly on its backside, it seemed capable of handling 30 to 50 W of power, and I have several of them in the Big Box o’ Heatsinks. No careful thermal analysis was involved…
Mounting it on the polycarbonate sheet inside the repurposed GX270 case involved drilling & tapping a pair of 6-32 holes in one side:
ET227 Heatsink – tapping
That’s not rigid tapping on a Sherline, it’s aligning a hand-turned tap in the spindle bore. Sorry.
And, yeah, you’re not supposed to leave the semiconductors mounted when you’re drilling the heatsink. I figure there’s nothing I can possibly do without using a hammer that will bother that transistor in the slightest. What, me worry?
The transistor collector runs at line voltage, which means the entire heatsink will pose a lethal shock hazard. I thought about isolating the collector and failed to come up with anything I’d trust to be both thermally conductive and electrically insulating over the long term; the screw heads must be isolated from the collector plate, too.
The screws stick out below the polycarbonate sheet, just above the grounded EMI shell lining the case, so I flattened them a bit:
ET227 Heatsink – mounting screws
The simple rectangular strip to the rear of the chassis mounting clips is just slightly thicker than the screw heads, so they can’t possibly contact the case:
Chassis Clips
It gets glued to the underside of the nearly invisible sheet:
ET227 heatsink – gluing screw shield
With Kapton tape over the heads, Just In Case:
ET227 Heatsink – mounted
It makes a nice linear counterpoint to the jumble of AC interface wiring:
AC Interface Chassis
The insulating sheet on the case lid came from the bottom of the original GX270 system board, where I think it served much the same purpose. It’s surely not rated for AC line voltages, but the thought must count for something:
The sewing machine motor runs from 120 V AC or DC, drawing a few amps with the rotor locked, so a hulking 300 V 10 A bridge rectifier (Motorola MDA962-4, if you’re keeping score) seems grossly overrated. On the other paw, I have one, so why not?
The mounting holes pass 6-32 machine screws, but the recesses in the top seem meant for fillister head screws that I don’t have. Fortunately, I do have a lathe:
MDA962-4 rectifier – screw head adjustment
And then they just drop into place:
MDA962-4 Bridge Rectifier – installed
You can see why recessing the screw head below the top of the rectifier is a Good Thing.
Obviously, I don’t have enough adapters: I need one with N male to UHF male.
I actually spent money to get from the reverse-polarity SMA connector on the Wouxun radios directly to UHF female, matching the cable to the antenna mount in one step.
Sometimes an unsteady ziggurat of adapters isn’t appropriate.
Under ordinary circumstances, a fuseholder mounts in a square-ish panel cutout, but there’s no convenient panel to be found in the repurposed GX270 case. So now there’s a holder for the fuseholder stuck to the side of the power supply inside the case:
Fuseholder – installed
The square tube covers the entire fuseholder, with the quick-connect tabs protruding from the back, to provide enough surface area for the double-stick foam tape.
Looking down into the solid model, you can see the reduced width near the back end:
Fuseholder Holder
The black fuseholder contains a 5 A fast blow fuse, which should be entirely adequate for normal operation. In the event that a wire breaks loose and contacts the metal shell surrounding the whole chassis, it will pop instantly. That won’t disable the power supply, but it will remove line voltage from the entire motor controller chassis.
Remember that the source power line goes to the center QC tab, thus burying the always-hot contact deep in the fuseholder.
The OpenSCAD source code:
// Fuseholder mount
// Ed Nisley - KE4ZNU - August 2014
//- 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
Shell = [25.0,25]; // outside = bezel size + some stiffening
Mount = [17.3,15.7,21.0]; // mount section = slight compression in X
Base = [13.5,15.7,17.0]; // clearance over crimped contact
OAL = Mount[2] + Base[2];
//----------------------
// 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() {
translate([0,0,OAL/2])
cube([Shell[0],Shell[1],OAL],center=true);
translate([0,0,Base[2] + Mount[2]/2])
cube(Mount + [0,0,2*Protrusion],center=true);
translate([0,0,Base[2]/2])
cube(Base + [0,0,2*Protrusion],center=true);
}