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: Electronics Workbench

Electrical & Electronic gadgets

  • Cheap HD USB Camera: Base Disassembly

    Cheap HD USB Camera: Base Disassembly

    A brace of cheap HD USB cameras may improve the scenery around here during video meetings. They were $16, marked down from an absurd $130:

    HD USB Camera price history
    HD USB Camera price history

    Some poor schlubs certainly dropped more than twice the price of a Genuine Logitech camera on these critters, but a nearly total lack of demand must have had some effect.

    They do take their stylin’ cues from Logitech, although the speckled pattern on a shiny plastic sheet is amusing:

    HD USB Camera - styling vs Logitech C920
    HD USB Camera – styling vs Logitech C920

    Unsurprisingly, the lens is fixed / manual focus. What looked like focus rings were in different positions on the two cameras:

    HD USB Camera - lens focus notches
    HD USB Camera – lens focus notches

    It turns out the rings were not glued in place, perhaps because they have absolutely no effect on the camera’s focus. Maybe there’s another camera model where they rotate the lens in a threaded socket, but this ain’t that.

    The front panel has three pores:

    • A red Power LED is always on when it’s plugged in
    • A green On the air LED lights up when the camera is selected; I have no idea what the WiFi-ish glyph is supposed to represent
    • The “advanced noise canceling microphone” sits behind a pore offscreen left; the claim seems dubious.

    Because these may go into smaller spaces, I dismantled the base to see what was involved. Most of the screws lie underneath thin foam sheets:

    HD USB Camera - ball mount interior
    HD USB Camera – ball mount interior

    The lower plate has a tripod mount and a folding bracket:

    HD USB Camera - baseplate interior
    HD USB Camera – baseplate interior

    The camera body has a ball mount with a few degrees of movment:

    HD USB Camera - ball mount detail
    HD USB Camera – ball mount detail

    Reassembled and stuck inside the laser cabinet with some good double-sided foam tape, it definitely produces a better image than the previous camera:

    Platform camera view
    Platform camera view

    Whatever noise cancellation the mic may provide is irrelevant in there: nobody’s listening.

  • ResMed ClimateLine Heated Hose: DOA

    ResMed ClimateLine Heated Hose: DOA

    Mary plugged a new ClimateLine heated hose into her Resmed Airsense 11 CPAP machine, spent the night feeling a bit chilly, and got an error message in the morning that boiled down to “Bad Hose”.

    Unsurprisingly, the new hose looks just like the previous ones and the old picture remains relevant:

    ResMed ClimateLine heated hose ends
    ResMed ClimateLine heated hose ends

    The new hose has the same 12 kΩ resistance between the two outer contacts: the thermistor is fine.

    The two inner contacts are an open circuit, not the expected 10 Ω: the heater element or (more likely) a connector joint failed. We don’t know if it was DOA or failed during the first use, but it does not respond to the usual wiggling and poking.

    Her experience with Lincare’s Customer Disservice has been so terrible she refuses to start a warranty claim. She’ll continue using the old hose until it’s time for the next replacement and we’ll hope for the best.

    As I understand the arrangement, she must get all the consumables (masks, hoses, filters, tanks) from Lincare for five years from the date of the original prescription. After that, she can order supplies from elsewhere, although that seller must have a new prescription.

    Basically, Lincare gets five years of guaranteed business and, like the phone company of old, they don’t care about you because they don’t have to.

    So: they win.

  • OMTech Laser Cutter vs. Ortur YRC-1 Rotary: Job Checklist

    OMTech Laser Cutter vs. Ortur YRC-1 Rotary: Job Checklist

    The process of switching the laser cutter from “normal” operation to the Ortur YRC-1 rotary and back again requires a checklist:

    Ortur YRC-1 Setup Checklist - installed
    Ortur YRC-1 Setup Checklist – installed

    Which looks like this:

    Ortur YRC-1 Setup Checklist
    Ortur YRC-1 Setup Checklist

    The same thing as a PDF will be more printable or readable.

    Previous posts cover what goes into making it work:

    Notes:

    • Always disable the rotary’s stepper driver before connecting or disconnecting its cable.
    • The Ortur YRC-1 rotary has a pulley ratio of 1:3, so the step/rev value is three times the DIP switch setting on the stepper driver. For this setup, 1600 → 4800 step/rev.
    • The honeycomb frame is a parallelogram, not a rectangle. I align the cardboard baffle / fixture to the bottom edge of the frame and the rotary to the bottom edge of the fixture opening, but your machine will be different. The angular alignment may not be off by enough to matter, but consistency is a virtue.
    • The Rotary.lbset and Linear.lbset files live on a file server with daily backups. Such backups will come in handy when you inadvertently overwrite one of those files with the other one. Trust me on this.
    • The Rotary.lbset file does not have Rotary Mode enabled, because the KT332N does not home the Y axis in that mode. If your rotary lacks a home switch, then it doesn’t matter and you’re on your own.
    • The KT332N controller has a [Reset] button that allegedly does a power-on reset and reloads all the changed Machine Settings. This sometimes does not work as expected: power-cycling the controller is the only way to be sure.
    • The autofocus operation must hit the focus pad, which can be ensured by positioning the pen near the pad, jogging the platform a few millimeters under the pen, tweaking X and the gantry while peering down parallel to the pen, then doing the autofocus.
    • The focus pad has a crosshair clearing the chonky Ortur 3-step jaws, but I set the controller’s [Origin] at the foot of the pad’s base for more elbow room.
    • The Z axis distance field in LightBurn’s Move window does not accept formulas, so you must divide the workpiece diameter by two. Using a focus stick to verify the ensuing nozzle-to-workpiece distance is a Good Idea™.
    • The LightBurn Job Origin dot must be on the top row, because the KT332N does not go into regions with negative coordinates. With the chuck on the left and the [Origin] just to its right, the upper left dot locks the LightBurn selection to the physical limits.
    • Selecting [Use Selection Origin] puts the Job Origin at the upper left (per the dot) of whatever you’ve selected, not everything on the LightBurn workspace. [User Origin] then locks the selection to the [Origin] set on the controller.

    As the saying goes, it works for me …

  • Inline Switch FAIL

    Inline Switch FAIL

    One of the inline switches I installed to replace the failed switches for the LED lights got unpleasantly warm enough to prompt an investigation:

    Inline lamp switch - heat damage
    Inline lamp switch – heat damage

    Yeah, that is not a nominal outcome, particularly in light of the claimed “10 A 250 V” rating.

    The overheated plastic pulled back enough to expose the terminal inside:

    Inline lamp switch - visible terminal
    Inline lamp switch – visible terminal

    There was a reason I’d wrapped those switches with known-good 3M electrical tape before deploying them.

    That crimp connector took some heat and its screw looks even more unhappy:

    Inline lamp switch - internal damage
    Inline lamp switch – internal damage

    It turned out the screw was an itsy too short to compress both the connector and the bent-metal conductor tab against the terminal block:

    Inline lamp switch - misfit screw terminal
    Inline lamp switch – misfit screw terminal

    A 6 mm brass screw with a brass washer did a better job of compressing all parties into one conductive lump.

    Although the switch now runs with the case at normal basement temperature, an allegedly UL listed replacement is on its way; it costs about five times more than that switch. If it behaves as it should, I’ll preemptively replace two other switches.

  • Ortur YRC-1: Adding a Home Switch

    Ortur YRC-1: Adding a Home Switch

    Stipulated: A chuck rotary doesn’t need a home switch.

    With that in mind, a home switch seemed like it might come in handy and this is the simplest workable design:

    Ortur Chuck Rotary home switch - installed
    Ortur Chuck Rotary home switch – installed

    The cover mimics the size & shape of the Ortur cover, minus the stylin’ rounding & chamfering along the edges:

    Ortur Rotary Belt Cover - exterior - solid model
    Ortur Rotary Belt Cover – exterior – solid model

    It has a certain Cybertruck aspect, doesn’t it?

    Two beads of hot melt glue hold the switch flush along the cover’s inside surface:

    Ortur Chuck Rotary home switch - case exterior
    Ortur Chuck Rotary home switch – case exterior

    One might argue for a tidy cover over those terminals.

    While contemplating the layout by holding the switch here & there, seeing the switch roller neatly centered on the pulley hub told me the Lords of Cosmic Jest favored this plan:

    Ortur Chuck Rotary home switch - case interior
    Ortur Chuck Rotary home switch – case interior

    A simple cam lifts the roller:

    Ortur Chuck Rotary home switch - pulley cam
    Ortur Chuck Rotary home switch – pulley cam

    That’s obviously laser-cut acrylic sitting on double-sided tape.

    Edit: The pulley ratio is 1:3, so the step/rev value is three times the DIP switch setting on the stepper driver.

    Some finicky repositioning put the #1 chuck jaw on top after homing:

    Ortur Chuck Rotary home switch - jaw position
    Ortur Chuck Rotary home switch – jaw position

    A more permanent adhesive under the cam may be in order.

    Update: The switch triggers more reliably with a simple setscrew standing proud of the pulley hub:

    Ortur Rotary Focus Pad - home trip setscrew
    Ortur Rotary Focus Pad – home trip setscrew

    Wiring the normally open switch contacts in parallel with the existing Y axis home switch lets both the gantry and the rotary trigger the controller. The front-panel switch ensures only one of those two can move:

    Laser Rotary - control switch
    Laser Rotary – control switch

    With all that in place and the switch flipped, the chuck rotates happily and homes properly with the controller in normal linear mode.

    Spoiler: A Ruida-ish KT332N controller ignores the Y-axis Home enable setting with Rotary mode enabled, because everybody knows a rotary has no need for a home switch.

    The OpenSCAD code as a GitHub Gist:

    // Ortur Rotary belt cover
    // Ed Nisley – KE4ZNU
    // 2025-12-23
    include <BOSL2/std.scad>
    Layout = "Show"; // [Show,Build,Block,Shell]
    /* [Hidden] */
    ID = 0;
    OD = 1;
    LENGTH = 2;
    HoleWindage = 0.2;
    Protrusion = 0.1;
    NumSides = 2*3*4;
    $fn=NumSides;
    Gap = 5.0;
    WallThick = 1.6; // OEM wall
    CoverOA = [81.5,50.5,23.0]; // open side down
    CoverRadius = 4.0;
    CoverTrimZ = 6.0;
    CoverTrimAngle = 45;
    BreakX = (CoverOA.z – CoverTrimZ)/tan(CoverTrimAngle);
    ScrewOC = [51.0,38.0];
    ScrewHoleID = 3.5;
    ScrewHeadRecess = [ScrewHoleID,7.0,1.8];
    ScrewOffset = 8.0; // cover edge to hole centerline
    SwitchOA = [21.0,20.0,6.5]; // X = body + roller, excludes terminals
    SwitchOffset = [0,0,17.0]; // nominal end = roller at centerline
    //—–
    // Overall cover shape
    module CoverBlock() {
    cuboid([CoverOA.x,CoverOA.y,CoverTrimZ],anchor=BOTTOM) position(TOP+LEFT)
    prismoid(size1=[CoverOA.x,CoverOA.y],size2=[CoverOA.x – BreakX,CoverOA.y],
    height=CoverOA.z – CoverTrimZ,shift=[-BreakX/2,0],anchor=BOTTOM+LEFT);
    }
    // Cover shell
    module CoverShell() {
    difference() {
    CoverBlock();
    down(Protrusion)
    resize(CoverOA – [2*WallThick,2*WallThick,WallThick – Protrusion])
    CoverBlock();
    }
    }
    // The complete cover
    module Cover() {
    difference() {
    union() {
    CoverShell();
    left((CoverOA.x – ScrewOC.x)/2 – ScrewOffset)
    for (i = [-1,1], j=[-1,1])
    translate([i*ScrewOC.x/2,j*ScrewOC.y/2,0])
    cyl(CoverOA.z,d=ScrewHoleID + 2*WallThick,anchor=BOTTOM);
    }
    left((CoverOA.x – ScrewOC.x)/2 – ScrewOffset) down(Protrusion)
    for (i = [-1,1], j=[-1,1])
    translate([i*ScrewOC.x/2,j*ScrewOC.y/2,0]) {
    cyl(CoverOA.z + 2*Protrusion,d=ScrewHoleID + HoleWindage,anchor=BOTTOM);
    up(CoverOA.z – ScrewHeadRecess[LENGTH])
    cyl(ScrewHeadRecess[LENGTH] + 2*Protrusion,
    d1=ScrewHeadRecess[ID] + HoleWindage,d2=ScrewHeadRecess[OD] + HoleWindage,
    anchor=BOTTOM);
    }
    translate(SwitchOffset) left(CoverOA.x/2 – WallThick – Protrusion)
    cuboid(SwitchOA,anchor=RIGHT+FWD);
    }
    }
    //—–
    // Build things
    if (Layout == "Block") {
    CoverBlock();
    }
    if (Layout == "Shell") {
    CoverShell();
    }
    if (Layout == "Show") {
    Cover();
    }
    if (Layout == "Build") {
    up(CoverOA.z)
    xrot(180)
    Cover();
    }
  • OMTech Laser: It Was The Focus Pen Wire

    OMTech Laser: It Was The Focus Pen Wire

    Because the focus pen worked on the bench, I was certain this had to be true:

    OMTech focus pen - failed 24V wire
    OMTech focus pen – failed 24V wire

    There is a break somewhere along the blue wire carrying 24 V to the focus pen. The signal and 0 V wires are fine.

    I updated the original post, because I’m going to use that picture a lot whenever the subject of laser machine wiring comes up.

  • Basement Air Filter Box

    Basement Air Filter Box

    A box of air filters that Came With The House™ (and fit nothing therein) surfaced during a recent heap probe and prompted a quick-n-dirty project:

    Basement Air Filter Box - installed
    Basement Air Filter Box – installed

    It replaces a tired box fan (barely visible at the top) that’s been shoving air around the basement to equalize the humidity.

    The quintet of 140 mm fans seems quieter, although they don’t move quite as much air. Given that I have no way to know how much air circulation is enough, it’s likely sufficient.

    The strip of black tape covers a hole for the knob on the fan power / speed control, although I cranked it up to full throttle and expect to leave it there:

    Basement Air Filter Box - speed control
    Basement Air Filter Box – speed control

    The controller sits on a platform cut from 1.5 mm cardboard:

    Basement Air Filter Box - wiring
    Basement Air Filter Box – wiring

    The 3D printed holder came with the controller. I cannot imagine how they have enough time to print a holder for each controller; maybe it’s a QC check for a 3D printer manufacturer.

    I intended the controller to sit on the other side of the middle fan, but realized I had to cut the opening after mounting the fans and got the chirality wrong; the wiring in there layout leaves something to be desired.

    The fans mount on a sheet of cardboard cut from one side of a Home Depot Extra Large Box and the bottom of the filter box comes from the other side. Because I don’t have a deep emotional attachment to the filters, they’re attached to each other (and the bottom sheet) with hot melt glue. I do have a slight attachment to the fans, but four dabs of glue hold each one in place. More gaffer tape holds the fan sheet to the front of the assembled box, in the unlikely event I must get in there again.

    Hey, it’s Christmas: good things come in boxes, right?