Posts Tagged Improvements

CNC 3018XL: Pilot V5RT Pen Holder Lock Screw

Flushed with success about the MPCNC drag knife locking screw, I installed a similar screw on the V5RT pen holder for the CNC 3018:

Pilot V5RT holder - lock screw insert - assembled
Pilot V5RT holder – lock screw insert – assembled

A dark ring of epoxy around the screw holds a shortened M3 brass insert in place:

Pilot V5RT holder - lock screw insert
Pilot V5RT holder – lock screw insert

As it turned out, the original recess left only a few threads for the M3 SHCS, so the much longer screw wobbulated alarmingly. I drilled out the threads, turned the knurls off the insert, shortened it a bit, masked the pretty knurls on the aluminum ring, then glopped the insert in place while the Sherline held the screw vertical:

Pilot V5RT holder - insert epoxy
Pilot V5RT holder – insert epoxy

While I was at it, I added a thin ring of foam rubber under the knurled ring to keep it from clacking against the upper bushing.

Now I can’t lose the hex wrench when I take the thing out for Show-n-Tell sessions …


Leave a comment

Raspberry Pi Shutdown / Start Button

While adding the usual Reset button to a Raspberry Pi destined for a Show-n-Tell with the HP 7475A plotter, I browsed through the latest dtoverlay README and found this welcome surprise:

Name:   gpio-shutdown
Info:   Initiates a shutdown when GPIO pin changes. The given GPIO pin
        is configured as an input key that generates KEY_POWER events.
        This event is handled by systemd-logind by initiating a
        shutdown. Systemd versions older than 225 need an udev rule
        enable listening to the input device:

                ACTION!="REMOVE", SUBSYSTEM=="input", KERNEL=="event*", \
                        SUBSYSTEMS=="platform", DRIVERS=="gpio-keys", \
                        ATTRS{keys}=="116", TAG+="power-switch"

        This overlay only handles shutdown. After shutdown, the system
        can be powered up again by driving GPIO3 low. The default
        configuration uses GPIO3 with a pullup, so if you connect a
        button between GPIO3 and GND (pin 5 and 6 on the 40-pin header),
        you get a shutdown and power-up button.
Load:   dtoverlay=gpio-shutdown,<param>=<val>
Params: gpio_pin                GPIO pin to trigger on (default 3)

        active_low              When this is 1 (active low), a falling
                                edge generates a key down event and a
                                rising edge generates a key up event.
                                When this is 0 (active high), this is
                                reversed. The default is 1 (active low).

        gpio_pull               Desired pull-up/down state (off, down, up)
                                Default is "up".

                                Note that the default pin (GPIO3) has an
                                external pullup.

        debounce                Specify the debounce interval in milliseconds
                                (default 100)

So I added two lines to /boot/config.txt:


The fancy “Moster heatsink” case doesn’t leave much room for wiring:

RPi Shutdown Restart Switch - GPIO 3
RPi Shutdown Restart Switch – GPIO 3

The switch button is slightly shorter than the acrylic sheet, so it’s recessed below the surface and requires a definite push to activate. It’s not as if it’ll get nudged by accident, but ya never know.

I’ll eventually migrate this change to all the RPi boxes around the house, because it just makes more sense than any of the alternatives. Heck, it’ll free up a key on the streaming radio player keypads, although I must move the I²C display to Bus 0 to avoid contention on Pin 3.

For reference, the Raspberry Pi header pinout:

Raspberry Pi pinout
Raspberry Pi pinout

I don’t know if I²C Bus 0 has the same 1.8 kΩ pullups as Bus 1, though; a look at the bus currents will be in order.


Leave a comment

MPCNC Drag Knife Holder: Lock Screw

While calibrating the MPCNC’s probe camera offset for the drag knife holder, this happened:

Drag Knife - vertical escape
Drag Knife – vertical escape

Well, at least it’s centered on the target:

Drag Knife - vertical escape - detail
Drag Knife – vertical escape – detail

This happened a few times before, because my fingers don’t fit neatly inside the drag knife holder to tighten the lock ring:

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

[Update: The lock ring keeps the holder at a fixed position inside the 12 mm shaft and doesn’t affect the blade directly. When the ring works loose, the threaded holder can rotate to expose more blade and, in this case, stab deeper into the target. ]

So I turned & knurled an aluminum ring, then tapped a 3×0.5 mm hole for a lock screw plucked from the Drawer o’ Random M3 Screws:

Drag Knife - lock screw - side
Drag Knife – lock screw – side

A view looking along the screw shows a bit more detail around the spring:

Drag Knife - lock screw - front
Drag Knife – lock screw – front

The general idea is to set the blade extension, then tighten the lock screw to hold it in place, without relying on the original brass lock ring, shown here while cutting a boss for the spring:

Drag Knife - turning spring recess
Drag Knife – turning spring recess

The lock screw’s knurled handle just barely kisses the NPCNC’s black tool holder ring, so my guesstimated measurements were a bit off. Clamping the knife holder one itsy higher in the tool holder solved the problem.

I cranked on 300 g of spring preload and, squashed like that, the spring’s rate is now 75 g/mm. Cutting at Z=-1 mm should suffice for laminated paper slide rule decks.

The original sizing doodle:

Drag Knife Holder - lock screw ring doodle
Drag Knife Holder – lock screw ring doodle

The short 18 mm section clears the inside of the LM12UU bearing, although it could be a millimeter shorter. The 19 mm section comes from the 3/4 inch aluminum rod I used, skim-cut to clean it up.

If I ever remake this thing, it needs a major re-think to get all the dimensions flying in formation again.

, , , ,


Photo Lamp Mount: Moah Plastic!

One of the cold shoe mounts I made for the photo lamps cracked:

Photo Lamp Mount - fractured
Photo Lamp Mount – fractured

It’s done in PETG with my more-or-less standard two perimeter threads and 15% 3D honeycomb infill, which is Good Enough™ for most of my parts. In this case, there’s obviously not nearly enough plastic in there!

Redoing it with three perimeters and 50% infill should improve the situation, even though it looks identical on the outside:

Photo Lamp Mount - reinstalled
Photo Lamp Mount – reinstalled

I didn’t replace the other mount. If it breaks, it’ll get the same 50% infill as this one. If this one breaks, I’ll try 75%.

An easy fix!

, ,


Eyelet Punch Reshaping

The hollow punch included with the 5.5 mm eyelet / grommet set had a rather blunt cutting edge:

Eyelet punch - OEM taper
Eyelet punch – OEM taper

The rainbow colors along the tapered cut suggested at least token hardening of the edge, so I mounted it in the lathe chuck, deployed a rag over the bed ways to collect the dust, and spun it at a few hundred RPM while freehanding the edge with a Dremel heavy-duty slitting wheel resting on the compound:

Eyelet punch - reshaped
Eyelet punch – reshaped

It’s not what you’d call “hollow ground”, but at least the edge doesn’t force the outside of the cut surface quite so far outward.

The Tek Circuit Computer decks get their pivot holes cut with a drag knife on the MPCNC, but I won’t be too embarrassed the next time I deploy this thing.

Leave a comment

Schwab / Symantec VIP Access vs. Yubikey

A Yubikey 5 NFC turns out to be perfectly compatible with any website using Symantec’s (no longer available) hardware key and VIP Access (definitely a misnomer) app to generate TOTP access codes, because the sites use bog-standard TOTP. The only difficulty comes from Symantec’s proprietary protocol creating the token linking an ID with a secret value to generate the TOTP codes, which is how they monetize an open standard.

Fortunately, Cyrozap reverse-engineered the Symantec protocol, dlenski mechanized it with a Python script, and it works perfectly:

python3 -m venv symkey-env
source symkey-env/bin/activate
pip3 install
vipaccess provision -t SYMC

That spits out a file containing the ID and secret, from which you create a QR code for the Yubikey Authenticator app:

qrencode -t UTF8 'otpauth://totp/VIP%20Access:SYMCidnumbers?secret=longsecretgibberish&issuer=Symantec&algorithm=SHA1&digits=6'

Fire up the app, wave the Yubikey behind the phone, scan the QR code, wave the Yubikey again to store it, sign in to the Schwab site, turn on 2FA, enter the ID & current TOTP value from the Yubikey Authenticator, and It Just Works™.

Of course, you can kiss Schwab’s tech support goodbye, because you’re on your own. If you ever lose the Yubikey, make sure you know the answers to your allegedly secret questions.

Equally of course, you’re downloading and running random shit from the Intertubes, but …

Now, if only all my financial institutions would get with the program.

, ,

Leave a comment

Needle Case Repair

A needle case emerged from the bottom of a drawer in need of repair:

Needle Case - unglued
Needle Case – unglued

The original joint used solvent glue and I suppose I could refresh it with acetone, but two blobs of hot melt glue seemed easier and, IMO, more durable.

In any event, it’s once more ready for use:

Needle Case - repaired
Needle Case – repaired

Hooray for another zero-dollar repair, although you can see why nobody else does them these days.

, ,

Leave a comment