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

  • HQ Sixteen: Needle Bar Reorientation

    HQ Sixteen: Needle Bar Reorientation

    The original needle bar orientation for Mary’s Handiquilter HQ Sixteen put the needle clamp screw (a black-oxide socket head cap screw with the end flattened) about 45° from the rear of the needle bar:

    HQ Sixteen - original needle foot orientation
    HQ Sixteen – original needle foot orientation

    The hex driver passes through the sight hole letting you verify the needle is inserted all the way into the holder before tightening the screw.

    It turns out needles fitting the HQ Sixteen come in two varieties, both with nominal 2.0 mm shanks. Mary’s stock has slightly different and entirely consistent diameters around their eyeballometric typical value:

    • Round shank = 1.94 mm (-0.00 / +0.02 mm)
    • Flatted shank = 2.04 mm (-0.02 / +0.04 mm)

    The round shank needles fit easily into the needle holder, but most of the flatted needles simply would not go in. The difference felt like a burr somewhere inside the bore, rather than a uniformly too-small bore: a burr is easy to imagine around the threaded hole for the lock screw.

    Orienting a round-shank needle is exceedingly fiddly, because the groove above the thread hole must be aligned exactly to the front of the needle bar to mesh properly with the bobbin mechanism, but snugging the screw invariably rotates the shank.

    While you might think the locking screw would properly orient flatted-shank needles by tightening on the flat, you would be wrong. The flat is at the back of the machine when the groove and hole are properly oriented, which means the locking screw bears on the rounded part of the needle, right at the edge of the flat. Mary was generally unable to use even the few flatted needles that fit into the needle bar, because tightening the screw tended to grab the flat, rotate the needle, and lock it firmly in the wrong orientation.

    It is worth nothing that all of the other machines around here have locking screws arranged exactly as you’d expect: tightening the screw onto the shaft flat correctly aligns the needle with zero fiddling.

    Pictures of various HQ Sixteen machines found on the InterWebs show their needle bar and locking screw can be oriented anywhere from nearly in front to entirely in the back, suggesting:

    • Whoever aligns those machines doesn’t care about needle orientation
    • Everybody uses round-shank needles
    • Anybody using flatted-shank needles is an outlier

    I suggested rotating the needle bar to put the screw in back and, if possible, remove the burr inside the bore. After considerable discussion, my plan was approved.

    The needle bar slides vertically in a machined block, driven by a link attached to the machine’s main shaft:

    HQ Sixteen Handi-feet conversion - foot rod clamp
    HQ Sixteen Handi-feet conversion – foot rod clamp

    The surface of the needle rod has a yellow / amber color from the slick coating that must not be disturbed, to the extent the maintenance instructions require a plastic-lined clamp for adjustments.

    The vertical position of the needle rod in the clamp determines the “timing” of the needle with respect to the hook on the whirling bobbin case where the magic happens. Setting the timing requires a Special Service Tool that I do not have and likely never will, so the vertical position must not change while rotating the rod in the clamp.

    So, we begin.

    Removing the machine cover requires removing the Control Pod electronics box with all its cables to get access to the last screw, so this is a nontrivial operation.

    Position the shaft at Bottom Dead Center, then measure the distance from the ruler foot to the needle plate:

    HQ Sixteen - Ruler foot clearance
    HQ Sixteen – Ruler foot clearance

    The correct distance is 0.5 mm and the taper gauge shows it at 0.6 mm, but all I need here is putting it back at the same height after I remove the foot.

    Position the shaft exactly at Top Dead Center (as shown in the second picture), then stack gage blocks under the needle bar as shown in the top picture. For reference, the gauge block set showing which blocks went into that stack:

    HQ Sixteen - gage blocks used
    HQ Sixteen – gage blocks used

    Although I didn’t need the absolute measurement, it’s 0.551 inch = 0.300 + 0.150 + 0.101 inch = 13.995 mm. It’s less than 0.552 inch = 14.021; I decided fiddling with the fourth decimal place would be counterproductive.

    With the needle bar held at that height, stick a screwdriver through the hole intended for this purpose and loosen the clamp screw:

    HQ Sixteen - needle bar clamp
    HQ Sixteen – needle bar clamp

    Yes, the hole is slightly misaligned with the screw, presumably because aligning it properly would put the hole too close to the edge of the frame casting for comfortable drilling. You could make this adjustment without removing the cover, but I’m not that type of guy.

    Rotate the needle bar to put the locking screw exactly at the back, verify the bottom of the bar rests on the gauge blocks, tighten the clamp screw, and verify the bottom of the bar rests on the gauge blocks:

    HQ Sixteen - needle bar reoriented
    HQ Sixteen – needle bar reoriented

    Again, the hex driver shows the observation hole orientation.

    Acceptance testing requires a practice quilt, but the machine lights up properly and moves smoothly with a needle in place, so it’s pretty close to being correct.

    This was one of those jobs requiring about two hours of setup, twenty seconds of adjustment, and half an hour of put-away.

  • Bike Rack Tray Holder: Stretchy Tiedown Straps

    Bike Rack Tray Holder: Stretchy Tiedown Straps

    The tray holder on Mary’s bike worked well:

    Bike Rack Tray Holder - in use
    Bike Rack Tray Holder – in use

    Except for having the bungee cord run across the middle of the tray where it blocks access for larger trays and tends to bend the taller leaves.

    Well, I can fix that:

    Bike Rack Tray Holder - straps - rear
    Bike Rack Tray Holder – straps – rear

    The front tiedown is similar:

    Bike Rack Tray Holder - straps - front
    Bike Rack Tray Holder – straps – front

    They’re printed from TPU: rectangular blocks and chains, ending in wire hooks bashed from a coat hanger. The M4 button-head screws thread into (uncrushed) rivnuts, which seemed easier to manage than square nuts in this situation.

    The chains are just thick circles, with half of the top links sunk into the blocks:

    Stretchy Straps - build layout
    Stretchy Straps – build layout

    You’d (well, I’d) want to build them one at a time, because sometimes this happens:

    Bike Rack Tray Holder - bad platform adhesion
    Bike Rack Tray Holder – bad platform adhesion

    Based on those measurements, I raised the extruder by 0.1 mm, but apparently did a poor job of cleaning / flattening the cold TPU on the nozzle and got it wrong. As a result, the first layer didn’t get squooshed properly onto the BuildTak, came unstuck, and produced art . The track down the middle of the photo shows traces of a previous, badly over-squooshed test chain.

    The stretched TPU relaxes enough to leave very little tension after a day, as shown by the unhooked right chain:

    Bike Rack Tray Holder - straps - relaxing
    Bike Rack Tray Holder – straps – relaxing

    However, that make the chains exactly the right length, so they require even more force to get the hooks off the rack. After relaxing for another day, the stretched chains return to roughly their original lengths, so it’s all good.

    The OpenSCAD source code as a GitHub Gist:

    // TPU Tiedown Straps for bike rack tray holder
    // Ed Nisley – KE4ZNU
    // 2026-05-14
    include <BOSL2/std.scad>
    Layout = "Build"; // [Show,Build,Chain,Blocks,Front,Rear]
    /* [Hidden] */
    HoleWindage = 0.2;
    Protrusion = 0.01;
    NumSides = 4*3*2*4;
    Gap = 5.0;
    $fn=NumSides;
    LinkID = 7.0;
    LinkOD = 10.0;
    LinkOC = 14.0;
    LinkHeight = 4.0;
    JointWidth = 2.0;
    FrontChainAngle = 30; // from vertical
    FrontChainLength = 80.0; // nominal length
    RearChainAngle = 20; // from vertical
    RearChainLength = 100.0; // nominal length
    BlockOA = [80.0,12.0,15.0];
    InsertOC = 30.0;
    //—–
    // Define things
    module Chain(n=2) {
    render()
    difference() {
    union() {
    hull() {
    cyl(LinkHeight,d=JointWidth,anchor=BOTTOM,rounding=0.0);
    back((n – 1)*LinkOC)
    cyl(LinkHeight,d=JointWidth,anchor=BOTTOM,rounding=0.0);
    }
    for (i = [0:n-1])
    back(i*LinkOC)
    cyl(LinkHeight,d=LinkOD,anchor=BOTTOM,rounding=0.0);
    }
    for (i = [0:n-1])
    back(i*LinkOC)
    down(Protrusion)
    cyl(LinkHeight + 2*Protrusion,d=(LinkID + HoleWindage),anchor=BOTTOM,rounding=-1.0);
    }
    }
    module FrontBlock() {
    difference() {
    cuboid(BlockOA,anchor=BOTTOM,chamfer=1.0,except=BACK);
    for (i = [-1:1])
    right(i*InsertOC) down(Protrusion) {
    cyl(BlockOA.z + 2*Protrusion,d=4.0 + HoleWindage,anchor=BOTTOM); // screw clearance
    cyl(1.5,d=9.0,anchor=BOTTOM); // insert head
    cyl(11.0,d=6.0,anchor=BOTTOM); // insert body
    }
    }
    }
    module RearBlock() {
    up(BlockOA.z/2) fwd(BlockOA.y/2)
    difference() {
    cuboid(BlockOA,anchor=FRONT,chamfer=1.0,except=BACK);
    for (i = [-1:1])
    right(i*InsertOC) fwd(Protrusion) {
    ycyl(BlockOA.z + 2*Protrusion,d=4.0 + HoleWindage,anchor=FRONT); // screw clearance
    ycyl(1.5,d=9.0,anchor=FRONT); // insert head
    ycyl(11.0,d=6.0,anchor=FRONT); // insert body
    }
    }
    }
    module FrontAssembly(cl=FrontChainLength,ca=FrontChainAngle) {
    Links = ceil(cl / LinkOC);
    union() {
    up(cl*cos(ca)) {
    FrontBlock();
    back(BlockOA.y/2)
    xrot(90)
    for (i = [-1,1])
    left(i*InsertOC/2)
    zrot(-i*ca + 180)
    Chain(Links);
    }
    }
    }
    module RearAssembly(cl=RearChainLength,ca=RearChainAngle) {
    Links = ceil(cl / LinkOC);
    union() {
    up(cl*cos(ca)) {
    RearBlock();
    back(BlockOA.y/2)
    xrot(90)
    for (i = [-1,1])
    left(i*InsertOC/2)
    zrot(-i*ca + 180)
    Chain(Links);
    }
    }
    }
    //—–
    // Build things
    if (Layout == "Chain")
    Chain();
    if (Layout == "Blocks") {
    fwd(BlockOA.y)
    FrontBlock();
    back(BlockOA.y)
    RearBlock();
    }
    if (Layout == "Front")
    FrontAssembly();
    if (Layout == "Rear")
    RearAssembly();
    if (Layout == "Show") {
    fwd(BlockOA.y)
    FrontAssembly();
    back(BlockOA.y)
    zrot(180)
    RearAssembly();
    }
    if (Layout == "Build") {
    fwd(BlockOA.z + Gap/2)
    up(BlockOA.y/2)
    xrot(-90)
    down(FrontChainLength*cos(FrontChainAngle))
    FrontAssembly();
    back(BlockOA.z + Gap/2)
    zrot(180)
    up(BlockOA.y/2)
    xrot(-90)
    down(RearChainLength*cos(RearChainAngle))
    RearAssembly();
    }
  • Prusa MK4 Camera Lighting

    Prusa MK4 Camera Lighting

    Although the Raspberry Pi camera has a good view of the Prusa MK4’s extruder, there’s not much light under there:

    RPi Camera Mount - image
    RPi Camera Mount – image

    There’s also not much room for a lighting fixture on the printer where it must mount, so I modified a trio of nominally 12 V / 4 W COB LED panels:

    Prusa MK4 - Extruder sidelight - COB LEDs
    Prusa MK4 – Extruder sidelight – COB LEDs

    Their “4 W” rating seems aspirational, at best, as a 12 VDC supply pushes only 75 mA through the panel, so they tick along at 900 mW. If you expect cheap eBay / Amazon components to live up to their specs, dream on.

    The modifications:

    • Unsolder the pins
    • Crunch off the surprisingly precise 27.4 Ω SMD resistor
    • Clean up the rubble
    • Wire the panels directly in series, ignoring their bridge rectifiers

    The 15 LEDs on each panel are arranged in five parallel chains of three LEDs for a total forward drop of 8.3 V, so putting three panels in series works with the MK4’s 24 V power supply.

    Stick them onto the MK4 power supply case with foam tape and wire them directly to the 24 V terminals:

    Prusa MK4 - Extruder sidelight - installed
    Prusa MK4 – Extruder sidelight – installed

    There’s very little clearance between the machine frame and the X Axis carriage on the threaded rod. Putting the LEDs in a 3D printed case and routing the wires lower on the column would be nice touches:

    Prusa MK4 - Extruder sidelight - front view
    Prusa MK4 – Extruder sidelight – front view

    The panels start at 30 mA when cold and drop to 25 mA as they warm up in the 63 °F = 17 °C Basement Shop. Each panel dissipates 250 mW: bright enough for the task, dim enough to avoid overpowering the camera’s limited dynamic range, and definitely within whatever power rating they should have.

    Looking over the camera’s shoulder in normal shop lighting suggests it’s about right:

    Prusa MK4 - Extruder sidelight - camera overview
    Prusa MK4 – Extruder sidelight – camera overview

    A staged scene with the shop lights turned off:

    Prusa MK4 - Extruder sidelight - low-light view
    Prusa MK4 – Extruder sidelight – low-light view

    Call it Good Enough™ for the purpose.

  • Prusa MK4 Camera Mount

    Prusa MK4 Camera Mount

    Combining the Articulating Raspberry Pi Camera Mount with the Standardized Links and a few more bits & pieces from Printables made this happen:

    Prusa MK4 - RPi camera installed
    Prusa MK4 – RPi camera installed

    The camera will benefit from better lighting, but it has a great view of the proceedings and gets the job done:

    RPi Camera Mount - image
    RPi Camera Mount – image

    The Standardized Link holes clear an M6 bolt, but the Thumb Remix models use M5×25 hex-head screws (the doc says M4) and they work fine. I printed the (turn-able) bolt knobs in blue PETG-CF to distinguish them from the (fixed) nut knobs, which really don’t need knurling.

    The camera ball mount has a threaded socket for the original plastic screws, but the stem isn’t quite thick enough for an M5 insert. Heat-setting an M4 brass insert into the hole and epoxying an M4×25 hex-head screw into one of the Remix knobs worked fine.

    One Snap Fit Cable Management Clip holds the ribbon cable to a link. I think the RPi can fit under the platform inside the MK4 frame, with another clip or two routing the cable below the mount and frame. Adding another layer to the foam foot pads may improve the clearance.

    The mount attaches to the MK4 frame with a 3030 adapter and a 45° link on the top. If I were in the mood, I’d make the 3030 adapter link longer for enough clearance beyond the M4 socket-head cap screws to get a ball-end hex wrench in there.

    The small figure on the platform is a Articulated Grim Reaper done in black and white as an MMU3 test.

    Now I can keep an eye on the proceedings from the Comfy Chair …

  • Prusa MK4 Headbed Insulation

    Prusa MK4 Headbed Insulation

    Over the winter, my Prusa MK4 printer occasionally coughed up a MINTEMP error when its platform heater cannot maintain the 90 °C called for by PETG. I finally added a cardboard insulating layer under the PCB heater:

    Prusa MK4 Headbed - cardboard insulation
    Prusa MK4 Headbed – cardboard insulation

    Yes, the blue tool layer rectangle marking the centers of the corner cutouts is offset 2.5 mm to the left:

    Heatbed Insulation - LightBurn layout
    Heatbed Insulation – LightBurn layout

    The layout is not symmetric, because Prusa wanted to prevent you from installing the PCB incorrectly, so I needed three tries to get it right.

    The alert reader will note the lack of the front-corner chamfers in the picture letting your fingers get under the corners to remove the steel sheet. I cut ’em off with a utility knife and you get the benefit of hindsight.

    Whether this minimal insulation will solve the problem shall remain unknown until the coldest days of next winter, but eliminating drafts around the thermistor taped to the bottom of the PCB can’t possibly be a Bad Thing™.

    The LightBurn layout exported to an SVG image as a GitHub Gist:

    Loading
    Sorry, something went wrong. Reload?
    Sorry, we cannot display this file.
    Sorry, this file is invalid so it cannot be displayed.
  • House Sparrow vs. House Wren vs. Entrance Reducer

    House Sparrow vs. House Wren vs. Entrance Reducer

    A friend gave Mary a small-bird birdhouse, which immediately attracted the attention of a pair of House Wrens:

    Bird House entrance reducer - wren exiting
    Bird House entrance reducer – wren exiting

    The vertical black bar is a DIY Birdsaver cord.

    The entrance hole was 1-½ inch ⌀, a bit larger than the 1 inch ⌀ preferred by wrens and entirely suitable for the pair of House Sparrrows who also took an interest in the property:

    Bird House - sparrow inside
    Bird House – sparrow inside

    This led to considerable discussion and displays of outright hostility:

    Bird House entrance reducer - wren vs sparrow
    Bird House entrance reducer – wren vs sparrow

    Sparrows and wrens disagree on nestbuilding materials, with the wrens hauling twigs into the box and sparrows hauling them back out again.

    Because wrens have better PR agents than sparrows, I intervened by taking the box apart:

    Bird House - nest base sticks
    Bird House – nest base sticks

    Although I realize that’s a lot of work for a small bird, I dumped the contents off the patio and set about reducing the entrance hole:

    Bird House - interior cleared
    Bird House – interior cleared

    Because birds aren’t too fussy about looks, I sawed off half an inch of 1 inch (ID) CPVC pipe and glued it in the hole:

    Bird House entrance reducer - interior glue
    Bird House entrance reducer – interior glue

    The outside looks marginally better:

    Bird House entrance reducer - exterior glue
    Bird House entrance reducer – exterior glue

    The sparrows continued to approach the hole at full throttle, deploying landing gear and speed brakes at the last possible moment:

    Bird House entrance reducer - sparrow approach
    Bird House entrance reducer – sparrow approach

    But they no longer fit through the hole and eventually gave up trying. The wrens resumed hauling twigs, although we’re not certain they’ll finish the project, as birds tend to build several partial nests before selecting the final one.

    We hope this will end on a happier note than last year’s Wreath Robins.

  • Book Repair Tape vs. Serrated Cutter: Nope

    Book Repair Tape vs. Serrated Cutter: Nope

    An end-of-life roll of parchment paper contributed its serrated cutter bar as raw material for the Gridfinity Tape Dispenser:

    Gridfinity Tape Dispenser - razor vs serrated blades
    Gridfinity Tape Dispenser – razor vs serrated blades

    Those teeth look exactly like a tape cutter should look:

    Gridfinity Tape Dispenser - serrated blade
    Gridfinity Tape Dispenser – serrated blade

    It turns out that book repair tape bounces right off the pointy-but-not-keen edges, to the extent the tape did not cut at all, no matter how hard I tugged at any angle. Perhaps filing one side to make the teeth thinner would improve the results; given the cutter’s provenance it seems like putting lipstick on a pig.

    The original razor blade continues to work fine, so I dropped the serrated cutter into the hollow under the tape roll against future need.

    Book repair tape is tough stuff!