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: Machine Shop

Mechanical widgetry

  • Amazon Packaging: Grease Cartridge

    Amazon Packaging: Grease Cartridge

    I knew this would happen, so I made sure to not order anything that could possibly arrive at the same time:

    Grease cartridge - casual packaging
    Grease cartridge – casual packaging

    I’ll apply the grease by hand, so the fact the cartridge cannot fit into a piston-fed gun doesn’t matter:

    Grease cartridge - cap damage
    Grease cartridge – cap damage

    I recently placed one order for a BFW and another for four small bottles, all of which arrived in a single box with a thoroughly flattened air pillow strip. Fortunately, the bottles were plastic and survived unscathed, but I’m sure it got ugly in there.

    Given that one order for multiple items has arrived in three different boxes on two different days, it’s exceedingly difficult to work around Amazon’s corporate-level indifference for safe packaging.

  • Tour Easy Front Fender Bracket Replacement

    Tour Easy Front Fender Bracket Replacement

    After nearly two and a half years, this happened:

    Tour Easy front fender bracket - fracture
    Tour Easy front fender bracket – fracture

    Yup, it broke just where I expected!

    The front fender on Mary’s bike suffers a bit more stress than you might expect, as she must wheel it through high grass to her Vassar Farms garden plot and the low-hanging spray flap can snag on the taller greenery.

    Re-slicing the original model, printing the result, and installing it took about an hour:

    Tour Easy front fender bracket - installed
    Tour Easy front fender bracket – installed

    Affixing the strut with duct tape and a cable tie looks déclassé, but continues to work better than anything else I’ve tried: simple, flexible, easily readjusted, totally nonfussy.

    At least I now use black outdoor-rated double-stick foam tape, so life is increasingly good …

  • Satco PAR30 LED Spotlight Teardown

    Satco PAR30 LED Spotlight Teardown

    One of those LED spotlights may have barely outlasted its worthless warranty, but not by much, and has been languishing on the back of the bench with “Flickers hot” scrawled on its side.

    The metal base didn’t respond to twisting, so I slit the threads with a cutoff wheel:

    Satco PAR30 - thread slit
    Satco PAR30 – thread slit

    Applying the screwdriver removed the base to reveal a silicone rubber casting:

    Satco PAR30 - thread silicone
    Satco PAR30 – thread silicone

    The small wire emerging near the edge of the plastic case seems to be the neutral contact to the shell, with a poor enough joint to suggest it might have been why the lamp flickered when it got hot.

    Some brute force snapped the silicone off at the bottom of the plastic case and broke the two wires bringing AC to the PCB:

    Satco PAR30 - thread silicone base
    Satco PAR30 – thread silicone base

    Digging around inside produced a debris field of silicone crumbs, broken resistors, torn caps, and various other components, with zero progress toward removing the shell:

    Satco PAR30 - silicone extraction
    Satco PAR30 – silicone extraction

    A little lathe work converted a chunk of PVC pipe into a crude mandrel supporting the mangled case:

    Satco PAR30 - base cutting setup
    Satco PAR30 – base cutting setup

    A few millimeters of sissy cuts released a silicone O-ring sealing the shell against the reflector:

    Satco PAR30 - O-ring seal
    Satco PAR30 – O-ring seal

    Continuing the cuts eventually revealed the three screws holding the shell to the reflector and the two wires powering the LED:

    Satco PAR30 - reflector separated
    Satco PAR30 – reflector separated

    Chopping off the screws with a diagonal cutter freed the shell and revealed the top of the PCB:

    Satco PAR30 - electronics top
    Satco PAR30 – electronics top

    It really does have a surprising number of components!

    Those three screws connected the LED panel / heatsink to the shell through the back of the double-walled reflector. More brute force peeled the outer shell away and released the panel:

    Satco PAR30 - lens assembly
    Satco PAR30 – lens assembly

    Each of the 5050 packages contains a pair of white LEDs with 5.2 V forward drop for the pair, at the very low test current. They’re all in series, so you’re looking at well over 60 V total forward drop:

    Satco PAR30 - LED panel detail
    Satco PAR30 – LED panel detail

    Note that the wiring, which nobody will ever see, follows the electrical color code of white = common and gray = hot.

    Perhaps I should turn the lens into an interesting art object

  • Cordomatic 500P Disassembly

    Cordomatic 500P Disassembly

    A pair of antique collectible Cordomatic reels get occasional use in the Basement Laboratory:

    Cordomatic 500P reel - installed
    Cordomatic 500P reel – installed

    The extension cord reel didn’t latch reliably when needed, so …

    There’s an obvious screw on the other side and a non-obvious screw hidden in the obvious place:

    Cordomatic 500P reel - hidden screw
    Cordomatic 500P reel – hidden screw

    The electrical contacts were in good shape, although I smeared the grease around the rings just to make it seem like I did something:

    Cordomatic 500P reel - contacts
    Cordomatic 500P reel – contacts

    The ratchet pawls hide under a riveted cover:

    Cordomatic 500P reel - pawl cover
    Cordomatic 500P reel – pawl cover

    The duct tape shows I’d been in there once before, likely for the same problem, and had already drilled out the rivets.

    Alas, I forgot to take a picture after removing the cover, but the general idea is to put just a dot of oil on the pivots (which, as you’d expect, are the rivets), wiggle everything around, and reassemble in reverse order.

    It’ll surely work long enough that I can forget I was in there twice before …

  • Tour Easy: Another Rear Fender Bracket

    Tour Easy: Another Rear Fender Bracket

    All the work on Mary’s bike reminded me of the rear fender bracket I meant to install on mine, with more clearance for the strut stabilizing the under-seat packs:

    Tour Easy Rear Fender Bracket - long setback - solid model - show
    Tour Easy Rear Fender Bracket – long setback – solid model – show

    Rather than glue a PETG filament snippet into a screw, I turned a little Delrin plug:

    Tour Easy Rear Fender Bracket - screw insert
    Tour Easy Rear Fender Bracket – screw insert

    It’s ready for installation when I’m willing to put the bike up on the rack and pull the rear wheel:

    Tour Easy Rear Fender Bracket - screw detail
    Tour Easy Rear Fender Bracket – screw detail

    That’s actually the second iteration for the screw, as the first suffered a lethal encounter with the Greater Shopvac. I know exactly where it is, but I’m not going there …

  • Tour Easy: Bafang BBS02 Pedal Offset Fix

    Tour Easy: Bafang BBS02 Pedal Offset Fix

    For unknown reasons, the Bafang BBS02 motor puts the left pedal 15.5 mm closer to the frame than the right pedal:

    Bafang BBS02 dimensions
    Bafang BBS02 dimensions

    The diagram presents the motor assembly as seen from the bottom, lying on the ground looking upward with your feet forward around the front wheel.

    That much offset may be acceptable for some (upright?) bikes and some riders, but this seemed better for Mary:

    Tour Easy - Lekkie 160mm offset crank - installed
    Tour Easy – Lekkie 160mm offset crank – installed

    Lekkie Buzz Bars have a matching 15.5 mm offset in the left crank to center both pedals on the frame. She’s been pushing 165 mm cranks for long enough to know standard 170 mm cranks require too much leg travel, so that’s a 160 mm Lekkie crank.

    With cranks installed in the BBS02, measured from the frame tube to the inside of the crank at the pedal axis:

    • Bafang 170 mm: L 42, R 62
    • Shimano 105 triple 170 mm: L 46, R 67
    • Lekkie 160 mm: both sides 60

    For comparison, the Shimano 105 cranks on my Tour Easy measure 35 mm on both sides with an ordinary Shimano UM-BB72 bottom bracket cartridge, so the BBS02 + Lekkie cranks put each pedal 25-ish mm farther out. However,my pedals screw into 20 mm Kneesavers, putting them pretty close to the Lekkie spacing.

    We hope the additional space won’t make much difference to Mary; it’s certainly better than sitting offset to the right to match the pedals, as she’s found herself doing with both the Bafang and Shimano cranks on the BBS02. Her right shoe just barely tapped the crank, so we moved the cleat a few millimeters inboard and it’s all good again.

    The Cateye cadence sensor now has a rakish tilt to match the crank offset and looks scarily exposed. More riding is in order.

    The Lekkie cranks have a hollow cross-section that’s concave on the frame side, so the magnet sits on a simple riser to get it out where the sensor can experience it:

    Cateye Cadence Magnet mount - PS preview

    It’s held in place with good foam tape; the cable tie makes me feel better.

    The OpenSCAD code for the riser fits into the GitHub Gist:

    module CateyeMagnet() {
    
    OAL = 24.0;
    D1 = 14.0;
    D2 = 8.0;
    
        linear_extrude(height = 15.0)
            hull() {
                rotate(180/12)
                    circle(d=D1,$fn=12);
                translate([OAL - D1/2 - D2/2,0])
                    rotate(180/12)
                        circle(d=D2,$fn=12);
            }
    }
    
    … snippage …
    
        translate([0,-4*Block.x,0]) {
            rotate(-90)
                CateyeSensor();
            CateyeMagnet();
        }
    

    The build plate is getting crowded:

    Bafang Battery Mount - build view - cadence magnet
    Bafang Battery Mount – build view – cadence magnet

    In point of fact, that array pretty much fills the M2’s platform and would require over 11 hours of print time, which is just crazy talk. Have the slicer break it into separate parts, delete whatever you don’t want at the moment, print what’s left, and iterate until you have everything you need to finish the job.

  • Tour Easy: Bafang Mid-drive vs. Cateye Cadence Sensor

    Tour Easy: Bafang Mid-drive vs. Cateye Cadence Sensor

    For inscrutable reasons, the Bafang 500C display includes all stopped time in its average trip speed. While that is, in fact, the average speed over the entire trip, the Cateye cyclocomputers we’ve been using forever stop averaging after a few seconds at 0 mph.

    Bonus: Although the Bafang BBS02 motor knows the pedal cadence, it’s not part of the display.

    The Bafang BBS02 bottom bracket shaft put its pedal cranks much farther from the Tour Easy’s frame than the Shimano cranks, to the extent that the existing Cateye cadence sensor position just wasn’t going to work, so I printed a simple clip to fit over the motor’s “fixing plate”:

    Tour Easy Bafang BBS02 motor
    Tour Easy Bafang BBS02 motor

    It turns out putting a magnetic sensor immediately next to the winding end of a high-current three-phase motor isn’t the brightest idea I’ve ever had. The Cateye cadence display spent most of its time maxed out at 199 rpm, far faster than Mary can spin for, well, a single revolution.

    A somewhat more complex mount put the sensor roughly where it used to be:

    Cateye Cadence Sensor mount - installed
    Cateye Cadence Sensor mount – installed

    It looks precarious, but it spent nigh onto two decades there without incident, so we have precedent.

    Those are the original 165 mm Shimano cranks, because the 170 mm Bafung cranks threatened to lock out her knees. More on this in a while, as it’s a more complex issue than it may appear.

    The solid model looks about like you’d expect:

    Cateye Cadence Sensor mount - solid model
    Cateye Cadence Sensor mount – solid model

    The OpenSCAD code replaces the simple clip in the original GitHub Gist:

    // Cateye cadence sensor bracket
    
    LockRingDia = [44.0,46.0];
    LockRingLen = [4.0,6.5];
    LockRingOAD = LockRingDia[1] + 2*WallThick;
    LockRingOAL = LockRingLen[0] + LockRingLen[1];
    
    Notches = 16;
    SensorAngle = 3*360/Notches;
    SensorBase = 10.0;
    
    module Cateye() {
    
        difference() {
            union() {
                cylinder(d=LockRingOAD,h=LockRingOAL,$fn=Notches);
                translate([LockRingOAD/2 + LockRingOAL/2 - WallThick/2,0,LockRingOAL/2])
                    cube([LockRingOAL + WallThick,2*WallThick + Kerf,LockRingOAL],center=true);
          rotate(SensorAngle)
                    translate([LockRingOAD/2 + SensorBase - WallThick/2,0,LockRingOAL/2])
                        cube([2*SensorBase + WallThick,2*WallThick,LockRingOAL],center=true);
            }
            translate([0,0,LockRingLen[0]])
                PolyCyl(LockRingDia[1],LockRingOAL,Notches);
            translate([0,0,-Protrusion])
                PolyCyl(LockRingDia[0],2*LockRingOAL,Notches);
    
            translate([LockRingDia[0],0,0])
                cube([2*LockRingDia[0],Kerf,4*LockRingOAL],center=true);
            translate([LockRingOAD/2 + LockRingOAL/2,2*WallThick,LockRingOAL/2])
                rotate([90,0,0])
                    PolyCyl(3.0,4*WallThick,6);
    
            rotate(SensorAngle)
                translate([LockRingOAD/2 + 2*SensorBase - SensorBase/2,2*WallThick,LockRingOAL/2])
                    rotate([90,0,0])
                        PolyCyl(3.0,4*WallThick,6);
        }
    
    }