Archive for April 11th, 2011

Microscope LED Ring Illuminator

A batch of LED ring lights arrived from halfway around the planet and I’d earmarked one for a microscope ring illuminator, despite the crappy color spectrum of white LEDs. It’s better than the fluorescent desk lamp I’d been using up to this point.

This shows the business end of the LED ring light, which would probably look better more professional without the full-frontal Barbie color scheme:

Microscope LED Ring light - snout view

Microscope LED Ring light - snout view

It’s less overwhelming from the top:

Microscope with LED illuminator

Microscope with LED illuminator

The power cable came with the ring. I unsoldered it, fed the end through the shade, resoldered it, snipped off the automobile lamp adapter, wired it to a switch and a 12 V 200 mA wall wart, and hot-melt-glued the switch to the microscope. Yet another vampire load, alas.

The two parts must be printed separately to eliminate any problem with overhang, as the finished widget would have vertical walls on both sides. I thought about support material, realized that would be a lot like work, and split the thing into two parts.

LED ring light - mounting plate and shade

LED ring light - mounting plate and shade

The walls on the shade ring show the same backlash problem that cropped up there; I built these before tweaking the belts.

The mounting plate screws into the microscope’s accessory thread:

Microscope LED Ring Light - Mount Plate

Microscope LED Ring Light - Mount Plate

Admittedly, “screws into” may be an exaggeration: the mount is just a cylindrical feature slightly larger than the microscope’s minor thread diameter; it’s barely more than a snug friction fit. I clipped out four small sections to allow that ring to bend slightly as it engages the threads.

A shade contains the LED ring and keeps direct light off the objective lenses. There’s a tiny hole on one side to let the power wires out:

Microscope LED Ring Light - Shade

Microscope LED Ring Light - Shade

The two parts got glued together with the same ABS-in-MEK gunk that I apply to the aluminum build plate:

Clamping LED ring light parts

Clamping LED ring light parts

I applied three blobs of hot-melt glue inside the shade, lined up the LED ring’s power wire with the exit hole, and smooshed it into place. Pause for a breath and it’s done!

The result actually looks pretty good, despite the weird yellow-and-blue spectrum you get free with every “white” LED. I reset the camera’s color correction using a white sheet of paper. This is an ordinary M3 socket head cap screw, familiar to Thing-O-Matic owners everywhere, and a tweaked needle-point tweezer:

Sample image using LED ring light

Sample image using LED ring light

The microscope camera mount works surprisingly well, particularly given how simple it was to build.

The OpenSCAD source makes the shade walls a bit taller than you see above. When I run out of pink filament, this one’s on the rebuild list!

// Microscope LED Ring Illuminator Mount
// Ed Nisley - KE4ZNU - Mar 2011

// Build with...
//	extrusion parameters matching the values below
//	2 extra shells
//	3 solid surfaces at top + bottom

Build = "Ring";					// Mount or Ring

// Extrusion parameters for successful building

ThreadZ = 0.33;						// should match extrusion thickness
WT = 1.75;							// width over thickness
ThreadWidth = ThreadZ * WT;			// should match extrusion width

HoleWindage = ThreadWidth;			// enlarge hole dia by extrusion width

// Screw mount dimensions

MountOD = 46.85 - ThreadWidth;		// Microscope thread diameter (thread minor)
MountDepth = 2.5;					// ... length
MountID = MountOD - 6*ThreadWidth;	// ID of mount body -- must clear lenses

echo(str("Mount ID: ",MountID));
echo(str("Mount OD: ",MountOD));

PlateThick = 3*ThreadZ;				// Thickness of mounting plate beyond rings

echo(str("Plate: ",PlateThick));

// LED Ring holder dimensions

RingID = 54.0;
RingOD = 71.0;
RingFit = 0.5;						// radial gap from ID and OD

InnerShade = 6.0;					// Shade walls around ring
OuterShade = 10.0;
ShadeWall = 4*ThreadWidth;			//  wall thickness

HolderID = RingID - 2*RingFit - 2*ShadeWall;
HolderOD = RingOD + 2*RingFit + 2*ShadeWall;

echo(str("Holder ID:",HolderID));
echo(str("Holder OD:",HolderOD));

LeadWidth = 4.0 + HoleWindage;		// LED power lead hole
LeadTall = 2.0 + HoleWindage;

Protrusion = 0.1;					// extend holes beyond surfaces for visibility

//---------------
// Create thread gripper and plate

module Mount() {

  difference() {
	union() {
	  translate([0,0,PlateThick])
		cylinder(r=(MountOD/2 + HoleWindage),h=MountDepth);
	  cylinder(r=HolderOD/2,h=PlateThick);
	}

	translate([0,0,-Protrusion])
	  cylinder(r=MountID/2,h=(PlateThick + MountDepth + 2*Protrusion));
  }

}

//----------------
// Create LED ring holder

module Ring() {

  difference() {
	union() {
	  cylinder(r=HolderOD/2,h=PlateThick);

	  translate([0,0,PlateThick]) {
		difference() {
		  cylinder(r=HolderOD/2,h=OuterShade);
		  cylinder(r=(HolderOD/2 - ShadeWall),h=(OuterShade + Protrusion));
		}

		cylinder(r=(HolderID/2 + ShadeWall),h=InnerShade);
	  }
	}

	translate([0,0,-Protrusion])
	  cylinder(r=HolderID/2,h=(InnerShade + PlateThick + 2*Protrusion));

	translate([(HolderOD/2 - ShadeWall/2),0,(PlateThick + ShadeWall/2 + LeadTall/2)]) {
	  scale([ShadeWall*2,LeadWidth,LeadTall])
		rotate(a=[0,90,0])
		  cylinder(r=0.5,h=1.0,center=true,$fn=12);
	}
  }

}

//---------------
// Build what's needed

if (Build == "Mount") {
  Mount();
}
else {
  Ring();
}

,

9 Comments