Tek Circuit Computer: Cursor Milling

The white separating film on the double-sided tape makes the cursor milling fixture look presentable:

Tek CC - Cursor milling fixture - 2-side tape applied
Tek CC – Cursor milling fixture – 2-side tape applied

Some deft X-acto knife work exposed the trench around what will be the cursor’s perimeter, in the hope of keeping tape stickiness out of the milling cutter.

Peeling off the white film and sticking a PETG cursor blank to the tape reveals I didn’t do a particularly good job of cleaning the rubble from the trench edges:

Tek CC - Milled cursor - bad tape application
Tek CC – Milled cursor – bad tape application

These PETG sheets arrive with a transparent film on one side and a white film on the other. The picture shows the white film on the bottom of the PETG sheet, with the dark areas corresponding to places where the film sticks to the tape and the tape sticks to the fixture. The lighter areas show an air gap in (at least) one of those interfaces; given the amount of clutter, I think it’s mostly between the tape and the fixture.

I milled the cursor with a 1/8 inch = 3.175 mm cutter:

Tek CC - Milled cursor - outline
Tek CC – Milled cursor – outline

The ball of swarf around the cutter wasn’t as threatening as it appears, because it had very little adhesive holding it together. The rows of swarf surrounding the PETG show why putting the tape all over the fixture isn’t a particularly good idea. ‘Nuff said.

Engraving the hairline with the diamond drag bit was entirely uneventful:

Tek CC - Milled cursor - hairline scribe
Tek CC – Milled cursor – hairline scribe

Four passes at Z=-2 mm = 300 g downforce put a delicate scratch across the surface. Run a fat black Sharpie along the hairline, wipe off the excess with denatured alcohol, and peel the white film from the other side:

Tek CC - Milled cursor - first try
Tek CC – Milled cursor – first try

It’s sitting atop the doodle giving the dimensions, such as they are, for the milling fixture.

The hairline came out so fine it makes the Pilot V5RT ballpoint pen lines look downright chunky:

Tek CC - Yellow Cardstock - Pilot V5RT - Milled Cursor
Tek CC – Yellow Cardstock – Pilot V5RT – Milled Cursor

Seen over the engraving test piece with scraped Testors paint, however, things look just the way they should:

Tek CC - Engraved - Testors Paint - Milled Cursor
Tek CC – Engraved – Testors Paint – Milled Cursor

In a techie kind of way, of course, which is the only way that matters on Planet Slipstick …

Tek Circuit Computer: Cursor Milling Fixture

The original Tektronix Circuit Computer cursor is a floppy sheet of plastic with a hairline printed on it. I’m making the homage version from 0.5 mm PETG sheet with an engraved hairline:

Tek CC - radial text example
Tek CC – radial text example

But I don’t foresee enough ahem production volume to justify making a punch-and-die to cut the thing out, so I need a milling fixture to hold the sheet in place while I have my way with it.

Start by squaring up a suitably sized scrap from the Box o’ Plastic Scrap:

Tek CC - Cursor milling fixture - squaring sides
Tek CC – Cursor milling fixture – squaring sides

It need not be particularly square, but getting rid of the ragged edges seemed like a Good Idea. I think it’s polycarbonate and, yes, it’s just about that green in real life.

Align it square-ish to the tooling plate and drill three #7 holes on 1.16 inch centers to line up with the plate and clear the Sherline’s 10-32 screws:

Tek CC - Cursor milling fixture - hole drilling
Tek CC – Cursor milling fixture – hole drilling

The two outer holes will clamp the fixture to the table. The third hole may be useful to clamp a stack of cursors to the fixture, should I need more than a few.

Screw it to the tooling plate, mill the outline of the cursor into the fixture, apply a layer of double sticky tape, then cut out the cursor outline so the milling bit won’t accrete a giant whirling ball of adhesive & swarf:

Tek CC - Cursor milling fixture - 2-side tape applied
Tek CC – Cursor milling fixture – 2-side tape applied

I milled the perimeter 2 mm deep, anticipating a 1 mm cut depth for the cursor, and milled a small step inside the perimeter by compiling the GCMC code with a 2.5 mm cutter diameter instead of the actual 3.175 mm. I tweaked the cursor code for proper offset milling, about which more later.

With the tape in place, it’s not entirely obvious this will work the way I expect, but it wasn’t too difficult.

Fu Mask Cutting Templates

A local hospital contacted Mary’s quilting group to sew up cloth covers to prolong the life of their medical-grade N95 masks. Their recommended pattern, the Fu Face Mask from the FreeSewing group, comes in three sizes:

Freesewing - Fu Mask
Freesewing – Fu Mask

N.B.: Use their original PDF, because a JPG picture probably won’t come out at the right size.

Also N.B.: Used by itself, this is not a medical-grade filter mask.

The patterns do not include the usual 1/4 inch seam allowance around the outside, so I cranked out 3D printed plastic cutting templates.

If you’re not interested in 3D printing, 2D print the PDF file on cardboard, sketch a seam allowance, and cut it out, as quilters have been doing since slightly after home printers happened.

The plan of attack:

  • Convert mask outlines into a bitmap image (GIMP)
  • Create Bezier curves by tracing outlines (Inkscape)
  • Save curves as SVG files
  • Convert SVG into solid model (OpenSCAD)
  • Add stiffening ribs &c
  • Save as STL solid model
  • Slice into G-Code file (Slic3r)
  • Fire the M2!

So, we begin …

Import the PDF into The GIMP, delete the text & suchlike, convert to monochrome, and save the pattern outlines as a PNG file:

Fu Facemask - outlines
Fu Facemask – outlines

It turns out Inkscape can directly import the PDF, but it valiantly tries to convert all the text and the incidental graphic elements, none of which will be useful in this situation. It’s easier to delete them in The GIMP and make a bank shot off a PNG file.

Update: Scruss’s comment provides a much simpler workflow!

Import the PNG into Inkscape and trace one outline with the Bezier curve tool:

Fu Mask - Inkscape Bezier trace
Fu Mask – Inkscape Bezier trace

If you squint really carefully, you’ll see Bezier control handles sticking out of the nodes. I laid three nodes along the top arc and four along the right side, but do what’cha like; the Insert key or Shift+I inserts and Delete removes nodes. It’s easier to center a node in the middle of the PNG line with snapping turned off: Shift+drag while mousing or globally with #.

You could unleash the bitmap auto-tracer, but it generates a bazillion uselessly tiny Bezier curves.

When you’re happy, select and copy the path with Ctrl+C, paste it into a shiny new Inkscape document (Ctrl+N) with Ctrl-V, save it with a catchy file name like Fu Mask - Small - nominal.svg, and close that document to return to the document with the PNG outlines and the original path.

Select the original path again, create a dynamic offset with Ctrl+J, open the XML editor with Ctrl+Shift+X (which automagically selects the proper SVG element), and change the inkscape:radius value from 0 to 6.35 (mm, which everyone should use) to get a 1/4 inch seam allowance:

Fu Mask - Inkscape XML Editor - Offset radius
Fu Mask – Inkscape XML Editor – Offset radius

The path will puff out with curved corners:

Fu Mask - Inkscape offset
Fu Mask – Inkscape offset

Copy into a new document, save as Fu Mask - Small - seam allowance.svg, and close.

Repeat that process for each of the three mask sizes to create three pairs of SVG files: the nominal mask outline and the corresponding seam allowance outline for each size.

The OpenSCAD program imports the SVG files, removes the nominal outline from within the seam allowance to leave the outline, adds stiffening ribs, and stamps an ID letter on both sides of the central button:

Fu Mask Cutting Template - Small - solid model
Fu Mask Cutting Template – Small – solid model

Choose one of the three sizes with the OpenSCAD customizer, save the resulting model as an STL file, repeat for the three sizes, and you’re done.

This process can convert any outline paths in SVG files into cutting templates, so, should the Fu Mask not suit your fancy, Use The Source.

For convenience, the STL files are on Thingiverse.

From the comments, a Washington hospital uses a similar pattern: their PDF with assembly instructions.

The OpenSCAD source code as a GitHub Gist:

// Fu Mask cutting templates
// Ed Nisley - KE4ZNU - 2020-03
// Mask patterns from:
// https://freesewing.org/blog/facemask-frenzy/
// More info on my blog:
// https://softsolder.com/2020/03/29/fu-mask-cutting-templates/
/* [Mask Size] */
Name = "Small"; // [Small, Medium, Large, Test]
/* [Hidden] */
Templates = [ // center ID letter and file name
["T","Test"], // for whatever you like
T_ID = 0; // Template indexes
T_NAME = 1;
BarThick = 4.0; // template thickness
HubOD = 20.0; // center button diameter
// These should match slicer values
ThreadThick = 0.25;
ThreadWidth = 0.40;
Protrusion = 0.1; // make clean holes
//--- Build it
t = Templates[search([Name],Templates,1,1)[0]]; // find template index
Dir = "./";
FnOuter = str(Dir,"Fu Facemask - ",t[T_NAME]," - seam allowance.svg");
FnInner = str(Dir,"Fu Facemask - ",t[T_NAME]," - nominal.svg");
difference() {
linear_extrude(BarThick,convexity=5) {
intersection() {
union() {
square([200.0,5.0],center=true); // horizontal bar
square([5.0,200.0],center=true); // vertical bar
circle(d=HubOD); // central button
difference() { // cutting template!
translate([0,0,BarThick - ThreadThick]) // top ID recess
cylinder(d=HubOD - 6*ThreadWidth,h=ThreadThick + Protrusion);
translate([0,0,-Protrusion]) // bottom ID recess
cylinder(d=HubOD - 6*ThreadWidth,h=ThreadThick + Protrusion);
translate([0,0,2*BarThick/3]) // top ID
mirror([1,0,0]) // bottom ID

Verily, there’s nothing like a good new problem to take your mind off all your old problems …

Upconverting Baby Wipes

As other folks have discovered, it’s straightforward to convert soft, soothing baby wipes into toxic sanitizing wipes by pouring harsh chemicals down the hatch:

AmazonBasics Baby Wipes
AmazonBasics Baby Wipes

Ending up with the proper dilution, though, requires knowing how much liquid the wipes already have, so you can account for it in whatever recipe you’re following.

Stand back, I’m going to use arithmetic!

Gut a new package of wipes: 552 g total weight, with 80 wet wipes weighing 536 g, so the packaging amounts to 15.5 g and each wet wipe weighs 6.7 g.

Hang five wipes in the breeze for a few hours to find they weigh 9.2 g. They’re still slippery, because of all the aloe & Vitamin E & whatever else Amazon specifies for the mix, but they’re dry. One dry wipe weighs 1.8 g, so all 80 weigh 150 g.

The block o’ wet wipes holds 536 – 150 = 390 g = 390 ml of water.

Should you want a 70% (by volume) isopropyl alcohol solution, pour 0.7/0.3 × 390 ml = 910 ml of 99% alcohol into the package and let it settle for a while. Each wipe will emerge dripping wet, but that’s not entirely a Bad Thing. Perhaps it’d be a good idea to start by letting the block dry out for a while, re-weigh, then calculate the alcohol dose from the reduced amount of water.

Bleach dilutions for sanitation seem wildly varied, but the jug of 8.25% sodium hypochlorite on the shelf says 1/2 cup to a gallon, a 1:32 volume ratio. Starting with 390 ml of water-like substance in the package, pour 12 ml of bleach into the hatch, let things settle, then squish it around for good measure.

None of the dosages seem particularly critical, given the slapdash way everybody applies wipes.

You should, of course, conspicuously mark the packages, so as not to apply toxic wipes to sensitive parts of you or your baby …

COVID-19: Elephant Path Prediction

We now have enough statistics from the USA to draw some useful graphs, so click the Logarithmic options to make the charts comprehensible:

COVID-19 - USA Total Cases and Total Deaths - 2020-03-25
COVID-19 – USA Total Cases and Total Deaths – 2020-03-25

The penciled lines give an eyeballometric fit, but it’s pretty obvious the USA is now dealing with purely exponential infection rates.

Total Cases, which is the patients tested = people already in the medical system, is growing by a factor of ten every eight days. By next weekend, the USA will have one million Total Cases: average it to 112,000 new cases, every day, over the next eight days.

Which may not happen, if only because we may not have the intake / testing / recording capacity for that number of patients and maybe, just maybe, Social Distancing will have an effect. I expect the Total Cases line bend downward slightly during the week, but it won’t be anywhere near horizontal. Obviously, the extrapolation fails completely within the next 24 days, because we lack a factor of 1000 more people to infect.

Total Deaths still equals Total Cases with a delay of fourteen days. By next weekend, the USA will have 10,000 Total Deaths: ramping up to average 1120 new deaths, every day, over the next eight days.

The 9,000 patients who will die in the next week are already in the medical system (because you take about two weeks to die) and, at least in downstate NY, have essentially filled all available hospital beds; they’re getting the best care possible from the medical establishment.

The next 900,000 cases, appearing “suddenly” during the next eight days, have nowhere to go; doubling hospital capacity and converting every flat surface into a mass ward are worthwhile goals, but they’re a linear solution to an exponential problem.

Not every new case becomes a patient, but in the USA we seem to be testing only folks with obvious COVID-19 symptoms, so all the optimistic hospitalization estimates of 10% are off the table and 50% seems more believable. Pick any percentage you like.

Eight days from now, the rate will ramp toward 10,000 deaths per day, to reach 100,000 Total Deaths in sixteen days, again, as an average.

Nearly everybody will survive this pandemic, because the overall death rate seems to be a few percent. For those of us in the Boomer-and-up generations, (theme: Aqualung) well, this may be our contribution to solving the Social Security & Medicare budget problems.

Sherline: Diamond Drag Engraving Tool Holder

Although I shouldn’t have used a hardened shaft for the case, the rest of the diamond drag tool holder worked out well enough:

Sherline Diamond Drag Holder - assembled
Sherline Diamond Drag Holder – assembled

The dimension doodle shows what’s inside and gives some idea of the sizes:

Sherline Diamond Drag Holder - dimension doodles
Sherline Diamond Drag Holder – dimension doodles

From left to right, it’s an M6×1.0 setscrew to adjust the spring preload, a spring harvested from a cheap clicky ballpoint pen, a machined cap, a 3 mm rod (which should be a hardened & ground shaft, but isn’t) surrounded by a pair of LM3UU linear bearings, a machined coupler, and the stub of a diamond engraving tool’s shank.

Tapping 15 mm of M6×1.0 thread inside of the case took an unreasonable amount of grunt. Next time, brass.

The setscrew gets a little boss to hold the spring away from the adjacent threads in the case:

Sherline Diamond Drag Holder - setscrew spring boss
Sherline Diamond Drag Holder – setscrew spring boss

The little machined cap has a somewhat longer spring guide to prevent buckling:

Sherline Diamond Drag Holder - shank cap spring guide
Sherline Diamond Drag Holder – shank cap spring guide

The spring fits snugly on the slightly enlarged section inside the last few coils, with the rest being a loose fit around the guide. When the spring is fully compressed, it’s just slightly longer than the guide and can’t buckle to either side.

The cap gets epoxied onto the 3 mm rod with some attention to proper alignment:

Sherline Diamond Drag Holder - shank cap alignment
Sherline Diamond Drag Holder – shank cap alignment

The other end of the rod has a 3 mm thread, which would be a serious non-starter on a hardened rod.

The shortened diamond tool shank gets epoxied into the gizmo connecting it to the now-threaded rod, again with some attention paid to having it come out nicely coaxial:

Sherline Diamond Drag Holder - diamond tool alignment
Sherline Diamond Drag Holder – diamond tool alignment

The LM3UU bearings got epoxied into the case, because I don’t have a deep emotional attachment to them.

Unscrew diamond tool, push spring onto cap, drop rod through bearings, crank setscrew more-or-less flush with the end of the case, screw diamond in place with some weak threadlock, add oil to rod, work it a few times to settle the bearings, and it’s all good.

A quick spring rate measurement setup, with a brass tube holding the diamond point off the scale pan:

Sherline Diamond Drag Holder - installed
Sherline Diamond Drag Holder – installed

The spring rate works out to 230 g + 33 g/mm for deflections between 1.0 mm (263 g) and 3.5 mm (346 g), so it’s in the same ballpark as the diamond tools on the MPCNC and CNC 3018.

Note: WordPress just “improved” their post editor, which has totally wrecked the image alignment. They’re all set to “centered” and the editor says they are, but they’re not. It’s a free blog and I’m using one of their ancient / obsolete / unsupported themes, so I must update the theme. Bleh.

Mini-Lathe vs. Case-Hardened Shaft

While doodling a drag knife holder for the Sherline, I figured a 3/8 inch shaft would hold all the parts and fit neatly into a standard Sherline tool holder, which it did:

Sherline Diamond Drag Holder - installed
Sherline Diamond Drag Holder – installed

Having recently upcycled a 3/8 inch shaft from the Thing-O-Matic into a pen holder for the CNC 3018-XL, I cut off another section with an abrasive wheel, then tried to face it off:

Hardened shaft facing - abrasive step
Hardened shaft facing – abrasive step

Although the mini-lathe’s carbide insert gnawed at the shaft’s case-hardened shell, it obviously wasn’t making much progress against that step.

Back to the abrasive cutoff saw:

Hardened shaft facing - abrasive flattening
Hardened shaft facing – abrasive flattening

Which looked better, although it still wasn’t quite perpendicular to the shaft axis.

Back to the lathe:

Hardened shaft facing - lumpy face
Hardened shaft facing – lumpy face

Well, it’s better, but it sure ain’t pretty.

Put gently, the mini-lathe’s lack of rigidity doesn’t help in the least. The compound was a-reelin’ and a-rockin’ on every revolution and eventually turned a slight tilt into a distinct radial step.

Memo to Self: Dammit, use a brass rod!