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.

Category: Recumbent Bicycling

Cruisin’ the streets

  • Monthly Science: Batmax NP-BX1 Status

    Monthly Science: Batmax NP-BX1 Status

    After powering my Sony HDR-AS30V helmet camera for nearly all of this year’s riding, the Batmax NP-BX1 lithium batteries still have roughly 90% of their original capacity:

    Batmax NP-BX1 - 2020-11
    Batmax NP-BX1 – 2020-11

    Those are hot off the Official Batmax charger, which appears identical to other randomly named chargers available on Amazon.

    They’re holding up much better after a riding season than the DOT-01 batteries I used two years ago:

    Sony DOT-01 NP-BX1 - 2019-10-29
    Sony DOT-01 NP-BX1 – 2019-10-29

    Empirically, they power the camera for about 75 minutes, barely enough for our typical rides. I should top off the battery sitting in the camera unused for a few days, although that hasn’t happened yet.

    Of course, the Batmax NP-BX1 batteries I might order early next year for the new riding season have little relation to the ones you see here.

  • Roadside Overgrowth: Life Finds a Way

    Roadside Overgrowth: Life Finds a Way

    A few years ago, this traffic splitter had a magnificent overgrowth goin’ on:

    Traffic splitter bushes - Vassar Rd at Pine Tree Dr - Streetview 2018-07
    Traffic splitter bushes – Vassar Rd at Pine Tree Dr – Streetview 2018-07

    Eventually, somebody (perhaps the NYS DOT) cut the bushes off at their bases and probably hit them with defoliant to keep them down:

    Traffic splitter stumps - Vassar Rd at Pine Tree Dr - 2020-11
    Traffic splitter stumps – Vassar Rd at Pine Tree Dr – 2020-11

    I don’t know that the stems cracked the concrete, but they surely eased the slabs apart.

    The signpost had a substantial bush at its base:

    Traffic splitter stumps - signpost - Vassar Rd at Pine Tree Dr - 2020-11
    Traffic splitter stumps – signpost – Vassar Rd at Pine Tree Dr – 2020-11

    It’s tough to keep civilization running ahead of Mother Nature

  • Bicycling For The Fun of It All

    Bicycling For The Fun of It All

    Somewhere out there, you’ll find his video:

    Photo Op - 2020-11-09 - 287
    Photo Op – 2020-11-09 – 287

    Everybody needs a reason to smile!

    Bonus: enough vehicles to keep the signal at Burnett green.

    In the unlikely event you were wondering, 287 is the frame number from the video-to-still conversion:

    ffmpeg -ss 00:03:30 -i /mnt/video/AS30V/2020-11-09/MAH07624.mp4 -t 20 -f image2 -q 1 'Photo Op - 2020-11-09 - '%03d.jpg

    All in all, a fine day for a ride …

  • Mini-Lathe Ball Drilling Fixture

    Mini-Lathe Ball Drilling Fixture

    Despite successfully drilling holes in a few plastic balls, I wanted a somewhat less terrifying setup than this:

    Micromark Ball Vise - lathe ball hack
    Micromark Ball Vise – lathe ball hack

    The stiffness of the bike helmet mirror mount suggested a similar clamp would have enough griptivity to immobilize the ball while cutting it in the lathe:

    Helmet Mirror Mount - 10 mm ball
    Helmet Mirror Mount – 10 mm ball

    Building the clamp around the lathe’s three-jaw lathe chuck eliminates the need for screws / washers / inserts:

    Lathe Ball Fixture - 19 mm - Show
    Lathe Ball Fixture – 19 mm – Show

    The Ah-ha! moment came when I realized the fixture can expose half of the ball’s diameter for drilling while clamping 87% of its diameter, because 0.5 = sin 30° and 0.87 = cos 30°:

    Lathe Ball Fixture - 19 mm - Show - front orthogonal
    Lathe Ball Fixture – 19 mm – Show – front orthogonal

    That’s an orthogonal view showing 13% of the ball radius sticking out of the fixture; it’s 6% of the diameter.

    Which looks like this in real life:

    Lathe Ball Fixture - 19 mm - sections with ball
    Lathe Ball Fixture – 19 mm – sections with ball

    The socket is offset toward the tailstock end of the clamp (on the right in the picture) to expose half its diameter flush with the surface perpendicular to the lathe axis. The other side necks down into a cylinder of the same diameter to clear the drill bit.

    This works nicely until the ball diameter equals the chuck jaw’s 20 mm length, whereupon larger balls protrude into the chuck body’s spindle opening. Although I haven’t yet built one, the 25 mm balls in my Box o’ Bearings should fit, with exceedingly sissy cuts required for large holes.

    The fixture doesn’t require support material, because the axial holes eliminate the worst of the overhang. Putting the tailstock side flat on the platform gives it the best-looking surface:

    Lathe Ball Fixture - 19 mm - Slic3r - equator
    Lathe Ball Fixture – 19 mm – Slic3r – equator

    The kerf between the segments ensures the jaws can apply pressure to the ball, whereupon the usual crappy serrated 3D printed surface firmly grabs it.

    The fixture is a slip fit on the chuck jaws:

    Lathe Ball Fixture - 19 mm - installed
    Lathe Ball Fixture – 19 mm – installed

    Tightening the jaws shoves them all the way into the fixture’s slots and clamps the ball:

    Lathe Ball Fixture - 19 mm - center drill
    Lathe Ball Fixture – 19 mm – center drill

    Overtightening the chuck will (probably) compress the ball around the drill, which will (best case) give you slightly oversize holes or (worst case) cause the ball to seize / melt around the drill bit, so sleaze up to the correct hole diameter maybe half a millimeter at a time:

    Lathe Ball Fixture - 19 mm - 6 mm drill
    Lathe Ball Fixture – 19 mm – 6 mm drill

    That fixture exposes 9.5 mm = 19/2 of the ball. The drill makes a 6 mm hole to fit the telescoping shaft seen above.

    Obviously, you must build a custom fixture for every ball diameter in your inventory, which is no big deal when you have a hands-off manufacturing process. Embossing the diameter into the fixture helps match them, although the scribbled Sharpie isn’t particularly elegant.

    The OpenSCAD source code as a GitHub Gist:

    // Lathe Ball Drilling Fixture
    // Ed Nisley KE4ZNU 2020-11
    /* [Layout options] */
    Layout = "Build"; // [Build, Show, Body, Jaws]
    BallDia = 10.0; // [5.0:0.5:25.0]
    /* [Extrusion parameters] */
    /* [Hidden] */
    ThreadThick = 0.25;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    function IntegerLessMultiple(Size,Unit) = Unit * floor(Size / Unit);
    Protrusion = 0.1; // make holes end cleanly
    inch = 25.4;
    ID = 0;
    OD = 1;
    LENGTH = 2;
    //* [Basic dimensions] */
    Chuck = [21.0,100.0,20.0]; // chuck bore, OD, jaw length
    Jaw = [Chuck[LENGTH],15.0,12.0]; // jaw free length, base width, first step radius
    JawInclAngle = 112; // < 120 degrees for clearance!
    JawAngle = JawInclAngle/2; // angle from radius
    WallThick = 5.0; // min wall thickness
    Kerf = 0.75; // space between clamp blocks
    ClampSides = 8*(2*3);
    ClampBore = BallDia/2; // clear bore through clamp
    ClampAngle = asin(ClampBore/BallDia); // angle from lathe axis to clamp front
    Plate = [ClampBore,
    BallDia + 2*WallThick + 2*Jaw.z,
    Jaw.x];
    LegendDepth = 1*ThreadWidth;
    ShaftOD = 3.6; // sample shaft
    ShowGap = 1.5;
    //———————-
    // Chuck jaws
    // Real jaws have a concave radiused tip we simply ignore
    module ChuckJaws(l=Jaw.x,r=10) {
    for (a=[0:120:240])
    rotate(a)
    linear_extrude(height=l)
    translate([r,0])
    difference() {
    translate([Chuck[OD]/4,0])
    square([Chuck[OD]/2,Jaw.y],center=true);
    for (i=[-1,1])
    rotate(i*(90 – JawAngle))
    translate([-Jaw.z/2,0])
    square([Jaw.z,2*Jaw.y],center=true);
    }
    }
    //———————-
    // Clamp body
    module ClampBlocks() {
    difference() {
    cylinder(d=Plate[OD],h=Plate[LENGTH],$fn=ClampSides); // main disk
    translate([0,0,-Protrusion]) // central bore
    cylinder(d=ClampBore,h=2*Plate[LENGTH],$fn=ClampSides);
    for (a=[0:120:240]) // kerf slits
    rotate(60 + a)
    translate([Plate[OD]/2,0,Protrusion])
    cube([Plate[OD],Kerf,2*Plate[LENGTH]],center=true);
    translate([0,0,BallDia/2 * cos(ClampAngle)]) // ball socket
    sphere(d=BallDia,$fn=ClampSides);
    for (a=[0:120:240]) { // legend
    rotate(4.5*360/ClampSides + a)
    translate([Plate[OD]/2 – LegendDepth,0,Plate[LENGTH]/2])
    rotate([0,90,0])
    linear_extrude(height=LegendDepth + Protrusion,convexity=10)
    mirror([0,0,0])
    text(text=str(BallDia," mm"),size=2.5,spacing=1.20,font="Arial:style:Bold",halign="center",valign="center");
    rotate(-4.5*360/ClampSides + a)
    translate([Plate[OD]/2 – LegendDepth,0,Plate[LENGTH]/2])
    rotate([0,90,0])
    linear_extrude(height=LegendDepth + Protrusion,convexity=10)
    mirror([0,0,0])
    text(text="KE4ZNU",size=2.5,spacing=1.20,font="Arial:style:Bold",halign="center",valign="center");
    }
    }
    }
    //———————-
    // Clamp with jaw cutouts
    module ClampBody() {
    difference() {
    ClampBlocks();
    translate([0,0,-Protrusion])
    ChuckJaws(l=Jaw.x + 2*Protrusion,r=BallDia/2 + WallThick);
    }
    }
    //———————-
    // Lash it together
    if (Layout == "Body") {
    ClampBlocks();
    }
    if (Layout == "Jaws") {
    ChuckJaws();
    }
    if (Layout == "Build") {
    ClampBody();
    }
    if (Layout == "Show") {
    ClampBody();
    color("ivory",0.2)
    ChuckJaws(r=BallDia/2 + WallThick + ShowGap); // move out for E-Z viewing
    color("red",0.4)
    translate([0,0,-Jaw.x/2])
    cylinder(d=ShaftOD,h=2*Jaw.x,$fn=ClampSides,center=false);
    color("white",0.5)
    translate([0,0,BallDia/2 * cos(ClampAngle)]) // ball socket
    sphere(d=BallDia,$fn=ClampSides);
    }

    The dimension doodles, including some notions that didn’t work:

    Lathe Ball Clamp - dimension doodles
    Lathe Ball Clamp – dimension doodles
  • Ball Drilling Misadventure

    Ball Drilling Misadventure

    My new bike helmet mirror mounts required poking a 3.6 mm hole through a 10 mm polypropylene ball:

    Helmet Mirror Ball Mount - drilled ball test
    Helmet Mirror Ball Mount – drilled ball test

    Although how I did it worked, it wasn’t pretty.

    I had a Micromark Spherical Object Drilling and Finishing Vise which was obviously intended for smaller holes in less challenging objects:

    Micromark Ball Vise - overview
    Micromark Ball Vise – overview

    Given the angle between the two plates, I didn’t see any way to put a large hole though the center of the ball:

    Micromark Ball Vise - 10 mm ball
    Micromark Ball Vise – 10 mm ball

    A scrap of wood aligned the two plates somewhat better:

    Micromark Ball Vise - wood block
    Micromark Ball Vise – wood block

    With that as a hint, the Box o’ Brass Cutoffs disgorged a better spacer, although the original screw was just an itsy too short:

    Micromark Ball Vise - brass tube
    Micromark Ball Vise – brass tube

    Grabbing the modified vise in a machinist’s vise got me most of the way toward the goal:

    Micromark Ball Vise - drill press
    Micromark Ball Vise – drill press

    Polypropylene is grabby, so the drill stuck / rotated the ball inside the vise / made a mess:

    Micromark Ball Vise - offset hole
    Micromark Ball Vise – offset hole

    A close look at the top picture shows the nasty ring around the hole (on the right side). The vise grips the ball between two holes punched in the metal plates, contacting it only at the right-angle (-ish) edges forming two rings, so there’s really not enough friction against the plastic to hold the ball in position and any slippage results in a gouge. Perhaps pearls / beads / jewelry behave differently?

    Fortunately, I had a bag of 100 balls, so a few failures gave me enough of a clue to do what I should have done from the beginning:

    Micromark Ball Vise - lathe ball hack
    Micromark Ball Vise – lathe ball hack

    That’s silicone tape wrapped around a ball grabbed in the lathe chuck, with a center drill in the tailstock. There’s barely enough traction between the ball and the chuck to get the job done, but it worked out well enough to build a few new mirrors:

    Helmet Mirror Ball Mount - new vs old
    Helmet Mirror Ball Mount – new vs old

    There’s obviously a better way, although it took a few weeks to shake out the solid model …

  • Helicopter Hovering

    Helicopter Hovering

    Spotted on a ride on New Hackensack Road around what’s grandly known as the Hudson Valley Regional Airport:

    Helicopter Hovering Practice 1
    Helicopter Hovering Practice 1

    Indeed, it was.

    I watched a private airshow for a few minutes:

    Helicopter Hovering Practice 2
    Helicopter Hovering Practice 2

    The same helicopter thumped over our house, about two miles from the runway as the chopper flies, while I was getting ready for the ride, and it was hovering as I reached the airport. I think the pilot was practicing, because the chopper made very precise movements across the airport, translated front / back / left / right, and hovered motionless for minutes at a time despite wind gusts.

    Looks like enjoyably intense concentration!

  • Tour Easy: PTT Switch Cleaning

    Tour Easy: PTT Switch Cleaning

    The switch I installed on Mary’s bike a year ago was intended for indoor use only and, without any trace of weather sealing, recently became intermittent. No surprise, as it’s happened before, but, by regarding my vast assortment of little switches as consumables, we get a low-profile / tactile / E-Z push PTT button without forming a deep emotional attachment.

    Anyhow, you can see the unsealed square perimeter of the switch actuator:

    Tour Easy - PTT button
    Tour Easy – PTT button

    The light-gray button sits on a post molded into the actuator. Pry the actuator out and the switch dome shows crud worn off the cross-shaped plunger:

    Tour Easy - PTT button - dome plate
    Tour Easy – PTT button – dome plate

    The underside of the dome has a weird golden discoloration that surely wasn’t original:

    Tour Easy - PTT button - dome plate discoloration
    Tour Easy – PTT button – dome plate discoloration

    I have no idea how a liquid (?) could have gotten in there and done that without leaving other traces along the way. The contact bump on the discolored leg had some crud built up around it which responded well to a small screwdriver.

    Contrary to what the symmetrical four-legged dome might suggest, only one leg rests on a contact in a corner:

    Tour Easy - PTT button - contacts
    Tour Easy – PTT button – contacts

    So, yes, a bit of dirt / corrosion / mystery juice in a single spot could render the whole thing intermittent.

    I removed the obvious crud from the obvious spots, wiped everything down with some Caig DeoxIT, reassembled in reverse order, and it seems to be all good again. Of course, these things only fail on the road, so it’ll take a few rides to verify the fix.