Reversal Zits: Oozebane Variations

Of late, the Thing-O-Matic has been producing very nice results with one annoyance: zits at the end of threads that seem to be caused by the Skeinforge Reversal plugin. That may be unjustly tarring it, so I’ve been running parameter variations while cranking out tchotchkes for an upcoming presentation.

This stack of Chalk Men shows the problem.

Chalk Men - Oozebane variations
Chalk Men - Oozebane variations

The bottom and top have my standard 25 rev/min, 125 ms Reversal settings and don’t look all that bad. The middle two have Oozebane turned on: lower = 1.0 and upper = 0.25.

Fairly obviously, 1 mm of Oozebane early start produces dangling strands and the corresponding 1 mm of early shutdown leaves just less than 1 mm of gap. Not useful.

Reducing Oozebane to 0.25 mm produces results only slightly worse than no Oozebane at all.

The rest of the thinly documented Oozebane parameter space doesn’t seem helpful. I think it was intended more for DC motor extruders than steppers, although it didn’t seem useful even then.

So Oozebane doesn’t seem to help.

I Loves Me My Tour Easy

ZNU APRS speed
ZNU APRS speed

My speedometer stored 39.3 mph max somewhere near that point, downhill along nice S curves that end, alas, in that abrupt left turn at the creek. By glancing across the field inside the corner, hoping for the best, and clipping the yellow line, I can emerge at 20+ mph, but some day that’ll have a bad outcome.

I can’t hold that pace on the flats, of course, but the 22 mile ride came out at 15 mph average and, unlike the guy on the Rail Trail about five miles later, I wasn’t trying to find a more comfortable position on the saddle.

News Flash: when you go Rail Trail dueling, don’t match your knobby-tire mountain bike against a faired Tour Easy, even if the TE driver is the canonical Fat Old Guy with a Beard and the bike carries all manner of racks and packs and accoutrements. Heh!

Thing-O-Matic: Extruder Motor Support

Extruder motor support
Extruder motor support

In the process of tracking down the source of those Reversal zits, I noticed the motor mount flexed slightly as it reversed. That could produce a bit of backlash, so I added a quick-and-dirty support strut under the motor.

It’s a threaded standoff with a screw in one end. The nut (secured with a dab of Loctite) lets a wrench do the height adjustment. It just stands there, held in place by compression loading.

Unfortunately, it really didn’t have much of an effect on the problem, about which I’ll say more in a bit.

Stepper extruder design has advanced during the last half year, so I may print up the latest iteration of Greg’s Extruder. There’s also a beefy NEMA 17 on its way around the curve of the planet that might suffice as a direct-drive extruder motor along the lines of the MBI MK6 StepStruder motor, but with lower winding resistance for better performance.

Thing-O-Matic: Overhead Filament Spool Holder

Three spools of filament just arrived and needed a home; up to this point, I’ve been using the Lazy Susan Filament Spool for loose bundles atop the Thing-O-Matic. Until I use the last of the loose filament, which could take a while, I figured I could tack the spools to the floor joists.

It turns out 1-1/2 inch PVC drain pipe fits perfectly through the spool bore, so I squared up the ends of a chunk long enough to span the floor joists at a convenient distance from the printer. That steady rest doesn’t see a lot of use, but when I need it, I need it bad:

Turning spool axle
Turning spool axle

The endplate solid model looks about like you’d expect:

Filament spool axle endplates
Filament spool axle endplates

I could turn those things from two chunks of plate, but this is much neater; a 3D printer makes short work of custom-sized parts.

The two pegs of yellow filament keep the axle endplate from turning on the central screw (and, inevitably, unscrewing themselves); add glue in the blind holes and trim to fit with a flush-cutting nipper. The aluminum brackets come from a pile I’ve been using for years: as almost always, the holes were in exactly the right places.

Filament spool axle endplate
Filament spool axle endplate

With all that in hand, up it went:

Overhead filament spools
Overhead filament spools

I bent some coat hanger wire into a guide bar with three eyelets for the filaments, plus another chunk to hold the guide in position. Three small (color coordinated!) clamps prevent the unused filament from unwinding.

I’m not completely happy with this arrangement, because there’s not enough control over the filament energy: the coil around each spool wants to expand into a tangle exactly the size and shape of the Basement Laboratory and there’s not a lot preventing that. I think a variation on tbuser’s Spool Guard theme might be in order: let the filament expand within a tightly enclosed space around each spool.

The OpenSCAD source code:

// Filament spool shaft adapter
// Ed Nisley KE4ZNU July 2011

include </home/ed/Thing-O-Matic/lib/MCAD/units.scad>

Layout = "Show";					// Show or Build

//-- Extrusion parameters

ThreadThick = 0.33;
ThreadWT = 2.0;
ThreadWidth = ThreadThick * ThreadWT;

HoleWindage = 0.1;			// enlarge hole dia by this amount
Protrusion = ThreadThick;

//-- End Plate dimensions

PlateOD = 51.0;
PlateThick = ThreadThick * ceil(3.0 / ThreadThick);

AxleID = 40.0;
AxleThick = ThreadThick * ceil(5.0 / ThreadThick);

HoleSpacing = 0.75 * inch;

StubDepth = ThreadThick * ceil(2.5 / ThreadThick);
StubDia = 3.0;

ScrewDepth = PlateThick + AxleThick;

PrintOffset = 0.8*PlateOD/2;			// fraction of dia to offset objects for printing

Tap6_32 = 0.1065 * inch;
Clear6_32 = 0.1495 * inch;
Head6_32 = 0.270 * inch;
Head6_32Thick = 0.097 * inch;
Nut6_32Dia = 0.361 * inch;		// across points
Nut6_32Thick = 0.114 * inch;

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

PegSize = 1.0;

module ShowPegGrid(Size) {
	for (x=[-5:5])
	  for (y=[-5:5])
		translate([x*10,y*10,Size/2])
		  %cube(Size,center=true);

}

//----------------------
// Single endplate

module AxleEndPlate() {

  difference() {
	union() {
	  cylinder(r=PlateOD/2,h=PlateThick,$fa=10);
	  translate([0,0,PlateThick])
		cylinder(r=AxleID/2,h=AxleThick,$fa=10);
	}

	translate([0,0,-Protrusion])
	  PolyCyl(Tap6_32,ScrewDepth + 2*Protrusion);

	for(y=[-HoleSpacing,HoleSpacing])
	  translate([0,y,-Protrusion])
		PolyCyl(StubDia,StubDepth + Protrusion);

  }

}

//----------------------
// Lash it together

if (Layout == "Show")
	ShowPegGrid(PegSize);

translate([-PrintOffset,-PrintOffset,0]) AxleEndPlate();

translate([PrintOffset,PrintOffset,0]) AxleEndPlate();

Hot Melt Glue Burn

I managed to slobber some fresh hot melt glue on my finger…

Glue burn - after cooling
Glue burn - after cooling

It was whoop-dee-do brown carpentry glue from a gun that claims 350 °F output, so what looks like toasted flesh is actually the last remnants of the glue. The advice seems to converge around do not peel the glue (because you’ll rip the damaged skin and leave yourself with an infection) and keep the burn cool.

After a few hours cuddling with an ice pack I figured I was probably going to live through this. The next morning the glue flaked off, leaving a mighty blister behind.

Glue burn - blister
Glue burn - blister

Looks like something Piter de Vries might have enjoyed inflicting, had Frank Herbert only known about hot melt glue guns: “… there’s a sort of beauty in the pattern of pus-white blisters on naked skin, eh, Baron?”

One should don all manner of Personal Protective Equipment before using a glue gun, but I bet you don’t, either.

Thing-O-Matic: Un-twisting the Build Platform

Shimmed X-axis rod
Shimmed X-axis rod

The aluminum build platform plates remain both flat and level, but the outline and test extrusions are consistently thin by 0.05 to 0.10 mm in the right rear corner and thick by about the same amount in the right front. That means the rear corner is too high and the front corner is too low, but the whole left side is flat to within my ability to measure it.

The effect is significant, because I’m laying down the first layer at 10 mm/s with a layer thickness of 0.33 mm; the first layer looks exactly like all the other layers in the object. With the middle of the plate at 0.33 mm below the nozzle, the fill can be cramped at 0.23 mm and sparse at 0.43 mm. The long-term Z-min switch repeatability seems to be no better than 0.05 mm, so when the midline goes below 0.30 mm, the higher rear corner really crowds the plastic.

Given that the left side is level front-to-back, the only way a flat plate can appear non-flat is if the X and Y axis rods aren’t quite parallel: the stage rolls or yaws as it moves.

That could indicate a bent rod, but the last time I rolled those rods on a surface plate, they’re perfectly straight. Maybe something horrible has happened, but any stress capable of bending one of those rods will wreck the printer in passing.

Alas, a static platform adjustment can’t fix a dynamic motion, but tweaking the rods to be (more) parallel could reduce the problem. I tried visualizing the possible causes and cures, then decided to stop thinking so much, just change something, then measure the results.

Why my head exploded:

  • The thickness varies from front-to-back, so the Y axis rods are non-parallel, which should affect both the left and right sides. But the left side is perfectly level and the right side is not.
  • The thickness varies from left-to-right, so the X axis rods are non-parallel, which should affect both the front and back sides. But they vary oppositely: the front tilts down to the right and the back tilts up to the right. The midline from left to right, however, is level to within my ability to measure it.

I had shimmed the rear X axis rod quite some time ago, so I decided to try a simple adjustment: move the shim from top to bottom. The picture shows the 0.4 mm shim in its original location at the top of the rod; the edge is barely visible. For lack of anything smarter, I moved the shim to the bottom of the rod to push the end upward.

Shazam! The results of a test extrusion in units of 0.01 mm:

39 35
40 35 40
33 36

[Update: Typo in the rear-left was 49, should be 39. Drat!]

Which says it’s give-or-take 0.05 mm around the middle, with the rear-left corner now a tad low; bear in mind that 0.05 mm is about the limit of my measurement ability. It’s off to a good start, anyway, and we’ll see how it fares over the next few weeks.

Methinks if you’re serious about this 3D printing thing, you need a printer with real axis alignment adjustments and enough stability to make them meaningful. Nophead uses custom code that tweaks the G-Code’s Z-axis coordinates on the fly based on an initial three-point probe, which is a wonderful solution that’s not in the cards for RepG. EMC2 could incorporate that in the kinematics module, but at the moment it does just XY leadscrew mapping. It’s simpler, albeit more expensive on a per-machine basis, to get the mechanical alignment right the first time.

Ampeg B-12-XY: Recapping

Just for completeness, here’s the original underside:

Ampeg B-12-XY - Underside - old caps
Ampeg B-12-XY - Underside - old caps

And with the new caps, many from Eks’ stash and a few from mine:

Ampeg B-12-XY - Underside - new caps
Ampeg B-12-XY - Underside - new caps

With all those in place, the firebottles lit up properly, the power tube plates remained dark, and it sounded great. The edge-lit engraved acrylic panel in the middle is a wonderful custom mod!

Ampeg B-12-XY Firebottles
Ampeg B-12-XY Firebottles

It’s in mint condition, with the original footswitch and a remote Echo speaker box with a pair of drivers:

Ampeg B-12-XY - ready to rock
Ampeg B-12-XY - ready to rock

It still has those original huge electrolytics, though. Eks says the best test comes after half an hour: if the cans remain cool, the leakage and ESR will be good enough.That’s the case, so we’re rolling with them. However, the amp has some residual hum that the Hum nulling pot can’t remove, plus a bit of noise, which means those ‘lytics probably hover at the bare minimum values required to keep it going.

I discovered (inadvertently, of course) that swapping the two identical 6D10 triple triode tubes killed the Vibrato oscillator. That triode would oscillate for a few seconds after the footswitch grounded the cathode, but one tube didn’t have enough gain to keep it going. More likely than not, the feedback resistors have increased in value, too. Swapping the 6D10s restored it to operating condition.

My Shop Assistant compared her tiny DSP Fender amp with this monster and concluded that DSP effects only sound good when you don’t have the original for comparison. Of course, you could lose that tiddly amp inside the Ampeg’s speaker case.

I should’a learned to play the guitar…