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.

Author: Ed

  • Monthly Image: Bootleg Bell Ringers

    MHVLUG meetings end around 8 pm and, depending on this-and-that, the bell atop Old Main on the Vassar College campus will be tolling the hour as we emerge. Here’s a scene-setting photo from Wikimedia, taken from about where I parked the car:

    Vassar College Old Main Building
    Vassar College Old Main Building

    Although the bell didn’t have its usual steady rhythm after the most recent meeting, I didn’t expect this:

    Bell Ringers atop Vassar Old Main
    Bell Ringers atop Vassar Old Main

    The tree grows in the near foreground, not over Old Main.

    Two of them realized the risk of permanent hearing damage, but do you see the real hazard?

    Take a closer look:

    Bell Ringers atop Vassar Old Main - detail
    Bell Ringers atop Vassar Old Main – detail

    No, it’s not the guy leaning against the historic-but-flimsy railing. That folded-dipole antenna over on the right side most likely connects to Vassar’s 45 W UHF EMS repeater; at that range, RF can burn deeply.

    Obviously, the student body needs more amateur radio operators…

    Taken with the Canon SX230HS braced on the side of the Forester and zoomed all the way.

  • Proto Board Holder: 80×110 mm Version

    A simple holder for 80×110 mm prototyping boards:

    Random LED Dots - circuit board
    Random LED Dots – circuit board

    It’s similar to the holder for the LED current controller board, minus the center screws, plus nicely rounded corners and a cutout for wires emerging from underneath:

    Proto board holder
    Proto board holder

    Slic3r’s Hilbert Curve infill definitely looks better than the usual straight-line pattern:

    Circuit Board Holder - Slic3r preview
    Circuit Board Holder – Slic3r preview

    The OpenSCAD source code:

    // Test support frame for Hall Effect LED Blinky Light
    // Ed Nisley KE4ZNU - Sept 2013
    
    Layout = "Fancy";				// Fancy Plain
    
    PlainColor = "LightBlue";
    
    ClampFlange = true;
    
    //- Extrusion parameters - must match reality!
    
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    
    Protrusion = 0.1;
    
    HoleWindage = 0.2;
    
    //- Screw sizes
    
    inch = 25.4;
    
    Tap4_40 = 0.089 * inch;
    Clear4_40 = 0.110 * inch;
    Head4_40 = 0.211 * inch;
    Head4_40Thick = 0.065 * inch;
    Nut4_40Dia = 0.228 * inch;
    Nut4_40Thick = 0.086 * inch;
    Washer4_40OD = 0.270 * inch;
    Washer4_40ID = 0.123 * inch;
    
    //- PCB sizes
    
    PCBSize = [110.0,80.0,1.5];
    PCBShelf = 2.0;
    
    Clearance = 2*[ThreadWidth,ThreadWidth,0];
    
    WallThick = IntegerMultiple(5.0,ThreadWidth);
    FrameHeight = 8.0;
    
    ScrewOffset = 0.0 + Clear4_40/2;
    
    OAHeight = FrameHeight + Clearance[2] + PCBSize[2];
    
    FlangeExtension = 5.0;
    FlangeThick = IntegerMultiple(2.0,ThreadThick);
    Flange = PCBSize
    			+ 2*[ScrewOffset,ScrewOffset,0]
    			+ 2*[Washer4_40OD,Washer4_40OD,0]
    			+ [2*FlangeExtension,2*FlangeExtension,(FlangeThick - PCBSize[2])]
    			;
    
    echo("Flange: ",Flange);
    NumSides = 4*5;
    
    WireChannel = [Flange[0],15.0,3.0 + PCBSize[2]];
    WireChannelOffset = [Flange[0]/2,25.0,( + FrameHeight + PCBSize[2] - WireChannel[2]/2)];
    
    //- Adjust hole diameter to make the size come out right
    
    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);
    }
    
    //- Put peg grid on build surface
    
    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);
    
    }
    
    //- Build it
    
    ShowPegGrid();
    
    difference() {
    	union() {									// body block and screw bosses
    		translate([0,0,OAHeight/2])
    			color(PlainColor)
    			cube(PCBSize + Clearance + [2*WallThick,2*WallThick,FrameHeight],center=true);
    		for (x=[-1,1], y=[-1,1]) {
    			translate([x*(PCBSize[0]/2 + ScrewOffset),
    						y*(PCBSize[1]/2 + ScrewOffset),
    						0])
    				color((Layout == "Fancy") ? "Orchid" : PlainColor)
    				cylinder(r=Washer4_40OD,h=OAHeight,$fn=NumSides);
    		}
    		if (ClampFlange)
    			color((Layout == "Fancy") ? "SeaGreen" : PlainColor)
    			linear_extrude(height=Flange[2])
    				hull()
    					for (i=[-1,1], j=[-1,1]) {
    						translate([i*(Flange[0]/2 - Washer4_40OD/2),j*(Flange[1]/2 - Washer4_40OD/2)])
    							circle(d=Washer4_40OD,$fn=NumSides);
    					}
    	}
    
    	for (x=[-1,1], y=[-1,1]) {				// screw holes and washer recesses
    		translate([x*(PCBSize[0]/2 + ScrewOffset),
    					y*(PCBSize[1]/2 + ScrewOffset),
    					-Protrusion])
    			rotate((x-1)*90)
    			PolyCyl(Tap4_40,(OAHeight + 2*Protrusion));
    		translate([x*(PCBSize[0]/2 + ScrewOffset),
    					y*(PCBSize[1]/2 + ScrewOffset),
    					OAHeight - PCBSize[2]])
    			PolyCyl(1.2*Washer4_40OD,(PCBSize[2] + Protrusion),NumSides);
    	}
    
    	translate([0,0,OAHeight/2])					// through hole below PCB
    		cube(PCBSize - 2*[PCBShelf,PCBShelf,0] + [0,0,2*OAHeight],center=true);
    
    	translate([0,0,(OAHeight - (PCBSize[2] + Clearance[2])/2 + Protrusion/2)])	// PCB pocket on top
    		cube(PCBSize + Clearance + [0,0,Protrusion],center=true);
    
    	translate(WireChannelOffset)									// clearance for cable on solder side
    		cube(WireChannel + [0,0,Protrusion],center=true);
    }
    
  • Tour Easy: New Front Fork

    A view from the wheel side shows the crack in my Tour Easy’s fork lug had opened a bit more to the rear, which is about what you’d expect from the forces involved:

    Tour Easy - cracked fork lug
    Tour Easy – cracked fork lug

    Removing the handlebar stem from the fork steerer tube requires removing the fairing, its mounting brackets, the fender, a speed sensor, then snipping cable ties to release all the cables and wires. Minus the prep work, removing the fork from the bike isn’t anything special.

    The lower bearing (a YST 8311N in black) has rollers, not balls. The headset has J.I.S. 1 inch dimensions, captured in a screen grab to forestall link rot:

    YST 8311N headset data
    YST 8311N headset data

    Which means cheap & readily available ISO standard headsets aren’t a drop-in replacement. The incomparable Harris Cyclery has J.I.S. ball-bearing headsets in stock and their Tange Levin CDS HD1002 needs just 1.6 mm of additional washer to match the YST’s 35 mm stack height…

    The front side of the crown got rather graunched over the last 14 years, but I punted the problem by rotating the race half a turn to put the eroded spots toward the rear, where they’ll be under minimal stress:

    Tour Easy crown bearing - damage
    Tour Easy crown bearing – damage

    Re-seating the race brought an ancient Headsetter tool from the drawer:

    Tour Easy fork with Headsetter
    Tour Easy fork with Headsetter

    It’s basically galvanized pipe, chamfered on one end, with a set of nuts & washers on a length of all-thread rod just slightly too short for the occasion: this might be the second time I’ve used the thing and I had to supply my own all-thread & nuts. Ah, well, it probably predates the Tour Easy’s design by a decade.

    The lower headset race looked to be in pretty good shape, so I left it alone. Normally, such bearing damage gives you indexed steering, but Tour Easy handlebars provide so much lever arm that nothing interferes with the bike’s steering.

    The new fork didn’t have a notch for the keyed washer isolating the locknut from the upper bearing race. The usual advice is to file off the key and apply threadlocker, which makes adjusting the two nuts tedious, so I restored the notch in the steerer threads:

    Tour Easy - filed steerer tube key slot
    Tour Easy – filed steerer tube key slot

    Yes, that’s a lethally sharp steel shaving from the not-very-well-reamed ID curling up in the middle of the notch.

    The fender mount bridge on the new fork sits half an inch higher in relation to the brake bosses, putting the fender against the V-brake cable hardware.  Anything touching the V-brake messes up the pad-to-rim alignment, so I conjured a snippet of aluminum to lower the fender just enough to clear the brakes:

    Tour Easy - new fork - fender extender
    Tour Easy – new fork – fender extender

    I think that calls for a nice 3D printed bracket, too, but the snippet got me back on the bike faster. When I preemptively replace the fork on Mary’s bike, then I’ll do a proper bracket for both of us.

    The garish red silicone tape replaces the previous black cable ties. It matches the tube paint surprisingly well and doesn’t look good on the fork, so I’ll replace it with cable ties in due course.

    A few miles of shakedown riding settled the crown race against the fork, another 1/6 turn of the upper race / lock nut snugged up the bearings, and it’s all good again.

    Wow, it’s great to be back on the bike!

    (Due to the vagaries of writing this stuff up ahead of time, there’s actually two weeks of realtime between the post that appeared on Monday and this one.)

  • Kenmore 158: Largest Spool Holder, Now With Eye Protection

    A tip o’ the cycling helmet to Mike for catching this oversight:

    Large spool holder - added bead and guide
    Large spool holder – added bead and guide

    I’d rounded the end of that steel rod, it stands behind the sewing machine, and blah blah blah. He was right: it needed a bead. That’s a fancy one pilfered from our Larval Engineer’s stash, held in place by a blob of fast-cure epoxy.

    Selah.

    The safety pin atop the bobbin on the left spool pin feeds the thread into the machine’s upper thread guide at the proper angle to make it all work; a direct line from the spool holder hook isn’t quite right.

  • Tour Easy: Cracked Fork!

    The fairing on my Tour Easy started making unusually loud booming sounds while we were out on an errand, so when we got home I poked around the front end to see what had worked itself loose. I finally managed to produce the sound, which turned out to be due to a very small motion in the fork:

    Cracked Tour Easy Fork
    Cracked Tour Easy Fork

    That’s after 14 years and maybe 30,000 miles, so I’d say it did pretty well, all things considered.

    On an upright bike a front fork failure kills you: the broken blade rotates forward, jams into the ground, and flips you over the handlebars. I rode about 8 miles with a broken fork and nothing exciting happened.

    The Tour Easy’s design dates back to the mid-1970s, when custom bike parts weren’t readily available, and the front fork seems sized for 26 inch tires. A tubular bridge welded across just over the 20 inch (37-406) tire provides a fender mount, stiffens the blades, and, in my case, acts as a second bridge. On my bike, the fork supports the polycarbonate fairing and the Phil Wood hub provides an absolutely rigid connection between the blade dropouts.

    For reference, the headset uses J.I.S 1 inch dimensions, with a 27.0 mm ID crown bearing. The stack height runs around 35 mm, but I don’t know the head tube ID.

    A pair of forks are on their way; I’ll replace the one on Mary’s bike before it fails…

     

  • Always Sign Your Work

    Quite some years ago, I added a wire shelf to the bottom of the “pantry” closet to hold odds-and-ends. The most recent deep-cleaning cycle required removing the shelf, which required removing the mounting brackets to get the fool thing out of the closet.

    The backside of one bracket shows I had a bit of trouble matching the mounting holes to the wall anchors:

    Pantry wire shelf brackets - overview
    Pantry wire shelf brackets – overview

    The lower bracket bears some advice from my Shop Assistant:

    Pantry wire shelf brackets - detail
    Pantry wire shelf brackets – detail

    Check thrice
    Measure twice
    Cut once

    From what little we hear these days, she’s learned the value of always checking her work…

    And she signs it, too.

  • No Affordance for Pulling

    Well, I didn’t expect this:

    Unsleeved USB memory
    Unsleeved USB memory

    Turns out the only thing holding that case in place was a blob of hot-melt glue on the bottom of the PCB. Hot-melt glue doesn’t bond well to anodized aluminum, the RPi had been sitting outside on a winter day taking time-lapse bird feeder pictures, and the USB connector seemed a bit more snug than usual.

    So I slobbered more hot-melt glue on the end of the PCB, jammed the case back in place, and that was that.

    The PCB has two snap lines to accommodate shorter cases, with corresponding activity LED locations; it seems I got the long-case version.