Homage Tektronix Circuit Computer: Laser-Engraved Hairline Tests

This worked out surprisingly well:

Tek CC - laser-etched cursor hairline
Tek CC – laser-etched cursor hairline

Not knowing what to expect, I peeled the protective plastic off the styrene PETG sheet before cutting the perimeter, thereby dooming myself to about five minutes of polishing with Novus 2 to remove the condensed vaopor and another five minutes restoring the shine with Novus 1. Next time, I’ll know better.

Eyeballometrically, the hairline is a lovely fine line, but it’s really a series of craters on 0.25 mm centers filled with red Pro Sharpie marker and wiped off with denatured alcohol:

Tek CC - laser-etched cursor hairline - detail
Tek CC – laser-etched cursor hairline – detail

That’s dot mode: 2 ms pulses at 20% power (about 12 W) with a line speed of 100 mm/s and 0.25 mm dot spacing. The craters look to be 0.15 mm in diameter, with a 0.15 mm blast radius merging into a line along the sides. The view is looking through the undamaged side of the cursor, so you’re seeing the craters from their tips.

I cut the cursor and engraved / etched the hairline in one operation, by just laying a rectangle on the honeycomb and having my way with it:

Tek CC Cursor - LightBurn layout
Tek CC Cursor – LightBurn layout

For a more systematic test I aligned a cursor engraving fixture I built for the Sherline atop the laser’s honeycomb platform and wedged it into place with eccentric stops, then dropped a cursor milled on the Sherline in place:

Tek CC Cursor - laser fixture alignment
Tek CC Cursor – laser fixture alignment

The six pips (small printed holes with ugly black outlines) intended for the Sherline’s laser aligner make this feasible, although the accuracy of the OMTech’s laser pointer requires precisely setting the focal point atop the fixture.

The corners of LightBurn’s tooling layer (the enclosing rectangle) match the corner pip positions, so framing the pattern should light up those four holes. Putting the Job Origin (small green square) at the center-left point lets me tweak the machine’s origin to drop the alignment laser into that pip.

AFAICT, burning a cute puppy picture pretty close to the middle of a slate coaster makes everybody else deliriously happy.

Setting up the cut layer parameters:

Tek CC Cursor - laser dot mode tests
Tek CC Cursor – laser dot mode tests

Burning through the protective film, peeling it off, filling with Sharpie, and wiping with alcohol produces interesting results against a 0.1 inch = 2.54 mm grid:

Tek CC Cursor - dot mode 1-2ms 10-20pct
Tek CC Cursor – dot mode 1-2ms 10-20pct

The angled top and bottom lines are the edges of the cursor, positioned with the craters on the top surface.

The bottom three lines at 10% power consist of distinct 0.10 mm craters incapable of holding much ink:

Tek CC Cursor - dot mode 2ms 10pct
Tek CC Cursor – dot mode 2ms 10pct

The top three lines at 20% power have 0.15 mm craters and look better:

Tek CC Cursor - dot mode 1ms 20pct
Tek CC Cursor – dot mode 1ms 20pct

The top line was a complete surprise: it seems a 20% duty cycle does not turn off completely between 1 ms dots spaced at 0.15 mm. I expected a row of slightly overlapping dots, which is obviously not what happens.

Punching the dots through the protective film eliminated the polishing operation, although I have yet to cut the perimeter with the film in place.

More experimentation is in order, but it looks like I can finally engrave good-looking and perfectly aligned hairlines on nicely cut cursors without all those tedious manual machining operations.

Tek CC Milled Cursor: MVP

What a difference 100 µm can make:

Hairline V tool tests - 0.3 mm 10 kRPM 24 ipm
Hairline V tool tests – 0.3 mm 10 kRPM 24 ipm

All three hairlines have 0.3 mm depth of cut, with the spindle running at 10 kRPM and the cut proceeding at 24 inch/min = 600 mm/min. All three cuts went through a strip of water + detergent along their length, which seems to work perfectly.

The cuts start on the left side:

Hairline V tool tests - 0.3 mm 10 kRPM 24 ipm - start
Hairline V tool tests – 0.3 mm 10 kRPM 24 ipm – start

I cut the red hairline through the PET cursor’s protective film to confirm doing it that way is a Bad Idea™; the gnarly appearance is sufficient proof.

The cuts end on the right:

Hairline V tool tests - 0.3 mm 10 kRPM 24 ipm - end
Hairline V tool tests – 0.3 mm 10 kRPM 24 ipm – end

Eyeballometrically, the cuts are the same depth on both ends, with a slight texture difference at the start as the X axis ramps up to full speed.

They’d be a bit stout on an old-school engraved slide rule, but look just fine laid against a laser-printed Homage Tek Circuit Computer:

Hairline V tool tests - 0.3 mm 10 kRPM 24 ipm - Tek CC
Hairline V tool tests – 0.3 mm 10 kRPM 24 ipm – Tek CC

Flushed with success, here’s a fresh-cut red hairline in action:

Tek CC cursor hairline - V tool red fill
Tek CC cursor hairline – V tool red fill

The end of the cursor sticks out 1 mm over the rim of the bottom deck, because I wanted to find out whether that would make it easier to move. It turns out the good folks at Tek knew what they were doing; a too-long cursor buckles too easily.

The trick will be touching off the V tool accurately enough on the cursor surface to get the correct depth of cut. The classic machinist’s technique involves a pack of rolling papers, which might be coming back into fashion here in NY.

Tek CC Milled Cursor vs. Speed vs. Coolant

After getting the Sherline running with the Mesa 5I25, I could return to milling cursor hairlines for the Tek Circuit Computer:

Hairline V tool - fixture
Hairline V tool – fixture

That’s the fixture intended for Gyros circular saw blades, repurposed for V tool engraving. The V tool in the Sherline tool holder collet is one of the ten-pack from the CNC 3018, unused until this adventure.

The actual setup had a scrap cursor secured with a strip of Kapton tape:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - Kapton fixture
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – Kapton fixture

Those are three passes at (nominal) depths of 0.2, 0.3, and 0.4 mm (bottom to top) with a pre-existing hairline visible just above the second pass. The spindle ran at the Sherline’s top speed of just under 10 kRPM with no coolant on the workpiece.

I touched off the 0.2 mm cut by lowering the tool 0.1 mm at a time until it just left a mark on the Kapton tape, after a coarse touch-off atop a 0.5 mm plastic card, and calling it zero.

Scribbling over the cuts with a red Industrial Sharpie looked downright gory:

Hairline V tool - 0.2 0.3 0.4 DOC - Kapton Sharpie
Hairline V tool – 0.2 0.3 0.4 DOC – Kapton Sharpie

Peeling the tape and applying a cloth moistened with denatured alcohol showed three gnarly hairlines:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - Kapton start
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – Kapton start

The top hairline shows distinct signs of melted PET plastic along the trench, with poor color fill due to the Sharpie not sticking to / wiping off the smooth-ish trench bottom. The next one is the existing saw-cut hairline with the lead-in cut over on the left.

The 0.3 and 0.2 mm hairlines look much better, with less debris and more complete fill. Unfortunately, the right side of the Sherline’s tooling plate seems to be a few tenths of a millimeter lower than the left, causing the 0.2 mm hairline to … disappear … where the cutter skipped up onto the Kapton tape:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - Kapton mid
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – Kapton mid

Now, in practical terms, this is the first time I’ve actually needed platform alignment to within a hundred microns in subtractive machining. As some folks discover to their astonishment, however, 3D printing does require that level of accuracy:

Thinwall Box - platform height
Thinwall Box – platform height

Engraving through a layer of tape isn’t the right way to do it and some coolant will definitely improve the results, so I ignored the alignment issue, remounted the same scrap cursor with the red hairlines on the bottom, pulled a strip of water + detergent along the tool path, cut the same hairlines, and colored the trenches with blue Industrial Sharpie:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - water cool start
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – water cool start

The 0.2 mm hairline on the bottom becomes a line as the V bit begins sliding along the surface at 10 kRPM without cutting:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - water cool mid
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – water cool mid

The 0.3 mm hairline looks pretty good and the 0.4 mm hairline remains too rugged by the end of the passes. I think the actual depth of cut is at least 0.05 mm less than at the start:

Hairline V tool - 0.2 0.3 0.4 DOC 10K RPM - water cool end
Hairline V tool – 0.2 0.3 0.4 DOC 10K RPM – water cool end

Obviously, neurotically precise touchoff carries a big reward, as will aligning the tooling plate to an absurd degree.

A real machinist simply flycuts the top of an offending part / fixture / tooling plate to align it with the machine’s spindle, but I have a sneaky suspicion the real problem is a speck (or ten) of swarf between the Sherline’s table and the tooling plate; better cleanliness and attention to detail may improve the situation.

Tek Circuit Computer: V Engraved Hairlines

Without much in the way of fixturing, a small V engraving bit cuts surprisingly nice hairlines:

Hairline tests - V tool 4 kRPM 12 24 IPM - full crop
Hairline tests – V tool 4 kRPM 12 24 IPM – full crop

It’s an anonymous HSS bit similar to the fancy ones with “blue nano” or “titanium” coatings, which I’m sure have the same effectiveness as the “gold” coating on audio plugs and jacks.

The tip is pretty close to the stated 0.1 mm. The included V angle looks like 22.5°, but the descriptions use the half angle, so it’s either a generous 10° or a scant 15°, take your pick.

It’s turning at 4000 RPM in the Sherline spindle, which is much too slow for such a tiny cut. No coolant, nothing fancy.

The lower left group ran at increasing depths from 0.0 to about 0.6 mm, with the deepest one looking surprisingly good.

It’s all manual jogging at either 12 or 24 inch/min and, when you (well, I) count the swirls across those 100 mil grids, the spindle really is turning at 4 kRPM. Gotta love it when the numbers work out!

These are obviously the best-looking hairlines yet, so I must tweak the GCMC source to do the right thing with the existing fixture.

Tek Circuit Computer: Sawed Hairline Fixture

This is a fixture to hold a cursor for an Homage Tektronix Circuit Computer while a tiny circular saw blade cuts a narrow flat-bottomed trench:

Tek CC - sawed cursor - Sherline setup
Tek CC – sawed cursor – Sherline setup

Each of the 123 blocks is held to the Sherline tooling plate with a 10-32 SHCS in a little aluminum pin, with another threaded pin for the screw holding the fixture on the side. The minimal top clearance provided some of the motivation behind making those pins in the first place; there’s no room for the usual threaded stud sticking out of the block with a handful of washers under the nut.

The fixture has locating slots (scribbled with black Sharpie) to touch off the spindle axis and the saw blade at the XZ origin at the pivot hole center. Touching off the saw blade on the cursor surface sets Y=0, although only a few teeth will go ting, so the saw must be spinning.

I cut the first slot under manual control to a depth of 0.3 mm on a scrap cursor with a grotty engraved hairline:

Tek CC - first sawed cursor - detail
Tek CC – first sawed cursor – detail

It looks better than I expected with some red lacquer crayon scribbled into it:

Tek CC - first sawed cursor - vs scribed
Tek CC – first sawed cursor – vs scribed

A few variations of speed and depth seem inconclusive, although they look more consistent and much smoother than the diamond-drag engraved line with red fill:

Tek CC - sawed cursor test - magnified
Tek CC – sawed cursor test – magnified

The saw produces a ramp at the entry and exit which I don’t like at all, but the cut is, overall, an improvement on the diamond point.

The OpenSCAD source code as a GitHub Gist:

// Sawing fixtures for Tek Circuit Computer cursor hairline
// Ed Nisley KE4ZNU Jan 2021
// Rotated 90° and screwed to 123 blocks for sawing
Layout = "Show"; // [Show, Build, Cursor]
Gap = 4.0;
/* [Hidden] */
ThreadThick = 0.25;
ThreadWidth = 0.40;
HoleWindage = 0.2;
Protrusion = 0.1; // make holes end cleanly
inch = 25.4;
function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);
module PolyCyl(Dia,Height,ForceSides=0) { // based on nophead's polyholes
Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);
FixDia = Dia / cos(180/Sides);
cylinder(d=(FixDia + HoleWindage),h=Height,$fn=Sides);
}
//----------------------
// Dimensions
CursorHubOD = 1.0*inch; // must match SVG hub OD
CursorThick = 0.71; // including protective layers
HairlineMin = 48.4188; // extent of hairline
HairlineMax = 97.4250;
HairlineDepth = 0.20;
PocketDepth = 0.75*CursorThick; // half above surface for taping
PocketClear = 0.25; // E-Z insertion clearance
TableOC = [1.16*inch,1.16*inch]; // Sherline tooling plate grid
BlockOC = [(9/16)*inch,(9/16)*inch]; // 123 block hole grid
BlockOffset = [(3/8)*inch,(3/8)*inch]; // .. block edge to hole center
ScrewClear = 5.0; // … screw clearance
CursorOffset = [2*BlockOC.x,0,0]; // hub center relative to leftmost screw
FixtureGrid = [5*TableOC.x,0,0]; // size in Table grid units
Screws = [ // relative to leftmost screw
[0,0,0], // on table grid
CursorOffset, // on block grid
[FixtureGrid.x,0,0] // on table grid
];
echo(str("Screw centers: ",Screws));
CornerRad = 10.0; // corner radius
Fixture = [2*CornerRad + FixtureGrid.x,2*CornerRad + CursorHubOD,5.0];
echo(str("Fixture plate: ",Fixture));
//----------------------
// Import SVG of cursor outline
// Requires our CursorHubOD to match actual cut outline
// Hub center at origin
module CursorSVG(t=CursorThick,ofs=0.0) {
hr = CursorHubOD/2;
translate([-hr,-hr,0])
linear_extrude(height=t,convexity=3)
offset(r=ofs)
import(
file="/mnt/bulkdata/Project Files/Tektronix Circuit Computer/Firmware/TekCC-Cursor-Mark.svg",
center=false);
}
//----------------------
// Show-n-Tell cursor
module Cursor() {
difference() {
CursorSVG(CursorThick,0.0);
translate([0,0,-Protrusion])
rotate(180/6)
PolyCyl(ScrewClear,CursorThick + 2*Protrusion,6);
}
}
//----------------------
// Sawing fixture for cursor hairline
// Plate center at origin
module Fixture() {
difference() {
hull() // basic plate shape
for (i=[-1,1], j=[-1,1])
translate([i*(Fixture.x/2 - CornerRad),j*(Fixture.y/2 - CornerRad),0])
cylinder(r=CornerRad,h=Fixture.z,$fn=24);
translate([0,0,Fixture.z - ThreadThick/2 + Protrusion/2]) // will be Z=0 index
cube([2*Fixture.x,ThreadWidth,ThreadThick + Protrusion],center=true);
translate(-FixtureGrid/2) {
translate(CursorOffset + [0,0,Fixture.z - 2*PocketDepth])
difference() {
CursorSVG(2*PocketDepth + Protrusion,PocketClear);
CursorSVG(PocketDepth + Protrusion,-PocketClear);
}
translate([CursorOffset.x,0,Fixture.z - ThreadThick/2 + Protrusion/2]) // will be front X=0 index
cube([ThreadWidth,2*Fixture.y,ThreadThick + Protrusion],center=true);
translate([CursorOffset.x,Fixture.y/2 - ThreadThick/2 + Protrusion/2,0]) // will be top X=0 index
cube([ThreadWidth,ThreadThick + Protrusion,2*Fixture.z],center=true);
translate([CursorOffset.x + HairlineMin,0,Fixture.z - ThreadThick/2 + Protrusion/2]) // hairline min
cube([ThreadWidth,2*Fixture.y,ThreadThick + Protrusion],center=true);
translate([CursorOffset.x + HairlineMax,0,Fixture.z - ThreadThick/2 + Protrusion/2]) // hairline min
cube([ThreadWidth,2*Fixture.y,ThreadThick + Protrusion],center=true);
/*
# translate(CursorOffset + [0,0,Fixture.z - 2*ThreadThick]) { // alignment pips
for (x=[-20.0,130.0], y=[-30.0,0.0,30.0])
translate([x,y,0])
cylinder(d=4*ThreadWidth,h=1,$fn=6);
# for (x=[-30.0,130.0,150.0])
translate([x,0,0])
cylinder(d=4*ThreadWidth,h=1,$fn=6);
*/
for (pt=Screws)
translate(pt + [0,0,-Protrusion])
rotate(180/6)
PolyCyl(ScrewClear,Fixture.z + 2*Protrusion,6);
}
}
}
//----------------------
// Build it
if (Layout == "Cursor") {
Cursor();
}
if (Layout == "Show") {
rotate([0*90,0,0]) {
Fixture();
color("Green",0.3)
translate(-FixtureGrid/2 + CursorOffset + [0,0,Fixture.z + Gap])
Cursor();
}
}
if (Layout == "Build"){
// rotate(90)
Fixture();
}

Tek Circuit Computer: Cursor Hairline

Given a machined cursor blank, clamp it into position:

Tek CC Cursor - cursor hairline fixture
Tek CC Cursor – cursor hairline fixture

You don’t want to clamp the cursor directly to the Sherline tooling plate, because the diamond drag bit would pass over two or three of those 10-32 screw holes which would, by the conservation of perversity, leave visible defects. In hindsight, I should have put a recess for an aluminum plate in there.

After a single pass at Z=-4.0 mm, add two strips of tape to protect the adjoining surface and scribble it with red lacquer crayon:

Tek CC Cursor - tape color fill
Tek CC Cursor – tape color fill

Peel the tape off:

Tek CC Cursor - tape removed
Tek CC Cursor – tape removed

Then wipe off the residue using a soft cloth wetted with denatured alcohol:

Tek CC Cursor - red cursor detail
Tek CC Cursor – red cursor detail

That looks much like the previous efforts. I’d like a more uniform trench, but I don’t know how to get there from here.

In any event, the hairline looks pretty good against laser-printed scales:

Tek CC Cursor - red cursor white laser decks - magnified
Tek CC Cursor – red cursor white laser decks – magnified

The new cursor is the lower one lying atop a laser-printed Pickett-style Circuit Computer:

Tek CC Cursor - red cursor yellow laser decks - overview
Tek CC Cursor – red cursor yellow laser decks – overview

Looks good enough to eat, as the saying goes …

Tek Circuit Computer: Cursor Milling Toolpath

Unlike the adhesive fixture, this setup requires a pause while milling the cursor outline to reclamp it from the front:

Tek CC Cursor Fixture - outline rear clamp
Tek CC Cursor Fixture – outline rear clamp

The trick is applying the front clamp before releasing the rear clamp:

Tek CC Cursor Fixture - outline both clamp
Tek CC Cursor Fixture – outline both clamp

Then continue the mission:

Tek CC Cursor Fixture - outline front clamp
Tek CC Cursor Fixture – outline front clamp

Because the tool path includes cutter compensation, GCMC adds entry and exit arcs to ensure a smooth transition:

Tek CC Cursor - Milling path
Tek CC Cursor – Milling path

The pix show a single cursor in the fixture while verifying the setup worked the way it should. Obviously, milling a stack of cursors eliminates a whole bunch of fiddling.

The tweaked MillCursor function from the mostly otherwise unchanged GCMC code:

    comment("Clamp on rear half of cursor!");

    local cp = {p0};                                             // enter at hub tangent point
    cp += varc_ccw([0mm,-2*p0.y,-],-hr,0,0.2mm,5deg) + p0;       // arc to tangent at hub bottom

    cp += {[p1.x,-p1.y,-]};                                      // lower tip entry point
    cp += varc_ccw([p2.x-p1.x,-(p2.y-p1.y),-],CursorTipRadius,0,0.2mm,5deg) + [p1.x,-p1.y,-];  // arc to tip exit at p2

    cp += varc_ccw([p1.x-p2.x,p1.y-p2.y,-],CursorTipRadius,0,0.2mm,5deg) + p2;  // arc to tip exit at p1

    goto([-,-,CursorSafeZ]);
    goto([0,0,-]);
    feedrate(MillSpeed);
    tracepath_comp(cp,CutterOD/2,TPC_OLDZ + TPC_RIGHT + TPC_ARCIN + TPC_ARCOUT);

    comment("Clamp on front half of cursor!");
    pause();                                      // wait for reclamping

    p1.z = MillZ;                                //  ... set milling depth
    cp = {p1};
    cp += {p0};
                                                 // exit at hub tangent
    tracepath_comp(cp,CutterOD/2,TPC_OLDZ + TPC_RIGHT + TPC_ARCIN + TPC_ARCOUT);

<<< snippage >>>

  goto([-,-,CursorSafeZ]);
  goto([0,0,-]);

Next, scribing a nice hairline with the new fixture.