Windows Driver Update: Root Canal Edition

This is not what you want to see on the monitor displaying the dental X-ray images guiding your dentist during a root canal:

Epson Driver Update - X-Ray Screen
Epson Driver Update – X-Ray Screen

Yup, exactly what you’d expect:

Epson Driver Update - X-Ray Screen - Detail
Epson Driver Update – X-Ray Screen – Detail

They dismissed the message and continued the mission.

You’d think that for as much as they’re surely paying for that software package, it would hold off all the updates until after office hours…

[Those quick on the RSS feed saw this in mid-November, after a finger fumble while typing the date dropped it into the past…]

Sony HDR-AS30V Audio: Fake Fur FTW!

A scrap of fake fur cut to fit the outline of the Sony HDR-AS30V helmet camera and stuck in place with a square of double-stick foam centered above (or below, in the normal orientation) the lens:

Sony HDR-AS30V - fake fur installed
Sony HDR-AS30V – fake fur installed

Snippy remarks about what that looks like will not be tolerated, m’kay?

It reduces wind noise to an occasional rumble from strong gusts and even those don’t crush the AGC. My side of our radio conversations became clearly audible, as did shifters clicking and gravel crunching. There’s still plenty of noise, but now it comes from actual sound sources that don’t overwhelm the amp.

A layer of ordinary adhesive tape still covers the mic pores and the fur’s fabric backing extends over the tape, so the combination must muffle the sound at least a little bit. Given the source material and my hearing, it’s Good Enough; Golden Eared Audiophiles need not apply.

I also cannot detect any difference between the left and right audio channels, so the stereo separation at 15 mm isn’t worth much. I don’t know if the camera swaps the audio channels in video flip mode; that would be a nice touch.

The hairs extending outward beside the lens occasionally blew into view, so a haircut is in order:

mah00242-075 - Fake Fur in view
mah00242-075 – Fake Fur in view

Perhaps a clip that snaps over the skeleton frame to hold a neat patch of fur in place without adhesive on the camera body would be even better?

3D Printed Chain Mail Again

Everybody likes chain mail, so I made a few big sheets:

Chain Mail Sheet
Chain Mail Sheet

That’s a nominal 150 mm on the X axis and 200 mm on the Y, which pretty well fills the M2’s 8×10 inch platform after Slic3r lays a few skirt threads around the outside. All 192 links require a bit under four hours to print: all those short movements never let the platform get up to full speed.

Look no further for a brutal test of platform alignment and adhesion. The platform is slightly too high in the left front corner and, no surprise, slightly too low in the right rear. The skirt thread varies from 0.15 to 0.27 around the loop.

Hairspray works wonder to glue down all those little tiny links. They pop off the platform quite easily after it cools under 50 °C, with no need for any post-processing.

This version of the OpenSCAD code correctly figures the number of links to fill a given width & length; the old code didn’t get it quite right.

Coloring the links makes the whole thing easier to look at:

Chain Mail Sheet - detail
Chain Mail Sheet – detail

The real world version comes out in red PLA that saturates Sony imagers:

Chain Mail - flexed
Chain Mail – flexed

It really is that flexible!

The OpenSCAD source code:

// Chain Mail Sheet
// For Slic3r and M2 printer
// Ed Nisley KE4ZNU - Apr 2013
//   Oct 2013 - larger links, better parameterization
//   Nov 2014 - fix size calculation, add coloration

Layout = "Show";			// Link Build Show

//- Extrusion parameters must match reality!
//  Print with +0 shells and 6 solid layers

ThreadThick = 0.20;
ThreadWidth = 0.40;

HoleWindage = 0.2;

Protrusion = 0.1;			// make holes end cleanly

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);

// Dimensions

BarThreads = 6;
BarWidth = BarThreads * ThreadWidth;

BarThick = 4 * ThreadThick;

LinkSquare = IntegerMultiple(2.5*BarThreads,ThreadWidth);
LinkHeight = 2*BarThick + 4*ThreadThick;           // bars + clearance

echo(str("Link height: ",LinkHeight));

LinkOutDiagonal = LinkSquare*sqrt(2) - BarWidth;
LinkInDiagonal = LinkSquare*sqrt(2) - 2*(BarWidth/2 + BarWidth*sqrt(2));

echo(str("Outside diagonal: ",LinkOutDiagonal));

LinkSpacing = 0.60 * LinkOutDiagonal;		// totally empirical
echo(str("Link spacing: ",LinkSpacing));

SheetSizeX = 150;
SheetSizeY = 200;

NumLinksX = floor((SheetSizeX - LinkOutDiagonal) / LinkSpacing) + 1;
NumLinksY = floor((SheetSizeY - LinkOutDiagonal) / LinkSpacing) + 1;

echo(str("Links X: ",NumLinksX," Y: ",NumLinksY," Total: ",NumLinksX*NumLinksY));


module ShowPegGrid(Space = 10.0,Size = 1.0) {

  RangeX = floor(95 / Space);
  RangeY = floor(125 / Space);

	for (x=[-RangeX:RangeX])
	  for (y=[-RangeY:RangeY])


// Create basic link

module Link() {
		difference(convexity=2) {
			translate([0,0,LinkHeight/2]) {
				difference(convexity=2) {
					intersection() {		// outside shape
					intersection() {		// inside shape
						cube([(LinkSquare - 2*BarWidth),(LinkSquare - 2*BarWidth),(LinkHeight + 2*Protrusion)],center=true);
							cube([LinkInDiagonal,LinkInDiagonal,(LinkHeight +2*Protrusion)],center=true);
			for (i=[-1,1]) {				// create bars
					rotate(45 + 180*(i+1)/2)
					rotate(135 + 180*(i+1)/2)

// Build it!


if (Layout == "Link") {


if (Layout == "Build" || Layout == "Show") {
	for (ix=[-(NumLinksX/2 - 0):(NumLinksX/2 - 1)])
		for (iy=[-(NumLinksY/2 - 0):(NumLinksY/2 - 1)])
			translate([ix*LinkSpacing + LinkSpacing/2,iy*LinkSpacing + LinkSpacing/2,0])
				if (Layout == "Show")
					color([0.5+(ix/NumLinksX),0.5+(iy/NumLinksY),1.0]) Link();
				else Link();

Trust Multimedia Mouse: Gummy Rubber

While looking for something else, I found the old Trust Multimedia Mouse and discovered its nice grippy rubber surfaces had become adhesive slime. Graduated efforts with water, rubbing alcohol, and denatured alcohol being unavailing, I finally hit it with xylene and that did the trick:

Degummed Trust Mouse
Degummed Trust Mouse

Of course, xylene also wiped away the fancy button markings and irretrievably scarred the surface, but at least I can pick the mouse up without having it stick to my hand. Not that I pick it up that often, obviously.

Several other gadgets have a similar grippy finish, so now I know what to do when it turns gummy: throw the gadgets out…

Shimano SPD Pedals: Cleat Oilers

Here’s the solution to creaking SPD pedals due to hardened shoe cleats gritting on hardened pedal latches:

Shimano SPD pedal - cleat oiler
Shimano SPD pedal – cleat oiler

Those are carefully shaped snippets of open-cell foam tucked around the springs under the movable latches, loaded with a few drops of penetrating oil, and ridden for several months. Nary a squeak or grinding sound has emerged: far better than the results after I added a drop of oil whenever either of us heard that sound.

Similar snippets tucked under the forward latch fell out without affecting the results, from which I conclude:

  • The front latch doesn’t squeak
  • The foam on the other side is Close Enough
  • Penetrating oil oozes into a thin film over the whole pedal

The cleats don’t quite touch the ground when we walk, so we’re not leaving oily footprints.

Should I ever install new pedals, I’ll see if a larger foam block can span the gap between the front latch on the top and the movable latch on the bottom.

NTC 2.5 Power Thermistor Characteristics

From a surplus batch, with no provenance, measuring the resistance with current increasing (upper = squares) and then decreasing (lower = diamonds):

NTC 2.5 Resistance vs Current
NTC 2.5 Resistance vs Current

The resistance at a given current need not lie between those bounds, because it depends strongly on the thermistor’s temperature (duh), which depends on heat loss to the surroundings.

With that in mind, 1 or 2 Ω looks like the right ballpark for these gadgets. Figure around half a watt each at 600 mA; string three in series to get 9 Ω during a cold start and 3 Ω for warm starts. It’s not clear that would solve the transistor killing spike, but it’s a thought.

Compared to the SCK055 NTC thermistor, they have about the same resistance at the same current, despite starting at half the initial cold resistance. I think that’s because they’re somewhat larger and thus run cooler at a given current.

The original data and a portrait of the thermistor:

NTC 2.5 Power Thermistor - measurements
NTC 2.5 Power Thermistor – measurements

Anybody recognize the logo? The symbol in the striped triangle is S+M, if that helps.

It’s from TDK/EPCOS: datasheets.