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.

Tag: Improvements

Making the world a better place, one piece at a time

  • Closing the Dmesg Audit Firehose

    I’m not entirely clear what’s being audited in the Manjaro Linux boxes I’ve recently set up, nor what the difference between res=success and res=failed might mean for the x11vnc unit:

    [   98.632347] audit: type=1131 audit(1594859418.419:110): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=x11vnc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
    [   98.632348] audit: audit_lost=46 audit_rate_limit=0 audit_backlog_limit=64
    [   98.632349] audit: kauditd hold queue overflow
    [   98.649743] audit: type=1130 audit(1594859418.433:111): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=x11vnc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'
    [   98.649745] audit: audit_lost=47 audit_rate_limit=0 audit_backlog_limit=64
    [   98.649746] audit: kauditd hold queue overflow
    [  100.515527] audit: type=1101 audit(1594859420.299:112): pid=843 uid=1000 auid=1000 ses=2 msg='op=PAM:accounting grantors=pam_unix,pam_permit,pam_time acct="ed" exe="/usr/bin/sudo" hostname=? addr=? terminal=/dev/pts/0 res=success'

    That’s the better part of two seconds in the life of the box and, later on, the pace picks up. Casual searching suggests nobody else knows what’s going on, either, apart from the fact than that it obviously has something to do with systemd and, thus, is just the way things are these days.

    Add audit=off to the default kernel command-line parameters by editing /etc/default/grub thusly:

    GRUB_CMDLINE_LINUX_DEFAULT="quiet resume=UUID=whatever udev.log_priority=3 audit=off"

    Then update the bootloader:

    sudo grub-mkconfig -o /boot/grub/grub.cfg 

    Whereupon dmesg becomes all quiet and (mostly) meaningful to this civilian.

  • Lending a Hand

    Lending a Hand

    This being repotting season, Mary trimmed a pair of leaves from a bay tree and wanted to dry them for cooking, so I offered to lend a hand:

    Bay leaves drying in helping hand fixture
    Bay leaves drying in helping hand fixture

    Two hands, in fact.

    The whole affair now sits on a kitchen windowsill, shriveling by the day, and the leaves should be ready in a month or two. Yum!

  • Copying All! The! Files! (Except Some)

    All our data files spin around on a nearly full 1 TB drive in a “file server”, a grandiosely overqualified and dirt-cheap off-lease Dell Optiplex desktop sitting in the basement. It’s been running headless and unattended for the last half-dozen years and is badly in need of replacement, so I must copy all its files to a newer, even more overqualified, and equally cheap off-lease Optiplex.

    Copying the files from the /mnt/music collection on the existing server to the identically named directory on the new server proceeds thusly:

    sudo mount -o ro fileserver.local:/mnt/music /mnt/nfs
    sudo rsync -ahu --progress --log-file=/tmp/music.log \
     --exclude="/lost+found" \
     --exclude=".Trash*" \
     --exclude=".dtrash*" \
     --delete \
     /mnt/nfs/ /mnt/music

    Mount the existing collection (from the old server) in read-only mode to avoid heartache subsequent to confusion. It could happen.

    The first time through, add a -n option for a dry run, then inspect the log file for surprises.

    The various --exclude options avoid copying trashed-but-not-yet-deleted files from the various trash directories maintained by various file handlers. In the process of sorting this out, I learned the DigiKam photo manager creates a .dtrash directory holding deleted files for each of its Album listings, appearing down near the bottom of the top-level album wherein you’ve quasi-deleted photos via “Move to Trash”.

    The --delete option removes files on the destination (new disk) if they’re not on the source (old disk). I started this migration earlier this year, before the world fell apart, and have moved / consolidated / renamed various directories & files in the interim, so deleting the previous copies from their old locations makes the destination match the source.

    So far, so good …

  • Mini-Lathe ER Collet Chuck Drawbar

    Mini-Lathe ER Collet Chuck Drawbar

    The ER-16 and ER-32 collet chucks use an M12×1.75 bolt to snug their MT3 tapers in the Mini-Lathe spindle. As nearly as I could figure, I needed a 190 mm bolt to get enough thread engagement, but the nearest available sizes were either too short or too long.

    Fortunately, making round things is what a lathe is all about:

    MT3 drawbar - assembled
    MT3 drawbar – assembled

    The aluminum bellyband adds 30 mm to the length and aligns the bolt sections, with the threaded section from a long 5/16-18 bolt inside holding the metric bolt together:

    MT3 drawbar - parts
    MT3 drawbar – parts

    Although I got it right on the first try (!), the bellyband lets me fine-tune the length as needed.

    The original dimension doodle and some in-flight updates:

    ER Collets - MT3 drawbar bolt - dimension doodles
    ER Collets – MT3 drawbar bolt – dimension doodles

    The fancy brass / bronze washer comes from a battered rod with mushroomed ends. A pair of V-blocks let me cut a chunk off one end with negligible drama:

    Bronze Bar Stock - support fixture
    Bronze Bar Stock – support fixture

    It’s clamped firmly to the right block and a few licks with a file knocked off enough of the mushroom on the left end to put it flat(-ish) into the V; the near side of the right block is barely raised off the surface.

    Face off the mushroom to get a flat spot for a center drill:

    MT3 drawbar - battered bronze rod
    MT3 drawbar – battered bronze rod

    Some peaceful turning & boring produces a pretty washer:

    MT3 drawbar - washer cutoff
    MT3 drawbar – washer cutoff

    The bore needed a bit of relief to seat the bolt head squarely on the outer surface:

    MT3 drawbar - spindle washer
    MT3 drawbar – spindle washer

    And then It Just Fit™:

    MT3 drawbar - installed
    MT3 drawbar – installed

    Loctite on the inner bolt threads should keep everything together.

  • Bathroom Door Retainer: Bigger and Stronger

    Bathroom Door Retainer: Bigger and Stronger

    After three years, the retainer holding the front bathroom door open against winds blowing through the house on stormy days finally fractured, right at the top of the towel rack where you’d expect it:

    Bathroom Door Retainer - fractured
    Bathroom Door Retainer – fractured

    I was all set to add reinforcing pins and whatnot, then came to my senses and just made the whole thing a few millimeters larger:

    Bathroom Door Retainer - stronger
    Bathroom Door Retainer – stronger

    Customer feedback indicates white blends better with the background.

    I made a few minor tweaks to the original design, including slightly larger bumps to hold it against the towel bar that, regrettably, put corresponding gouges into the bar. Who knew they used such soft plastic back in the day?

    The OpenSCAD source code as a GitHub Gist:

    // Bathroom Door Retainer
    // Ed Nisley KE4ZNU – May 2017
    // 2020-07 beef up, particularly at top of bar
    Layout = "Show"; // [Show, Build]
    //——-
    //- Extrusion parameters must match reality!
    /* [Hidden] */
    ThreadThick = 0.20;
    ThreadWidth = 0.40;
    HoleWindage = 0.2;
    Protrusion = 0.1; // make holes end cleanly
    function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
    //——-
    // Dimensions
    /* [Dimensions] */
    TowelBarSide = 20.5; // towel bar across flat side
    TowelBarAngle = 45; // rotation of top flat from horizontal
    BumpOD = 2.0; // retaining ball
    DoorOffset = 14.0; // from towel bar to door
    DoorThick = 37.0;
    WallThick = 8.0; // minimum wall thickness
    PlateThick = 4.0; // … slab
    RetainerDepth = 15.0; // thickness of retaining notch
    NumSides = 6*4;
    CornerRad = WallThick;
    BarClipOD = TowelBarSide*sqrt(2) + 2*WallThick;
    BarClipRad = BarClipOD/2;
    OAH = RetainerDepth + PlateThick;
    module LatchPlan() {
    union() {
    linear_extrude(height=OAH,convexity=4)
    difference() {
    union() {
    circle(d=BarClipOD,$fn=NumSides);
    hull()
    for (i=[0,1], j=[0,1])
    translate([i*(BarClipRad + DoorOffset + DoorThick + WallThick – CornerRad),j*(BarClipRad – CornerRad)])
    circle(r=CornerRad,$fn=4*4);
    }
    rotate(TowelBarAngle) // towel bar shape
    square(size=TowelBarSide,center=true);
    translate([0,-TowelBarSide/sqrt(2)]) // make access slot
    rotate(-TowelBarAngle)
    square(size=[2*TowelBarSide,TowelBarSide],center=false);
    }
    for (a=[0:180:360])
    rotate(a + TowelBarAngle)
    translate([TowelBarSide/2,0,OAH/2])
    rotate([90,0,45])
    sphere(d=BumpOD,$fn=4*3);
    }
    }
    module Latch() {
    difference() {
    LatchPlan();
    translate([BarClipRad + DoorOffset,-BarClipRad/2,-Protrusion])
    cube([DoorThick,BarClipOD,RetainerDepth + Protrusion],center=false);
    }
    }
    //——-
    // Build it!
    if (Layout == "Show") {
    Latch();
    }
    if (Layout == "Build") {
    translate([0,0,OAH])
    rotate([180,0,0])
    Latch();
    }

    Done!

  • Makergear M2 Extruder Motor Debugging

    Makergear M2 Extruder Motor Debugging

    While sorting out an extrusion problem on the Makergear forum, I suggested marking the motor shaft and the filament drive shaft to see if the motor pinion inside the gearbox had worn out: if the motor turns and the filament gear doesn’t, then it’s dead inside.

    For future reference, you mark the motor shaft thusly:

    Makergear M2 - filament drive motor - rear shaft
    Makergear M2 – filament drive motor – rear shaft

    Two marks on the filament drive gear tell you if the shaft is turning and if the gear is slipping on the shaft:

    Makergear M2 - filament drive gear
    Makergear M2 – filament drive gear

    A closeup of an earlier, much coarser, drive gear:

    M2 - Filament Drive Gear
    M2 – Filament Drive Gear

    It all worked out well in the end!

  • USB Media Card Reader: Contrast Improvement

    USB Media Card Reader: Contrast Improvement

    Consumer electronics designers seem to favor low- or no-contrast markings, with this USB reader falling on the vanishing end of the spectrum:

    USB card reader - low-contrast slots
    USB card reader – low-contrast slots

    I poke the MicroSD card from the AS30V helmet camera into the smaller slot on the top surface, but, contrary to what’s revealed by the camera’s flash, the slot is a black-on-black target.

    Well, I finally fixed that:

    USB card reader - high-contrast slots
    USB card reader – high-contrast slots

    Although white tape surely would have sufficed, the roll of fluorescent red came to hand and that’s what it’ll be. The CompactFlash and Memory Stick slots on the front don’t see much traffic and have better access.

    I slapped tape on case, trimmed the slots with a razor knife, and declared victory.

    Much better!