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

  • Maxell LR44 Cells: Packaging Glitch

    These look to be Maxell LR44 cells in OEM retail packaging, exactly as advertised, but … one cell seems odd:

    Maxell LR44 cells - hologram packages
    Maxell LR44 cells – hologram packages

    A closer look:

    Maxell LR44 cells - flipped cell
    Maxell LR44 cells – flipped cell

    The production values seem high enough to suggest that they’re Genuine Maxell products, hologram packaging and all, but you’d expect the Maxell end-of-line QC should pick out a flipped cell.

    If one were the wondering sort, though, one might wonder why the Maxell USA website search function doesn’t return any mention of LR44 cells…

  • Kenmore Model 158: Older Foot Pedal Resistor

    Based on the paperwork tucked into the sewing table, the most recent Kenmore Model 158 sewing machine in our stable dates to 1972, a bit earlier than the others, and has a metal-cased foot pedal with a wire-wound resistor:

    Kenmore Model 158 - new-ish foot pedal resistor
    Kenmore Model 158 – new-ish foot pedal resistor

    The cord insulation stiffened up over the decades and I wanted to replace it, but the contacts in the sewing machine connector were spot-welded to the conductors with no room for teeny screws:

    Kenmore Model 158 - new-ish foot pedal connector
    Kenmore Model 158 – new-ish foot pedal connector

    I blew out the fuzz, put it back together, and it works pretty well, modulo the usual low torque at slow speeds issue.

    The discrete resistor taps produce a somewhat stepped response, but early reports suggest it’s not enough to be annoying; it’s much more stable than the carbon disks in the more recent pedals.

  • LED Shoplight Conversion: Fluorescent Fixture Teardown

    The weakest fluorescent shop light fixtures always fail during cold weather (apart from the usual early tube failures) and this winter’s cold spells triggered the usual carnage, so I picked up half a dozen (cheap) 22 W LED T8 tubes and set about rewiring three defunct (cheap) fluorescent fixtures from the recycle heap. The new LED tubes run directly from the AC line; you must remove the fluorescent fixture’s ballasts / capacitors / starters and rewire the “tombstone” lampholders accordingly.

    The first challenge, as always, involved taking the fixtures apart. Turns out prying the endcap away from the fixture enough to clear the pair of bumps punched into the metal does the trick:

    Fluorescent Shoplights - endcap latches
    Fluorescent Shoplights – endcap latches

    Each endcap contains the ballast inductor / choke and power-factor correction capacitor for one tube. The inductors from one shoplight had a fancy plastic tab that might have held the capacitor in place, but that’s about the only difference:

    Fluorescent Shoplights - ballasts
    Fluorescent Shoplights – ballasts

    The 150 kΩ resistor has its leads twisted around the capacitor leads without benefit of that fancy solder stuff one might think necessary for a good connection.

    The capacitor contacts use the minimum possible amount of material:

    Fluorescent Shoplights - capacitor termination
    Fluorescent Shoplights – capacitor termination

    I think the caps use metallized Mylar film, but who knows?

    The inductors measure 280 mH and the caps a whopping 5 µF. I might trust the inductors in a low-voltage circuit, but the caps have no redeeming features and went directly to the trash.

    The starter PCB lived in the center of the fixture:

    Fluorescent Shoplights - starter circuit
    Fluorescent Shoplights – starter circuit

    I deliberately picked LED tubes with the AC line contact on one end and the neutral contact on the other, so as to not put line and neutral contacts in the same tombstone. After rewiring, the neutral endcap looks like this:

    Fluorescent Shoplights - neutral endcap
    Fluorescent Shoplights – neutral endcap

    The other endcap holds the power cord and has a green earth ground wire snaking out to a little tab passed into a slot punched in the metal case. I replaced the tab with an actual screw / solderless connector / toothed washer, but have no pix to show for it.

    The LED tubes run at 6500 K and contrast harshly with the warm-white tubes in the fluorescent shoplights. I went with the highest light output, because even the best (cheap) LED tubes produce barely half the output of the fluorescents: 2000-ish lumens vs 3900-ish.

  • Vacuum Tube LEDs: Platter Chassis

    Given that Greenlee chassis punches fit the ersatz vacuum tube sockets, this makes a certain perverse sense:

    Greenlee puch on hard drive platter
    Greenlee puch on hard drive platter

    This set of punches is probably worth its weight in, uh, tool steel, because Greenlee got out of the Radio Chassis Punch business quite a while ago:

    Greenlee 730 Radio Chassis Punch Assortment
    Greenlee 730 Radio Chassis Punch Assortment

    As far as a Greenlee punch is concerned, a hard drive platter looks a lot like thin aluminum sheet:

    Greenlee punched drive platter
    Greenlee punched drive platter

    I lathe-turned that white bushing to align the hard drive platter around the screw inside the punch. The right way to make that bushing in this day & age definitely involves 3D printing, but I was standing next to the lathe and spotted a nylon rod in the remnants bucket underneath.

    The inner ring crumples around the bushing inside the die, while the platter outside remains flat & undamaged through the entire experience.

    I match-marked the socket & “plate cap lead” holes on the punched platter and introduced it to Mr Drill Press, but the right way to do that for more than one socket / plate involves a Sherline mill fixture and some CNC.

    And then It Just Worked:

    Vacuum Tube LEDs - IBM 21HB5A drive platter socket
    Vacuum Tube LEDs – IBM 21HB5A drive platter socket

    That’s obviously a proof of concept; the socket rests on the desk with the rest of the tubes / sockets / Neopixels tailing off to the right. The plate cap lead should pass through a brass tube fitting on the platter, just for pretty.

    The 7- and 9-pin sockets have a raised disk that’s slightly smaller than the 25 mm hard drive hole; the easiest fix involves slightly enlarging the disk to match the hole. Although CDs / DVDs have a 15 mm hole and Greenlee punches work surprisingly well on polycarbonate, if I’m going to CNC-drill the screw / wire holes anyway, CNC milling the middle hole should go quickly and eliminate a messy manual process.

    Come to think of it, that big tube would look better in the middle of a DVD amid all those nice diffraction patterns from the RGB LEDs in the cap…

     

  • Sears Sewing Table: Sewing Machine Supports

    For reasons that should not require explanation by now, Mary just acquired a large sewing table (along with a Sears Kenmore Model 158 sewing machine that’s slightly older and fancier than the three we already have). The table has an opening fitted to the machine base, but the rubber pads atop the leveling screws had long since stiffened up and two screws were frozen in place. A few drops of penetrating oil released the screws and, mirable dictu, they have ordinary 6-32 threads.

    Some rummaging turned up four PC case screws and soft caps intended for wire shelves, which easily combined into replacement machine supports:

    Sewing Machine Supports - inserting screws
    Sewing Machine Supports – inserting screws

    Once again, I’m using the drill press as a low-force arbor press, with a chunk of aluminum tubing to shove the screw flange into the slightly smaller plastic cap.

    Spun into their brackets, they look quite nice, not that anybody will ever see them:

    Sewing Machine Supports - installed
    Sewing Machine Supports – installed

    The new-to-us table replaces the incredible collection of junk previously supporting Machine #3. I tucked some plastic foam around the near and right edges to fill the small gaps and it fits well:

    Sewing Machine Supports - machine installed
    Sewing Machine Supports – machine installed

    Obviously, the foam will fall out whenever Mary lifts the machine to tinker with machinery under the platform, so we’ll see how often pins & needles slip through the cracks without the foam.

    That machine awaits a lighting update, because I’m awaiting some rectangular chip-on-board LED strips from halfway around the planet.

    Early reports concerning the sewing table seem promising…

  • Improved Lip Balm / Lipstick Holder

    Mary asked for a less angular version of the Lip Balm Holder, which gave me a chance to practice my list comprehension:

    Improved Lipstick and Balm Holder
    Improved Lipstick and Balm Holder

    You hand the OpenSCAD program a list of desired tube diameters in the order you want them, the program plunks the first one (ideally, the largest diameter) in the middle, arranges the others around it counterclockwise from left to right, then slips a lilypad under each tube.

    As long as you don’t ask for anything egregiously stupid, the results look reasonably good:

    Improved Lipstick and Balm Holder - 8 tubes
    Improved Lipstick and Balm Holder – 8 tubes

    As before, each tube length is 1.5 times its diameter; the lipsticks / balms fit loosely and don’t flop around.

    Given the tube diameters and the wall thickness, list comprehensions simplify creating lists of the radii from the center tube to each surrounding tube, the center-to-center distances between each of the outer tubes, and the angles between successive tubes:

    // per-tube info, first element forced to 0 to make entries match RawDia vector indexes
    
    Radius = [0, for (i=[1:NumTubes-1]) (TubeRad[0] + TubeRad[i] + Wall)];			// Tube[i] distance to center pointRadius = [0, for (i=[1:NumTubes-1]) (TubeRad[0] + TubeRad[i] + Wall)];			// Tube[i] distance to center point
    echo(str("Radius: ",Radius));
    
    CtrToCtr = [0, for (i=[1:NumTubes-2]) (TubeRad[i] + TubeRad[i+1] + Wall)];		// Tube[i] distance to Tube[i+1]
    echo(str("CtrToCtr: ",CtrToCtr));
    
    Angle = [0, for (i=[1:NumTubes-2]) acos((pow(Radius[i],2) + pow(Radius[i+1],2) - pow(CtrToCtr[i],2)) / (2 * Radius[i] * Radius[i+1]))];
    echo(str("Angle: ",Angle));
    
    TotalAngle = sumv(Angle,len(Angle)-1);
    echo(str("TotalAngle: ",TotalAngle));
    

    The angles come from the oblique triangle solution when you know all three sides (abc) and want the angle (C) between a and b:

    C = arccos( (a2 + b2 - c2) / (2ab) )

    Peering down inside, the Slic3r preview shows the lily pads are the tops of squashed spheres:

    Improved Lipstick and Balm Holder - Slic3r preview
    Improved Lipstick and Balm Holder – Slic3r preview

    The pads are 2.0 times the tube diameter, which seemed most pleasing to the eye. They top out at 2.0 mm thick, which might make the edges too thin for comfort.

    Update: Here’s what it looks like with a convex hull wrapped around all the lilypads:

    Improved Lipstick and Balm Holder - hulled base
    Improved Lipstick and Balm Holder – hulled base

    I’m awaiting reports from My Spies concerning the typical diameter(s) of lipstick tubes, then I’ll run off a prototype and see about the lily pad edges.

    The OpenSCAD source code as a GitHub gist:

    // Lipstick and Balm Tube Holder
    // Ed Nisley KE4ZNU – February 2016
    //- 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;
    //——
    // Dimensions
    RawDia = [26,21,19,17,19,21]; // actual tube diameters in desired order, center = largest first
    NumTubes = len(RawDia);
    Clearance = 2.0;
    TubeDia = [for (i=[0:NumTubes-1]) (RawDia[i] + Clearance)]; // actual tube diameters
    TubeRad = TubeDia / 2;
    echo(str("NumTubes: ",NumTubes));
    Wall = 2.0;
    BaseThick = 2.0;
    BaseFactor = 2.0;
    NumSides = 8*4;
    // per-tube info, first element forced to 0 to make entries match RawDia vector indexes
    Radius = [0, for (i=[1:NumTubes-1]) (TubeRad[0] + TubeRad[i] + Wall)]; // Tube[i] distance to center point
    echo(str("Radius: ",Radius));
    CtrToCtr = [0, for (i=[1:NumTubes-2]) (TubeRad[i] + TubeRad[i+1] + Wall)]; // Tube[i] distance to Tube[i+1]
    echo(str("CtrToCtr: ",CtrToCtr));
    Angle = [0, for (i=[1:NumTubes-2]) acos((pow(Radius[i],2) + pow(Radius[i+1],2) – pow(CtrToCtr[i],2)) / (2 * Radius[i] * Radius[i+1]))];
    echo(str("Angle: ",Angle));
    TotalAngle = sumv(Angle,len(Angle)-1);
    echo(str("TotalAngle: ",TotalAngle));
    //———————-
    // Useful routines
    // vector sum cribbed from doc
    function sumv(v,i,s=0) = (i==s ? v[i] : v[i] + sumv(v,i-1,s));
    //———————-
    //- Build it
    for (i=[0:NumTubes-1])
    rotate(90 – TotalAngle/2 + sumv(Angle, (i>0) ? (i-1) : 0))
    translate([Radius[i],0,0]) {
    resize([0,0,2*BaseThick]) // bases
    difference() {
    sphere(r=BaseFactor*TubeRad[i],$fn=NumSides);
    translate([0,0,-BaseFactor*TubeDia[i]])
    cube(2*BaseFactor*TubeDia[i],center=true);
    }
    difference() { // tubes
    cylinder(r=TubeRad[i] + Wall,h=1.5*TubeDia[i] + BaseThick,$fn=NumSides);
    cylinder(d=TubeDia[i],h=1.5*TubeDia[i] + BaseThick + Protrusion,$fn=NumSides);
    }
    }
  • Sony 64 GB MicroSDXC Card: The Final Failure

    The fourth Sony MicroSDXC card went into service in late September 2015 and has now failed after about 60 sessions in my Sony HDR-AS30 Action Camera. This one sported a U3 speed rating and I had hopes that would improve its longevity, but that doesn’t seem to be true.

    The defunct Sony card (marked in red to avoid confusion) will join its defunct compadre and the Sandisk Extreme Pro card goes in the camera:

    Sony 64 GB MicroSD SR-64UX - failure
    Sony 64 GB MicroSD SR-64UX – failure

    The 16 bike rides in December added up to 220 GB; call it 13.75 GB/trip. January 2016 shows only three rides and it failed after two February rides: barely 60 rides for a total of 825-ish GB of video data. The three previous Sony cards failed after less than 1 TB of data, putting this one in the same ballpark.

    I have no way to measure the actual write speed, but the camera shuts down after recording less than a minute of 1920×1080 @ 60 f/s video. Previous cards worked fine at lower video resolutions and recording speeds; I’ll assume this one behaves similarly. It might make a capacious “disk” for a Raspberry Pi.

    When the previous card failed, Sony’s “customer support” decided that there might be something wrong with the camera’s firmware causing it to trash the cards, so there was no point in replacing the card under warranty and I should send the camera in for a checkup. When I pointed out that they’d strung me along for a year, until the camera was out of warranty, without mentioning even the possibility that the camera might be at fault and asked whether they’d pick up the $100+ bill for having the camera “examined”, the Nice Man said Level 2 would get back to me after “48 working hours”. When prodded, he agreed that “48 working hours” equaled “6 working days” and didn’t include weekends; when we had that settled, I knew they had no further interest in this matter.

    Sony hasn’t called back and, by now, I don’t expect they ever will. It’s not worth my time to pursue this any further, but if you’re wondering how well Sony MicroSD cards work in Sony cameras and how well they support the failures, now you know.

    So, starting with this riding season, we’ll see how long a Sandisk Extreme Pro card survives…