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: Oddities

Who’d’a thunk it?

  • Manjaro Linux: TOTP PSA

    Manjaro Linux: TOTP PSA

    I set up my pobox.com account set up with two-factor authentication through my Yubikey, so logging in requires my user ID, password, and a Time-based One-time Password generated through the Yubikey Authenticator program. A few weeks ago, pobox occasionally rejected the TOTP and it eventually became a hard failure. Oddly, other sites I’ve set up with TOTP 2FA continued to work fine.

    My initial trouble report:

    The last couple of times I’ve tried to sign in, the usual TOTP copy-n-paste from my Yubikey authenticator has failed.

    Up to that point, it worked flawlessly.

    Manually typing the TOTP also fails.

    I have reset my (complex!) password to no avail; I use Firefox’s password manager to fill it in.

    I do have a set of lockout codes, but they’re a solution to a different problem.

    Given the constant updates to Firefox (102.0.3), it’s almost certain the hole is in my end of the boat. I have disabled all the usual ad blocking for pobox.com, although there may be other domains I’ve overlooked.

    Other than that, my email seems to be working just fine …

    Any suggestions on how to proceed? (Obviously, I’m not going to be able to sign on to look at the ticket.)

    Thanks …

    This is the fastest I’ve ever reached Tier 2:

    We’re happy to help you with this. I’ve escalated your ticket to our Tier 2 agents, as they are best suited to assist with this issue.

    There is nothing like a good new problem to take your mind off all your old problems:

    I’ve had a chat with our Tier 2 agents about this and they’ve suggested I escalate it to our developers to have a look at.

    Somewhat later:

    I am afraid to say that our developers were unable to find any clear reason as to why your Yubikey failed.

    Yubikey devices verify by connecting with Yubikey’s server, and it is possible that this connection failed.

    Can you please try using the Yubikey again to see if the issue is still occurring?

    If it’s still failing, can you please try adding a new Yubikey device to see if it works?

    Of course, the problem didn’t magically Go Away, but I did more experimentation and figured out where the hole was in my end of the boat:

    Ah-HA! It’s a PEBKAC error!

    For unknown reasons, this PC was not set for automatic NTP time updates(*). Its time had drifted (presumably since I installed it back in June 2021) and was now 58 seconds behind real time, exceeding pobox’s tolerance.

    Other websites apparently allow a few more seconds of slop before disallowing a TOTP, so I had not yet run afoul of their limit.

    Some lesser-used sites threw me out, however, but I had not looked beyond the most common sites.

    The default TOTP interval is 30 seconds, so perhaps pobox allows only ±1 interval and the other sites allow ±2? Frankly, I think pobox has it right: everybody else prioritizes customer sat over security.

    Got the clock set correctly and, gosh, TOTP works fine.

    Mark it solved, but definitely add “Soooo, is your PC’s clock set for automatic updates?” to the debugging protocol.

    Thanks …

    (*) I’ve installed all of the boxen here and would not ever have picked “Yeah, sure, I want to dink with the clock.”

    The solution looks like this:

    Manjaro Time and Date Settings - Auto Set
    Manjaro Time and Date Settings – Auto Set

    Which was unchecked on this PC.

    Of course, systemd has long since subsumed NTP, making everything I thought I once knew obsolete: now it’s handled by timesyncd.

    How you make sure time synchronization is enabled goes like this:

    $ systemctl status systemd-timesyncd.service
    ● systemd-timesyncd.service - Network Time Synchronization
         Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; preset: enabled)
         Active: active (running) since Thu 2022-08-25 06:49:31 EDT; 10h ago
           Docs: man:systemd-timesyncd.service(8)
       Main PID: 355 (systemd-timesyn)
         Status: "Contacted time server 23.157.160.168:123 (2.manjaro.pool.ntp.org)."
          Tasks: 2 (limit: 19063)
         Memory: 2.2M
            CPU: 188ms
         CGroup: /system.slice/systemd-timesyncd.service
                 └─355 /usr/lib/systemd/systemd-timesyncd
    
    Aug 25 06:49:31 shiitake systemd[1]: Starting Network Time Synchronization...
    Aug 25 06:49:31 shiitake systemd[1]: Started Network Time Synchronization.
    Aug 25 06:50:12 shiitake systemd-timesyncd[355]: Timed out waiting for reply from 162.159.200.123:123 (2.manjaro.pool.ntp.org).
    Aug 25 06:50:12 shiitake systemd-timesyncd[355]: Contacted time server 23.157.160.168:123 (2.manjaro.pool.ntp.org).
    Aug 25 06:50:12 shiitake systemd-timesyncd[355]: Initial clock synchronization to Thu 2022-08-25 06:50:12.850444 EDT.
    

    If it’s enabled and running, then it’s all good.

    Whereupon all my TOTP passwords began working again.

    I checked two other Manjaro systems: one had auto updates enabled, one didn’t. I have no explanation.

  • Target Van

    Target Van

    Plenty of wrecked vehicles wash up on the shores of the corner gas station / repair shop, but this is a first:

    Target van - incoming
    Target van – incoming

    Yes, those are what you think they are:

    Target van - outgoing
    Target van – outgoing

    We think it spent some time downrange on the local police training lot, but these days you never can tell.

  • Mobile Wood Oven

    Mobile Wood Oven

    So this arrangement pulled in, maneuvered about, and backed up to the building I was standing in the shade of:

    Mobile wood oven
    Mobile wood oven

    As Zappa once said: “Apparently, there was no law against that …”

  • Hyde Edge Recharge Vape Pen Teardown

    Hyde Edge Recharge Vape Pen Teardown

    Now that vape “pen” refill cartridges are (mostly) dead, roadside debris has gotten chunkier:

    Hyde Charge Vape Pen - as found
    Hyde Charge Vape Pen – as found

    It’s a Hyde Edge Recharge vape pen or it could be a counterfeit. You (definitely not me) get “up to” 3300 puffs from the 10 ml container, with 50 mg of nicotine ensuring you can’t get enough and will come back for more. Although I don’t follow the market, “disposable” vape pens can still contain the fruity flavors prohibited in refillable pens, with the added decadence of throwing the whole thing away when the tank runs dry:

    Hyde Charge Vape Pen - components
    Hyde Charge Vape Pen – components

    My admittedly inexperienced eye says the “tank”, which is really just a fiber cylinder soaked in fruity juice + nicotine, still has plenty of hits remaining.

    The Basement Shop may never smell the same again.

    Of more interest, the silvery lump wrapped in a white felt strip is a 600 mA·hr lithium cell that slurped 406 mA·hr through its USB Micro-B jack when I recharged it. Perhaps the user victim sucker tossed it when the battery “died”, being unable / unwilling / ignorant-of-how to recharge it? The yellow aluminum case seems faded on the mouthpiece end, but that might be a stylin’ thing.

    A closer look at the electronics payload:

    Hyde Charge Vape Pen - electronics
    Hyde Charge Vape Pen – electronics

    The two red wires over on the right went to the coil in the draw tube to the right of the “tank”. Not being interested enough to care, I wrecked the coil while extracting the rest of the contents. Comfortingly, the red and black wires from the PCB go to the positive and negative battery tabs.

    A closer look at both sides of the PCB:

    Hyde Charge Vape Pen - PCB detail
    Hyde Charge Vape Pen – PCB detail

    The SOT23 IC sports an LTH7 topmark corresponding to an LTC4054-4.2 Standalone Charge Controller (Analog Devices absorbed Linear in 2017). The two LEDs to its right glow red during charge and white during each puff.

    The black felt disk covers an anonymous pressure sensor activating the coil during each puff. With four pins, the sensor must be far more complex than just a switch, but nowadays puff sensing could require an entire ARM microcontroller.

    Speaking of microcontrollers, there’s always this fate:

    Hyde Charge Vape Pen - Arduino battery
    Hyde Charge Vape Pen – Arduino battery

    I fought down an almost uncontrollable urge to amputate my arms at the elbows and cauterize the stumps …

  • Lawn Chair Re-strapping: Countdown Hold

    Lawn Chair Re-strapping: Countdown Hold

    I planned to replace the vinyl straps on our set of (salvaged) lawn / patio chairs and made a pair of rivets for one long-missing strap:

    Lawn chair strap rivets
    Lawn chair strap rivets

    The overall project is on indefinite hold, as a Steel-blue Cricket Hunter (*) has decided at least one of the chairs is an ideal place to start a family:

    Lawn chair - wasp nest under construction
    Lawn chair – wasp nest under construction

    The patio under the chair is littered with blades of grass and twigs that didn’t quite fit through the 5 mm vent hole in the tube, but that long stem went in just fine:

    Lawn chair - wasp nest grass stem
    Lawn chair – wasp nest grass stem

    We have seen the wasp airlifting crickets near the chair, so provisioning has begun. The cricket seemed not only larger than the hole, but also larger than the wasp; we assume the wasp knows what she’s doing.

    The new wasp will hatch this year, pupate over the winter, then hatch and emerge next summer, but I plan to replace the straps after the construction season ends.

    I have no idea how to clean out whatever’s accumulating in there …

    (*) I learned them as Steel-blue Cricket Killer, but the crickets are just paralyzed, not completely dead.

  • High Impact Art: Smashed Glass Coaster

    High Impact Art: Smashed Glass Coaster

    Given a few pounds of smashed tempered glass:

    NHR Crash - tempered glass
    NHR Crash – tempered glass

    Lay some pieces atop an acetate sheet (to prevent scratching) on the scanner, grab the whole thing, then isolate an interesting chunk:

    Smashed Glass - dark - piece 1
    Smashed Glass – dark – piece 1

    Next time: flip the image left-to-right to match the glass piece as seen from the top, because the scanner was looking at the bottom.

    The weird purple background started as black, but blowing out the contrast while ignoring the color mis-correction makes the next step easier.

    Trace around the perimeter with Scissors Select, clean up the result in Quick Mask mode, expand the selection by a few pixels to improve clearance, then turn it into a two-color image mask:

    Smashed Glass - piece 1 - outline
    Smashed Glass – piece 1 – outline

    Import the mask into Lightburn, trace it into vector paths (which is trivially easy and accurate given such a high-contrast image), then cut a chipboard prototype to make sure it fits:

    Smashed Glass - piece 1 - acrylic mount
    Smashed Glass – piece 1 – acrylic mount

    Clean up any misfits, test as needed, cut the inner shape and outer perimeter from 1.5 mm black acrylic, cut just the outer perimeter from 3 mm clear acrylic. Put the piece of black acrylic matching the glass shape into the scrap box.

    Mix up a few milliliters of clear pourable epoxy, butter up the clear acrylic, lay the black acrylic on top, line up the edges, then gently place the shattered glass into the cutout:

    Smashed Glass - piece 1 - acrylic top
    Smashed Glass – piece 1 – acrylic top

    Next time: apply gentle pressure, perhaps through a flexy sheet, to ensure the entire glass surface contacts the epoxy layer while squeezing out the bubbles. This will surely skate the glass across the acrylic, so don’t leave it unsupervised.

    The relatively clear areas show where epoxy eased its way into the cracks between the granules; there is no correlation between the air bubbles and unfilled cracks. The epoxy had the viscosity of warm honey and I didn’t expect it to flow so easily, but it doesn’t affect the outcome.

    Wait for a day, no matter how hard that may seem, for the epoxy to cure. Leave the small cup holding the remnants of the mixed epoxy nearby so you can test the cure without disturbing the Main Event.

    The bottom looks pretty much like the top:

    Smashed Glass - piece 1 - acrylic bottom
    Smashed Glass – piece 1 – acrylic bottom

    The shattered edge reflects off the bottom of the clear acrylic, as seen through the side:

    Smashed Glass - piece 1 - acrylic side
    Smashed Glass – piece 1 – acrylic side

    Matching the perimeter to the fragment would be interesting, despite my low-vertex-polygon fixation.

    It could become a paperweight or a (shot glass) coaster.

  • High Impact Art(ifact)

    High Impact Art(ifact)

    At first we thought a mighty crunch in the morning meant the trash collection truck had dropped a garbage bin from a great height, but the sound of sirens and a myriad flashing lights revealed the true cause in our neighbor’s front yard:

    NHR Crash - frontal view
    NHR Crash – frontal view

    The extent of the damage was more apparent from the road side:

    NHR Crash - passenger side
    NHR Crash – passenger side

    Another one that ain’t gonna buff right out.

    The driver was walking around uninjured and the ambulance left quietly.

    A day later, the trajectory became apparent:

    NHR Crash - trajectory
    NHR Crash – trajectory

    The right side barely kissed the tree on the right, but the front wheel hooked the utility pole (that’s the new pole in the picture), snapped it off at ground level in addition to the usual break maybe ten feet up, and bounced a piece off the other tree:

    NHR Crash - utility pole
    NHR Crash – utility pole

    I didn’t know you could shatter a cast aluminum alloy wheel, but the missing half of the outer face was lying amid the rather scrambled stone wall along driveway.

    We’re reasonably sure we know the cause. Feel free to draw your own conclusions.

    After the flatbed hauled away the car and everybody left, I harvested a few pounds of interesting debris from the lawn:

    NHR Crash - tempered glass
    NHR Crash – tempered glass

    It’s tempered glass from the driver-side windows, shattered into small chunks and barely hanging together in those sheets. Laminated windshield glass is entirely different stuff.

    The smaller chunks glitter like jewels:

    NHR Crash - tempered glass fragments
    NHR Crash – tempered glass fragments

    Obviously, the window had a bit of tint.

    The smallest chunk, seen from its flat surface, shows the cuboid fragments:

    NHR Crash - tempered glass fragment - front
    NHR Crash – tempered glass fragment – front

    A side view shows more complexity:

    NHR Crash - tempered glass fragment - side
    NHR Crash – tempered glass fragment – side

    Tempering prevents a glass sheet from shattering into long knife-blade shards. Although the edges of the fragments are not keen, we are dealing with broken glass: they are sharp.

    How sharp? They make glass knives for slicing eyes and cells.

    Broken tempered glass also sheds razor-edged flakes perfectly shaped to penetrate bike tires, although most roadside glass comes from ordinary beverage bottles. The tiniest flakes can make a mess of your eyes, so exercise at least some rudimentary shop safety practices.

    Those slabs ought to be good for something, even if they fall apart at the slightest touch …