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

  • Cheese Slicer: JB Weld Epoxy FTW

    The JB Weld epoxy I slathered on our trusty hand-held cheese slicer a year ago continues to withstand daily washing and occasional trips through the dishwasher:

    Cheese Slicer JB Weld 1 year - top
    Cheese Slicer JB Weld 1 year – top

    The bottom is in fine shape, too:

    Cheese Slicer JB Weld 1 year - bottom
    Cheese Slicer JB Weld 1 year – bottom

    Compare it with XTC-3D epoxy, which admittedly isn’t rated for continuous water exposure, after a year:

    Cheese Slicer - epoxy coating split
    Cheese Slicer – epoxy coating split

    JB Weld FTW!

  • MPCNC Drag Knife Holder: Showing More Blade

    Attempting to cut laminated cardstock decks for the Homage Tektronix Circuit Computer required a bit more blade extension than my LM12UU holder made available:

    Drag Knife - LM12UU ground shaft - assembled
    Drag Knife – LM12UU ground shaft – assembled

    Shortening the 12 mm shaft wasn’t going to happen, so I knocked a little bit off the blade holder to give the knurled lock ring slightly more travel:

    Drag Knife Holder - shortening stop
    Drag Knife Holder – shortening stop

    The lathe cutoff blade is a bit to the right of the new cut, but you get the general idea: not a whole lot of clearance in there.

  • Huion H610Pro (V2) Tablet vs. Ubuntu 18.04

    Given the hassle involved with getting my ancient Wacom Graphire3 tablet working with various Linux versions, I was unsurprised to find a Huion H610Pro (V2) tablet (*) didn’t quite work out of the box.

    Good old lsusb showed the tablet’s USB info:

    lsusb
    Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 004: ID 248a:ff0f  
    Bus 001 Device 007: ID 058f:9410 Alcor Micro Corp. Keyboard
    Bus 001 Device 006: ID 047d:1020 Kensington Expert Mouse Trackball
    Bus 001 Device 005: ID 046d:c508 Logitech, Inc. Cordless Trackball
    Bus 001 Device 003: ID 0451:2046 Texas Instruments, Inc. TUSB2046 Hub
    Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 004 Device 006: ID 05e3:0748 Genesys Logic, Inc. 
    Bus 004 Device 005: ID 0480:a202 Toshiba America Inc Canvio Basics HDD
    Bus 004 Device 004: ID 0bda:0411 Realtek Semiconductor Corp. 
    Bus 004 Device 003: ID 0451:8041 Texas Instruments, Inc. 
    Bus 004 Device 002: ID 0bda:0411 Realtek Semiconductor Corp. 
    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 006: ID 256c:006d  
    Bus 003 Device 004: ID 0bda:5411 Realtek Semiconductor Corp. 
    Bus 003 Device 003: ID 0451:8043 Texas Instruments, Inc. 
    Bus 003 Device 002: ID 0bda:5411 Realtek Semiconductor Corp. 
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    Yes, the space normally occupied by the product description is blank. The first blank description comes from a generic wireless keypad’s USB receiver; the 0x248a Vendor ID claims be Maxxter, a step down from the usual Logitech ID rip, and its 0xff0f Device ID looks bogus to me, too.

    The 0x256c Vendor ID isn’t in the online databases yet, but some grepping found it in /lib/udev/rules.d/65-libwacom.rules:

    # Huion H610 Pro
    ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="256c", ENV{ID_MODEL_ID}=="006e",  ENV{ID_INPUT}="1", ENV{ID_INPUT_JOYSTICK}="", ENV{ID_INPUT_TABLET}="1"
    ATTRS{name}=="* Pad", ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="256c", ENV{ID_MODEL_ID}=="006e",  ENV{ID_INPUT_TABLET_PAD}="1"
    # Huion H610 Pro
    ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="256c", ENV{ID_MODEL_ID}=="006e",  ENV{ID_INPUT}="1", ENV{ID_INPUT_JOYSTICK}="", ENV{ID_INPUT_TABLET}="1"
    ATTRS{name}=="* Pad", ENV{ID_BUS}=="usb", ENV{ID_VENDOR_ID}=="256c", ENV{ID_MODEL_ID}=="006e",  ENV{ID_INPUT_TABLET_PAD}="1"
    

    Note, however, that the Device ID is 0x006e, where the upgraded V2 tablet is 0x006d; I have no idea why the number goes down as the version goes up. Change all instances of the former to the latter.

    Even though the Wacom driver can apparently handle the older H610Pro, the V2 tablet’s buttons were missing in action.

    The solution seems come from the Digimend project, although it also expects the 0x006e Device ID, and as is usually the case, installing the latest & greatest version, hot from GitHub, did the trick.

    For this first pass, I didn’t use DKMS, which this post will remind me to do after the next kernel upgrade.

    A reboot settled all the drivers into place, after which:

    xsetwacom --list
    HUION Huion Tablet Pen stylus   	id: 10	type: STYLUS    
    HUION Huion Tablet Pad pad      	id: 11	type: PAD 

    Yes, it’s “Tablet Pad pad” and capitalization is important.

    For my simple needs, confining the stylus cursor to the landscape monitor makes sense. Adding this to ~/.config/startup.sh did the same thing as similar invocations for the Wacom:

    xsetwacom --verbose set "HUION Huion Tablet Pen stylus" MapToOutput "DP-1"

    The various buttons still need configuration, although that’s in the nature of fine tuning. The top three buttons are 1, 2, 3, with the rest tagging along at 8 through 12. They take trendy gray-on-black labeling to an absurd limit:

    Huion H610Pro V2 - embedded gray-on-black buttons
    Huion H610Pro V2 – embedded gray-on-black buttons

    That’s with intense overhead lighting shining into the buttons and lighting up the lower-surface iconography. In normal light, they’re shiny black disks with invisible legends and, no, they’re not backlit.

    The overall button-tweaking syntax:

    xsetwacom set "HUION Huion Tablet Pad pad" button 12 key whatever

    Where whatever comes from the list in /usr/include/X11/keysymdef.h, per the doc in man xsetwacom and a list of possibilities from:

    xsetwacom --list modifiers  "HUION Huion Tablet Pad pad"

    For example, this causes the bottom button to spit out a question mark:

    xsetwacom set "HUION Huion Tablet Pad pad" button 12 key shift /

    It’s not obvious changing the buttons from their default button numbers to anything else makes any sense; just tweaking individual programs to map those numbers into useful actions should work better.

    (*) It has a “battery-free” stylus which, to my way of thinking, is a major selling point.

  • American Standard Elite Kitchen Faucet: Spout Bearing Improvement

    Removing the failed hot limit stop ring from the kitchen faucet reminded me of a fix I’d done a few months ago. The faucet spout eats the O-rings sealing it to the column rising out of the sink, as evidence by the far-too-many replacements I’ve installed over the years.

    The O-ring replacement kit includes a pair of nylon (?) split rings which should provide bearing surfaces for the spout, but the upper ring sits in a groove putting its OD almost flush with the column:

    Faucet column
    Faucet column

    This may be tolerance creep or just a design screwup, but the spout squashes the O-ring much more than (IMO) it should and wears it out entirely too soon.

    This time around, I cut a strip of 0.4 mm thick polypropylene (from the Big Box o’ Clamshell Packages) long enough to wrap around the column and narrow enough to fit inside the groove, with the split ring holding it in place. The strip expands the ring’s OD to just barely fit inside the spout, so the spout now bears mostly on the ring, not the O-ring.

    Despite measuring the groove OD and the spout ID, I had to cut-and-try several strips to find the proper thickness. Your mileage will certainly differ.

    The spout now turns smoothly and freely, without leakage. We’ll see whether the new O-rings last longer than before.

  • Diamond Drag Bit: Moah Downforce!

    Engraving the Tektronix Circuit Computer bottom deck on a scrap hard drive platter suggested I’m entirely too much of a sissy about downforce on the diamond drag bit:

    Tek CC - bottom deck - HD platter - L scale
    Tek CC – bottom deck – HD platter – L scale

    That’s at Z=-5 mm for 350 g of downforce, with the spring preloaded with 100 g at a 50 g/mm rate. More or less, anyhow.

    The GCMC code automagically scales everything by the ratio of the actual platter OD to the original Tek bottom deck. Using 93 mm for a hard drive platter (actual OD = 95 mm) sets the scaling to 0.197 = 93/197, which makes the scale legends just barely visible:

    Tek CC - bottom deck - scaled to HD platter
    Tek CC – bottom deck – scaled to HD platter

    The thing looks lovely, though, with ticks engraved at 2400 mm/min and the text at 2000 mm/min. The problem turns out to be the time taken to run the Z axis down and up while engraving so many ticks and characters!

    I cranked on another 2 mm = 100 g of preload:

    CNC 3018-Pro - diamond bit downforce plot
    CNC 3018-Pro – diamond bit downforce plot

    The top graph shows the downforce in 0.1 mm increments, rising from 0.0 to 217 g in 0.3 mm, which illustrates what the Y intercept of the plot means in real life.

    Engraving at Z=-3 mm will now produce 350 g of downforce and cut the Z axis travel time down by a bit less than half. I have no idea what the right force might be; more experiments are in order.

  • American Standard Elite Kitchen Faucet: Hot Limit Safety Stop FAIL

    During an evening KP session, the kitchen faucet handle jammed at the clockwise (hottest) end of its travel and refused to turn; it continued to move vertically and I turned off the water. This had happened before, so I knew roughly what to expect:

    Am Std Elite Faucet - misaligned hot limit stop

    The pointer on the red hot limit safety stop ring should be aimed just right of the front screw, at the 0 position producing maximum hotness. The scale reads backwards, perhaps in units of increasing safety.

    In that position, the ring prevents the valve core from turning counterclockwise, which explains the symptoms. With the water turned off (at the ball valves in the basement) and the valve stub tilted vertically, the ring popped loose (it shouldn’t move on its own) and exposed the problem:

    Am Std Elite Faucet - wrecked hot limit splines - as found
    Am Std Elite Faucet – wrecked hot limit splines – as found

    Neither Mary nor I recall applying that much force to the handle, but ya never know.

    The flanges protruding from the stem prevent you from removing the ring, but a pair of small diagonal cutters will chop right through the plastic. If you’re one of the six people depending on the limit stop to keep the water temperature under control, you probably don’t want to cut the ring out; I have no suggestions on how to repair it.

    It’s obvious the splines won’t ever be the same again:

    Am Std Elite Faucet - wrecked hot limit splines - detail 1
    Am Std Elite Faucet – wrecked hot limit splines – detail 1

    The ring has two sets of splines and they’re both wrecked:

    Am Std Elite Faucet - wrecked hot limit splines - detail 2
    Am Std Elite Faucet – wrecked hot limit splines – detail 2

    With the ring out of the way, it’s easy to see the trunnion shaft has moved leftward:

    Am Std Elite Faucet - misaligned pivot shaft
    Am Std Elite Faucet – misaligned pivot shaft

    There’s essentially no clearance between the shaft and the ring, so it was rubbing against the ring, as evidenced by the red debris left behind when I tapped it to the far end of its travel:

    Reassemble in reverse order and it works fine again.

    I expect the shaft will resume moving leftward and eventually jam in the notch, probably after abrading the white plastic, but I don’t see how to lock it in place.

  • Windows-free BIOS Update

    A new-to-me Dell Optiplex 9020 needed a BIOS update, which, as always, arrives in a Windows / DOS EXE file. Because I’d already swapped in an SSD and installed Manjaro, I had to (re-)discover how to put the EXE file on a bootable DOS USB stick.

    The least horrible way seemed to be perverting a known-good FreeDOS installation image:

    sha256sum FD12FULL.zip 
    fd353f20f509722e8b73686918995db2cd03637fa68c32e30caaca70ff94c6d2  FD12FULL.zip

    Unzip it to get the USB image file, then find the partition offset:

    fdisk -l FD12FULL.img
    Disk FD12FULL.img: 512 MiB, 536870912 bytes, 1048576 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x00000000
    
    Device        Boot Start     End Sectors   Size Id Type
    FD12FULL.img1 *       63 1048319 1048257 511.9M  6 FAT16

    Mount the partition as a loop device:

    sudo mount -o loop,offset=$((63*512)),uid=ed FD12FULL.img /mnt/loop

    See how much space is left:

    df -h /mnt/loop
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0      512M  425M   87M  84% /mnt/loop

    The image file is 512 MB and has 87 MB available. The BIOS file is 9.5 MB, so copy the file to the “drive”:

    cp O9020A25.exe /mnt/loop

    Which knocks the available space down by about what you’d expect:

    df -h /mnt/loop
    Filesystem      Size  Used Avail Use% Mounted on
    /dev/loop0      512M  435M   78M  85% /mnt/loop

    Unmount the image “drive”:

    sudo umount /mnt/loop

    Copy the image file to a USB stick:

    sudo dcfldd status=progress bs=1M if=FD12FULL.img of=/dev/sdg
    512 blocks (512Mb) written.
    512+0 records in
    512+0 records out

    Pop the USB stick in the Optiplex, set the BIOS to boot from “Legacy” ROMs, whack F12 during the reboot, pick the USB stick from the list, and It Just Works™:

    BIOS Update screen
    BIOS Update screen

    We have a couple of other 9020s around that need the same treatment, so the effort won’t go to waste.