The Smell of Molten Projects in the Morning

Ed Nisley's Blog: Shop notes, electronics, firmware, machinery, 3D printing, laser cuttery, and curiosities. Contents: 100% human thinking, 0% AI slop.

Month: April 2014

  • V-Brake Replaceable Pad Pins

    After replacing the front wheel bearings, I replaced both pairs of brake pads. The rear brakes use holders with slide-in pads, but I’ve never been happy with the dinky little pins that retain the pads, so this time I’m using ordinary cotter pins:

    V-brake pads - cotter pin retainer
    V-brake pads – cotter pin retainer

    The rear brake pads on a diamond-frame bike sit nearly horizontally on the seat stays, with the pin head pointed upward. On Tour Easy recumbents, the pads stand almost vertically on the chain stays, with the pins sideways:

    Tour Easy rear brakes
    Tour Easy rear brakes

    That photo dates to 2010, when those brakes were new. Nary a pin has worked loose yet and I don’t expect they ever will, but …

    If the pins rust before the pads wear out, I’ll go back to those little bitty OEM stainless pins.

  • Eyeglass Bridge Repair

    The nose bridge of my “computer glasses” snapped in the exact center, thus confirming my dislike of the springy head-clamping design. These never leave my desk, so I filled a small brass tube with epoxy, shimmed the lenses on a surface plate, tweaked the bridge into alignment with a surface gauge scribe, and let it cure overnight:

    Crude nose bridge repair
    Crude nose bridge repair

    That layout deliberately reduces the springiness by aligning the lenses to be parallel across the bridge, rather than being a bit side-eyed. They’re an un-bendable alloy that provides no way to tweak the alignment; they emerged just about perfect, but it’s time for a new pair later this year.

    FWIW, they’re DIY “computer glasses”: +1 diopter to the far (“infinity”) correction and -1 diopter from the reading adder, producing a pair of glasses with the far point at about 1 meter and an unchanged reading-distance correction. That worked well, but next time I’ll use +0.75 diopter so I can sit back a bit further from those big monitors.

    Also: the rust on that lovely surface gauge scribe base came from the previous owner and looks much worse in the picture than in real life. I should run it through an Evaporust bath the next time I have some out. It’s probably a Starrett Model 257, but with absolutely no maker marks whatsoever.

  • Slicing Anomaly: Thin Fill

    Having discovering that the chocolate mold positives suffered from sparse top infill, to the extent that silicone rubber would flow right though the surface…

    Tux Gradient - PLA positive detail
    Tux Gradient – PLA positive detail

    … I ran off a few variations of the classic 20 mm calibration “cube” (which is 10 mm tall):

    Solid cube - thin top infill - on platform
    Solid cube – thin top infill – on platform

    Not only were the infilled surfaces porous, I could see right through the block! That’s impossible to photograph, but here’s a laser beam shining through the entire 10 mm stack, showing how precisely the M2 aligns 50 under-filled thread layers:

    Solid cube - laser transmission
    Solid cube – laser transmission

    The yellow spot in the middle marks the overexposed laser beam. There’s a distinct beam passing through the block that, with the proper orientation, can create a spot on the cutting mat atop my desk.

    In fact, I can blow air through the blocks; one could use them as (rather coarse) air filters.

    Normally, underfill happens when a mechanical problem prevents the printer from feeding enough filament to keep up with demand, but that’s not the case here: the perimeter threads came out exactly 0.4 mm wide for the entire height of the cube, as you can see if you click the picture for more dots. The top and bottom infill, plus all the interior threads, seem to be about half the nominal width and don’t touch their neighbors on the same XY plane at all.

    Alex Ustyantsev’s incomparable G-Code Analyzer shows that Slic3r baked the problem right into the G-Code, so the M2 is cranking out exactly the right amount of filament:

    Solid cube - Slic3r thin infill
    Solid cube – Slic3r thin infill

    The colors show the length of extruder filament per millimeter of XY motion, not the usual XY speed, with the two perimeter threads at 0.033 mm/mm and the interior at 0.18 mm/mm. In round numbers, the G-Code starves the infill by a factor of 1.8, which is close enough to the factor of two I’d guessed going into this mess.

    Being that type of guy, I set the exact extrusion thickness and width (0.20 x 0.40 mm), rather than let Slic3r pick them. The extruded thread has a fixed cross-section of (roughly) 0.080 mm2 and a millimeter of XY motion thus requires 0.080 mm3 of filament.

    The PLA filament measures 1.79 mm diameter, for a cross-section of 2.5 mm2. Getting 0.080 mm3 from the incoming filament requires feeding 0.032 mm into the extruder, which is almost exactly what you see for the perimeter threads.

    After restoring Slic3r’s default configuration, the problem Went Away, which suggests that I backed the algorithms into a corner with some perverse combination of settings. Rebuilding my usual configuration from the defaults also worked fine, so it’s obviously not Slic3r’s problem.

    Which one is not like the other ones?

    Solid cube tests
    Solid cube tests

    You can see the thin infill on three of those cubes, with the solid one in the lower right showing how it should look.

    The solid cube weighs 4.4 g and the thin-fill variations weigh 2.7 to 2.9 g. Assuming PLA density = 1.25 g/cm3 and “cube” volume = 4 cm3, a completely solid cube should weigh 5.0 g. I think 4.4 g is close enough; the top surface came out flat with nice adjacent-thread fusion. Working backwards, the average fill = 88%; the perimeter is fused-glass solid, so the actual infill will be a bit under that.

    I generally run Slic3r from my desktop box, with ~/.Slic3r symlinked to the actual config directory and its files on the NFS server downstairs. Perhaps running different versions of Slic3r on two or three different boxes, all using the same config files, wrecked something that didn’t show up in the UI and produced bad slices. I probably ran two different versions of Slic3r at the same time against the same files, although I wasn’t simultaneously typing at both keyboards.

    Moral of the story: check the G-Code before assuming a hardware failure!

  • Bird Nesting Boxes: Cleanout Time

    Springtime moves the Bird Box Cleanout chore to the front of the to-do list…

    Three different species used this box in succession:

    Bird box - stacked nests
    Bird box – stacked nests

    Those tiny birds haul all this stuff into the boxes one twig / feather / strand at a time:

    Bird box nests
    Bird box nests

    The big branches come from a pick-up-sticks session; we don’t have birds that big around here!

    One nest sported a decorative yellow plastic ribbon that the bird surely regarded as a rather tough bit of grass:

    Bird nest with plastic strand
    Bird nest with plastic strand

    They could handle this job on their own, but we think we can reduce the number of parasites by airing out the boxes. We should do the cleanout in the fall to provide nice empty cavities that they can use for winter shelter, but they seem perfectly happy to snuggle together atop the nests in the cold and the dark…

  • Some (Re)assembly Required

    Setup: the local Walmart just replaced all their cart corrals.

    What’s wrong with this picture?

    Walmart cart corral - incorrect assembly
    Walmart cart corral – incorrect assembly

    As nearly as I can tell, the installers permuted the railings; a simple three bit rotate-left-by-one operation would fix it.

    Not much to my surprise, every single corral looks like that; either the instructions were wrong or, more likely, the installers never read the instructions. Obviously, they didn’t think about the results and nobody ever checked the final result.

    Prediction: the corrals will look like that forevermore…

  • Revised Thinwall Open Box Calibration Object

    Which thinwall open box is better?

    Object A:

    Thinwall Open Box - Minkowski - solid model
    Thinwall Open Box – Minkowski – solid model

    or Object B:

    Thinwall Open Box - hull - solid model
    Thinwall Open Box – hull – solid model

    The latter, of course: I blundered the inner corner radius, which occasionally produced little tiny dots of infill that shouldn’t be there. Just one of those errors that hides in plain sight until something else goes wrong, then it’s obvious.

    Rather than fix the Minkowski version, I rebuilt it using the hull() operator to shrinkwrap four cylinders for each solid, then remove the smaller block from the larger. Commenting out the hull() operators  shows that the cylinders now line up properly:

    Thinwall Open Box - un-hulled - solid model
    Thinwall Open Box – un-hulled – solid model

    The OpenSCAD source code:

    // Thin wall open box calibration piece
    // Adapted from Coasterman's Calibration set
    // Ed Nisley - KE4ZNU - Dec 2011
    // Adjust for Slic3r/M2 - March 2013
    // Reworked for hull() with correct corner radii - April 2014
    
    //-------
    //- Extrusion parameters must match reality!
    //  None of the fill parameters matter
    
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    
    Protrusion = 0.1;           // make holes end cleanly
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    //-------
    // Dimensions
    
    Height = IntegerMultiple(5.0,ThreadThick);
    
    WallThick = ThreadWidth;
    
    CornerRadius = 2.0;
    CornerSides = 4*8;
    
    SideLen = 20.0 - 2*CornerRadius;
    
    Rotation = 45;
    
    //-------
    
    module ShowPegGrid(Space = 10.0,Size = 1.0) {
    
      Range = floor(50 / Space);
    
        for (x=[-Range:Range])
          for (y=[-Range:Range])
            translate([x*Space,y*Space,Size/2])
              %cube(Size,center=true);
    }
    
    //-------
    
    ShowPegGrid();
    
    rotate(Rotation)
    	difference() {
    		hull() {
    			for (i=[-1,1], j=[-1,1])
    				translate([i*SideLen/2,j*SideLen/2,0])
    					cylinder(r=CornerRadius,h=Height,$fn=CornerSides);
    		}
    		hull() {
    			for (i=[-1,1], j=[-1,1])
    				translate([i*SideLen/2,j*SideLen/2,-Protrusion])
    					cylinder(r=(CornerRadius - WallThick),h=(Height + 2*Protrusion),$fn=CornerSides);
    		}
    	}
    
  • Replacing Phil Wood Hub Bearings

    Back in 2001, I specified Phil Wood hubs for our then-new Tour Easy recumbents, as I had absolutely no interest in fiddling with wheel bearings; been there, done that, it’s no fun at all.

    Fast forward thirteen years, during which time I’ve done zero hub maintenance.

    A few weeks ago, while backing my ‘bent out of the garage, the front wheel stopped rolling and skidded on the asphalt. Usually, that means a brake problem or something wedged between the wheel and the fender, but in this case, the axle itself jammed: the front bearings seized. I eased a bit of penetrating oil under the seals, the bearings began turning, and we continued the ride as planned.

    A close look at the hub shows that, back in the day, Phil Wood used personalized bearings, made in Switzerland by WIB:

    Phil Wood Front Bearing - view 2
    Phil Wood Front Bearing – view 2

    Phil Wood is still in business and a brief email exchange produced the proper bearing number: PWX92, at $17 each. I bought a pair to show my support. It turns out that the new bearings are from NSK and aren’t personalized.

    The listing shows that the generic part number is 6902 and gives the dimensions:

    • OD = 28 mm
    • ID = 15 mm
    • Width = 7 mm

    I bought a lot of 10 6902RS2 deep-groove bearings from VXB for $35.90 delivered, so that I can compare their performance with The Real Thing.

    Use a pair of 5 mm hex wrenches to remove one of the end caps, then gently tap the aluminum axle out of the hub:

    Phil Wood front axle and bearing
    Phil Wood front axle and bearing

    The grease inside looks as good as the day they installed it: no water leaked through the seals or past the races.

    Having a lathe ready to hand, I grabbed the axle in the chuck and unscrewed the other cap:

    Phil Wood front axle - in lathe chuck
    Phil Wood front axle – in lathe chuck

    Everything came apart easily!

    I applied grease everywhere, slid a new bearing and its wave washer into place on the axle, aligned it with the hub bore, and pushed it halfway into place.

    Rather than beat on the bearings, I conjured a simple adapter that let me use the quick-release skewer as a press to persuade the outer race into the hub recess:

    Phil Wood front axle - improvised press
    Phil Wood front axle – improvised press

    I stacked an old bearing between the skewer nut and the new bearing on the other side, with a fender washer to distribute the pressure on the old bearing. In general, you don’t want to press the bearings into place by applying pressure to the inner race, but in this case the pressure was so low that it probably didn’t matter.

    With one bearing in place, remove the press, slide the second wave washer & bearing on the other end of the axle, install the press, push the bearing into place, tighten the end caps, and … it’s done!

    Flushed with success, I repeated the operation on the front wheel of Mary’s bike. Those bearings felt better, but they turned with essentially no friction at all. That’s a sign the internal grease was pretty much gone and failure loomed over the horizon.

    Cutting the seals out of the worst bearing from my bike showed water had gotten into the assembly:

    Phil Wood axle bearing - interior
    Phil Wood axle bearing – interior

    This is not how a bearing should look:

    Phil Wood axle bearing - disassembled
    Phil Wood axle bearing – disassembled

    The other bearing looked (and felt!) much better, but you always replace ’em in pairs.

    Mary’s bike now has the new Phil Wood / NSK bearings, mine has the VXB bearings, and we’ll see what transpires. Both bikes sound much quieter, mine in particular, and I’m sure they roll better…

    The rear tire on my bike needs replacing early this season, at which point I’ll dismantle the sprocket and install another two VXB bearings.