Advertisements

Archive for August 22nd, 2014

FT82-43 Slit Toroid: Armor

Given the fragility of ferrite toroids in general and slit toroids in particular, a touch of up-armoring seems sensible:

FT82-43 toroid - mounted

FT82-43 toroid – mounted

The solid model includes a toroid shell with roughly the right curves:

Toroid Mount - Show layout

Toroid Mount – Show layout

That puts a nice rounded shape on the bottom of the armor, not that that makes much difference:

Toroid Mount - Build layout

Toroid Mount – Build layout

The central hole passes a 4-40 brass, nylon, or stainless steel screw. Most of the magnetic field stays within the ferrite and, heck, this isn’t a crazy-sensitive analog application, so even an ordinary steel screw shouldn’t cause any particular problems.

The rectangular (not pie-wedge) slit barely passes the Hall effect sensor.

I’ll pour some clear epoxy over the toroid, with tape masking the ferrite core and sealing the ends, to immobilize the windings. That sounds like a good idea after calibration and suchlike.

The OpenSCAD source code, which should be sufficiently parametric that I can crank ’em out for all the other toroids large enough to accept a screw:

// Toroid coil mounting bracket
// Ed Nisley - KE4ZNU - August 2014

Layout = "Mount";			// Coil Mount Build Show

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

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

ID = 0;												// subscripts for cylindrical objects
OD = 1;
LEN = 2;

Coil = [10.25,23.50,8.3];							// wound toroid core

SensorThick = 2.0;

BaseThick = IntegerMultiple(1.0,ThreadThick);		// baseplate under coil
WallThick = IntegerMultiple(1.0,ThreadWidth);		// walls beside coil

ScrewHoleDia = 4.0;									// allow alignment slop around 3 mm / #4 screws

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

}

//----------------------
// Basic coil shape

module CoilShape() {
	
CornerRadius = min((Coil[LEN] / 2),((Coil[OD] - Coil[ID]) / 2))  / 3;
MidRadius = (Coil[ID] + Coil[OD]) / 4;
HalfX = (Coil[OD] - Coil[ID]) / 4 - CornerRadius;
HalfY = (Coil[LEN] / 2) - CornerRadius;

echo(CornerRadius,MidRadius,HalfX,HalfY);
	
	color("Goldenrod")
	render(convexity = 2)
		rotate(180/20)
			rotate_extrude(convexity=3,$fn=20)
				translate([MidRadius,0])
					hull() 
						for (i=[-1,1],j=[-1,1])
							translate([i*HalfX,j*HalfY])
								circle(r=CornerRadius,$fn=24);
}

//----------------------
// Mount

module Mount() {

	difference() {
		rotate(180/20)
			cylinder(h=(BaseThick + Coil[LEN]),d=(Coil[OD] + 2*WallThick),$fn=20);
		
		translate([0,0,-Coil[LEN]])							// make screw hole
			rotate(180/6)
				PolyCyl(ScrewHoleDia,3*Coil[LEN],$fn=6);
			
		translate([0,0,BaseThick + Coil[LEN]/2])			// set bottom curve
			CoilShape();
			
		translate([0,0,BaseThick + Coil[LEN]])				// clear out top
			CoilShape();
			
		translate([(Coil[ID]/2 + Coil[OD]/2),0,0])
			cube([Coil[OD],SensorThick,3*Coil[LEN]],center=true);
	}
}


ShowPegGrid();

if (Layout == "Coil") {
	CoilShape();
}

if (Layout == "Mount")
	Mount();

if (Layout == "Show") {
	Mount();
	translate([0,0,(BaseThick + Coil[LEN]/2)])
		CoilShape();
}


if (Layout == "Build") {
	Mount();
}
Advertisements

,

Leave a comment