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.

, ,

Leave a comment

Mini-Lathe DRO Battery Life

The Mini-Lathe DROs eat a 390 alkaline coin cell a year, more or less:

Mini-Lathe DRO - battery life
Mini-Lathe DRO – battery life

The other DRO’s cell was 10 mV higher, so it might have survived another few weeks. I’ll call it a year, as the OEM cells failed half a year after I got the thing and these are the second set.

The last time I did this, I wedged a thin foam sheet below the display PCB to put a bit more pressure on the (+) contact tab sticking down from the middle of the plate:

Mini-Lathe DRO - battery compartment
Mini-Lathe DRO – battery compartment

The (-) contact is a pad on the PCB below the battery compartment. The glaring metal reflector is part of the curved cell retainer.

I still wish the DROs didn’t collide with the compound slide, but you can get used to anything if you do it long enough.

,

3 Comments

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.

,

Leave a comment

Tek Circuit Computer: Drag Knife Deck Cutting

Creating a paper version of the Tektronix Circuit Computer requires nothing more than a drag knife to cut the deck outlines:

Tek Circuit Computer - cursor hairline
Tek Circuit Computer – cursor hairline

The middle deck is a disk with a notch exposing the FL scale, a cutout window exposing the inductive time constant / risetime scale, and a wee circle for the Chicago screw in the middle:

Tek CC - middle deck outline
Tek CC – middle deck outline

Three angles define the notch:

  FLNotchArc = 85deg;                   // width exposing FL scale
  FLRampArc = 7deg;                     // … width of entry & exit ramps
  FLNotchOffset = 2deg;                 // … start angle from 0°

Given those, along with the deck radius and notch height (equals the underlying scale height), calculate four points defining the start and end of the ramps and connect the dots:

  local a0 = FLNotchOffset;
  local p0 = DeckRad * [cos(a0),sin(a0),-];

  local a1 = a0 + FLNotchArc;
  local p1 = DeckRad * [cos(a1),sin(a1),-];

  goto(p0);
  move([-,-,KnifeZ]);
  arc_cw(p1,-DeckRad);          // largest arc

  local r = DeckRad - ScaleHeight;
  local a3 = a1 - FLRampArc;
  local p3 = r * [cos(a3),sin(a3),-];

  local a4 = a0 + FLRampArc;
  local p4 = r * [cos(a4),sin(a4),-];

  move(p3);
  arc_cw(p4,r);                 // smallest arc

  move(p0);                     // end of notch

  arc_cw([DeckRad,0,-],DeckRad);      // round off corner

The arc_cw() functions draw arcs, as you’d expect, with a positive radius tracing the shortest arc and a negative radius for the longest arc. Although I know how that works, I must still preview the result to verify the G-Code does what I want, not what I said.

The unhappy result of a wrong sign:

Tek CC - middle deck outline - wrong arc sign
Tek CC – middle deck outline – wrong arc sign

GCMC uses the (signed) radius to generate the XY coordinates and IJ offsets for G2 commands in the preferred center format:

G0 X88.846 Y3.103
G1 Z-2.000
G2 X4.653 Y88.778 I-88.846 J-3.103

Cutting the window starts from its angular width and offset, which are hardcoded magic numbers from the Tek artifact, and proceeds similarly:

  local WindowArc = 39deg;

  local ac = -6 * ScaleArc;                  // center of window arc
  local r0 = DeckRad - ScaleHeight;         // outer
  local r1 = DeckRad - 2 * ScaleHeight;     // inner

  local aw = WindowArc - to_deg(atan(ScaleHeight,(r0 + r1)/2));    // window arc minus endcaps

  local p0 = r0 * [cos(ac + aw/2),sin(ac + aw/2),-];
  local p1 = r0 * [cos(ac - aw/2),sin(ac - aw/2),-];
  local p2 = r1 * [cos(ac - aw/2),sin(ac - aw/2),-];
  local p3 = r1 * [cos(ac + aw/2),sin(ac + aw/2),-];

  goto(p0);
  move([-,-,KnifeZ]);

  arc_cw(p1,r0);                          // smallest arc
  arc_cw(p2,ScaleHeight/2);               // half a circle
  arc_ccw(p3,r1);
  arc_cw(p0,ScaleHeight/2);

Trust me on this: incorrect radius signs generate unrecognizable outlines. Which, of course, is why you preview the G-Code before actually cutting anything:

Tek CC - MPCNC drag knife
Tek CC – MPCNC drag knife

A similar hunk of code cuts the top deck; the bottom deck is a simple circle.

The workflow, such as it is:

  • Tape a sheet of paper (Index stock, Basis 110 = 10 mil = 0.25 mm) at the center of the 3018-ProXL platform
  • Plot (“engrave”) the scales with a pen
  • Affix paper to a Cricut sticky mat taped to the MPCNC platform
  • Touch off the origin at the middle
  • Drag-cut (“mill”) the outlines

Less complex than it may appear, but the GCMC file now spits out two G-Code files per deck: one to engrave / draw the scales on the 3018 and another to mill / cut the outlines on the MPCNC.

, ,

Leave a comment

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.

,

Leave a comment

Tiny Screwdriver!

My buddy dBm took pity on my plight:

Tiny screwdriver
Tiny screwdriver

The far end has a 2.5 mm hex driver, although I’ve never encountered a nut for an M1×0.25 screw in the wild. It doesn’t fit an 0-80 nut and gulps 00-90 nuts, so it’s definitely hard metric.

My collection of glasses required an aggregate two turns of tightening, which prompted dBm to remind me of threadlock.

Done!

Thank you, dBm!

6 Comments

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.

,

Leave a comment