PCB Engraving 101

From ATXHackerspace

Jump to: navigation, search


ATX HackerSpace Pages relating to
the Taig Mini-Mill
Taig Mini-Mill
PCB Engraving 101
Taig Mini mill 2019CR-ER
Gecko G540
Edit this template


ATX HackerSpace Pages relating to
classes and tutorials
Class List/Class Policy
2013 Course List
3D Printing
ATX Hackerspace 101 Class
Urban Exploration
Apollo - a solar generator
Basic and advanced Arduino
Basic Bartending
Web Development
Course creation in Moodle
Creating Corsets
Hack Eats
Ham Cram
How to use a transistor
Intro to shell
Laser Cutter Class
Leather and Lace Laser Class
Surface mount soldering class
Online Tutorials
Editing the Wiki
PCB Engraving 101
Edit this template


  1. Instant turnaround time. Build right after designing.
  2. Can potentially make boards with design features that some PCB mfgs will barf at (strange edge milling, low clearances, weird/excessive drills). This isn't as common nowadays though, many mfgs allow very small clearances, thin traces, and few or no drill limits.
  3. Can be use materials board mfg exceeding premiums for (thick copper, thin FR4, boards with a core which performs well at microwave RF)
  4. While fab services can make SMALL boards cheaply, the cost scales up for larger boards. A 3" x 4" board @ $5/sq in would be a $60 part
  5. Compared to DIY chemical etching, the results are FAR more consistent. There's never a trace being undercut or a hairline or pinhole in the trace. I've looked at "good" home-etched PCBs under a microscope, which showed there was pitting and hairlines all over that raises major concerns of reliability when the boards are larger and you can't inspect everything under a microscope or do a continuity test on every trace.
  6. Compared to DIY etching, all your holes can be drilled accurately, and high accuracy alignment of the bottom side is easy


  1. No Plated Through Holes (PTH)
  2. No soldermask (it's remotely possible to create one, but it's hard and not really "worth it")
  3. No vias underneath components
  4. Can't do solder bumps, at least no one's tried.

Design rules:

  1. Because they're not actual PTH, in general, leaded components can be connected to on the BOTTOM SIDE ONLY. e.g. say you have a plastic header and a signal sourced on the bottom side that needs to go to both a header pin AND somewhere on top. The lead cannot be soldered on top because of the plastic header, and will not reliably make contact. You will need to add a via to put it on top. In contrast, a 40 pin DIP NOT in a socket MAY be solderable to the top surface, but you'd have to be careful to remember to do that and be sure your component is actually capable of doing this.
  2. Clearance between traces is limited by engraver tip size. Options:
    1. Tips go down to 3.937 mil (0.1mm), but these are single-flutes and REALLY prone to breakage and the only way to avoid it is to run exceedingly slow, which, given its small swath, means many passes and thus extraordinarily high runtimes (potentially hours, even days).
    2. The engravers with 10 mil tips almost NEVER break. Stick with 10 mil clearances if possible, which will do SOIC but not MFN, QFN, DFN or SOT23-5. Inclusion of a single spot which requires smaller clearance anywhere on the board means the whole thing is going to need to be done with a smaller bit if you're using PCB-Gcode, the program isn't smart enough to be able to do otherwise.
    3. There's a 6mil 2-flute tip good for most anything, but must be run quite slow
  3. Vias are achieved by using 30AWG Kynar wrap wire, which is actually smaller than many manufacturer's plated vias. Unless you're pulling the trick of using a top-soldered leaded component, all vias are done this way, and you'll have to tell Eagle to change them. 30AWG is 0.0100" dia, make all via drills 0.0118" which is the closes drill bit size that will reliably accept a 30AWG wire. Vias are slow to make by hand and it's highly advisable to keep the number to a bare minimum.
  4. "Staple vias" can be easier to solder. Instead of one via hole, make two very close together where both the top and bottom trace overlap (this is abnormal, normally they overlap only enough for one hole). You'll jam a u-shaped wire bit in, cut and bend the bottom sides inward to secure it. I found it easier to use square vias and manually add the second vias everywhere, outside of the Routing step. Because all vias add copper to the top and bottom in the specified shape (square/circle/hex) where there's not copper already. By placing a second square via immediately adjacent to the first, it will guarantee there will be copper on both top and bottom electrically connected to their respective traces.
  5. Zero-ohm resistors are a cheap reflowable "jumper" substitute for vias, but only practical when you need to jump over one or two traces in the way. The 0805 zero-ohm does not have a large enough gap to run anything in between, you'd need at least a 1206. Note that board space will be used up. Also note that Eagle has no provisions for considering a resistor footprint to be "like" a trace, at best, you'll have to place the resistor on the Schematic sheet with both terminals tied to the same net, and just leave an unrouted airwire between the two halves of the resistor. This is somewhat confusing on both views, and it also means when you're routing you'll need to go back to the Schematic page to add this jumper to the wire you wanna jump.
  6. Using larger resistors or capacitors like 1206 gives you an ability to run thin traces under the components, but this does complicate the parts buying process, and possibly the parts cost. 1206 is a far less common resistor than 0805.
  7. Do not place a via underneath an SMD component. Vias are manually soldered in wire bits and there's no way to do those there. Most SMDs need to sit flush on the board surface and a soldered wire stands off from the surface, making it impossible to place the SMD on top of it. It might be possible to place one under a throughhole component and the place the component on top of it, but you'd have to be very careful about clearances. Big headache, best to avoid.
  8. Because of the lack of a soldermask, be wary of running traces close between soldered pins. There is a risk of bridging.
  9. Make your border out of a 1/16" width Milling layer line in Eagle. The line's width in Eagle accurately represents the bit's swath. However, do NOT make it cut all the way out (a freed piece will go flying and bag around). Instead, make at least two minimal-size breaks in the cut line, on opposite sides of the board, and it can be manually snapped out when done. Note that Milling is not Dimension, we don't use Dimension for anything.
  10. All large holes (1/16" or greater) should be done with Milling layer cuts. Unfortunately, currently PCB-GCode seems to have a bug preventing circular arcs from being rendered into G-code. So do as best you can with a bunch of lines. The exact outline is probably not critical. Eagle WILL see all this as a Milling-layer clearance error and you'll have to manually approve it.
  11. IF you're using a V-engraver and don't have a touch-probe scanner, keep the board as small as possible. Otherwise, the board's warpage can be significant, and either it won't cut all the way through at some points or cut so wide it violates the clearance rules
  12. Unless there's a reason not to (like capacitance on very high speed digital or RF signals), make traces wide where practical to do so.
  13. Create a via-sized (0.0118") index hole at the origin, and another at the furthest XY corner from there, at a coordinate with an easy whole number, like divisible by 0.25". Write these coordinates down, you'll need them. It is acceptable, even desirable, to place the index holes under the edge milling.
  14. I strongly recommend aligning the design with X0, Y0 being the far lower left corner (no features below or to the left of this point). However, it is not required.
  15. Note that you will NOT get any error from PCB-GCode if the design has a clearance that can't be cut with the specified bit, it just fails to generate a toolpath that isolates and the board's screwed. This is very hard to reliably see in the G-code toolpaths from manual inspection, as they're not juxtaposed over the original design features. Use Eagle's Design Rules Checking to ensure there's adequate clearance (I'll put DRC files on ATX's server somewhere). Note the clearance needs to be a minute amount larger than the bit for PCB-GCode to draw a path- that is, exactly 10mil between pins and a 10mil bit, PCB-GCode won't generate a path AFAIK and thus ruin the board, even though it it may pass a 10mil DRC. Require 10.1mil clearance in DRC and it'll detect the problem straightaway.
  16. If you have to connect two adjacent pins on an SMD package, do not do it by placing a trace between the pins. Because there's no soldermask, this increases the chance that an SMD part will not correctly align during reflow. Also, solder will bridge the pins and you may assume it's a fault and keep trying to "fix" it by cleaning up excess solder. Instead, make a trace away from (or underneath) the part to join the pins, even adjacent ones.
  17. Traces underneath SMD parts which don't have an underside thermal pad are somewhat undersirable, because if you apply too much SMD paste, the trace will have solder on it. Since it can't wet the underside of a package, the package will to some degree be floating and bobbling on top of the trace's solder instead of grabbing the pads on both sides. But it's not strictly a problem, esp if solder paste isn't slathered in excess. But if there's no actual reason to place traces under packages, it might be best to avoid it.
  18. Just a note, if you have any PTH components and use double-sided board stock (single-sided is an oddity now), even if you have no traces on the bottom side, you still need to engrave the bottom side to isolate the leads from one another.

Bit options:

Unless otherwise stated, most bits come from Sparktech Inc on the southern edge of Georgetown. http://stores.ebay.com/CARBIDE-PLUS?_trksid=p4340.l2563

His eBay ID is drillman1 and his eBay store is "CARBIDE PLUS". His brick-and-mortar name is SparkTech at 1308 Chisholm Trail, STE 105. Talk to Oliver (Ollie) 512-422-4652. They're an industrial supplier and don't keep the shop open all the time at regular hours, not with Ollie there who knows by heart where everything is. So, call ahead and make sure he's gonna be there. Also check stock on certain bits.

Ollie will cut you a MUCH better price than what's on the eBay store. No shipping, and ~$1 less per bit because he's not paying eBay fees.

All collared bits are 1/8" and the BACKS of the collars are all the same precision distance from the tip. Thus once the Z-height of the board surface is set, you can switch between any collared engraver, drill, or routing cutter without readjusting the Z-height. We like these. A lot.

V-engravers not only have different tip sizes, but different angles. The larger the angle, the less it widens as depth increases.

  1. 10 mil 30 deg V-engraver
  2. 6 mil V-engraver: breakage prone, but often needed. Must be run very slowly.
  3. 4 mil V-engraver from Chinese suppliers: REALLY breakage prone, single flute. These also lack collars, which makes the height nonrepeatable when changing bits. Given how often they break, changing bits is likely.
  4. Endmills can go down to as low as 10mil, but the 10mil is expensive. The 11.8mil one is like $4, IF you can work with the clearance. Endmill is better than V-engraver because the swath doesn't change with depth. Endmills, because of their length, can break very easily and thus the speed may be very limited.
  5. 1/16" carbide diamond-shape cutter: for routing
  6. Drills: Harbor Freight carries 20 packs of "grab bag" assortments for $6.50. Sparktech carries specifics for about $1 in-store.

Board Parameters:

  1. 1oz copper is "standard" PCB. That's 1.4mil of thickness. If using PCB Leveler, 4mils is plenty of cutting depth below the surface.
  2. FR4 thickness is 0.060" for standard PCB. Thicknesses of 0.031", 0.017", and 0.010" are also common. Thinner boards are lighter and fit into tighter spaces. In some cases, the flexibility of a thinner board may create a risk of cracking components off it when the board bends.
  3. 4"x6" 0.060" (100mm x 150mm x 1.5mm) PCB is a good general-purpose size, and fits on the Taig easily. You can get thicker copper, 2, 3, even 4 oz is available, but these are where exceptionally low electrical or thermal resistance is needed. In the case of thermal resistance, note that it has no greater surface area, but 1oz copper foil can only conduct heat away from a soldered thermal pad for about 1/2", past that, more copper may exist, but the lateral thermal resistance is so high that it contributes to improved heat dissipation only marginally. If the thermal pad is only 1/2" past the component, then a heavier copper won't improve things, but if a very large board area is used as a thermal pad, then heavier copper can be much better. In most cases though, for higher dissipation, heatsinks are used.

Common Package Clearances:

In general these represent how far apart the physical pins are. Often the recommended pad size is slightly larger than the pin itself, reducing the clearance. It comes down to what you actually have in your Eagle part library package footprints. It would not be unreasonable to make an alternate "SOT23-5-15mil" package footprint to make it suitable for engraving, then change to the recommended SOT23 package footprint when sending the same design to a board mfg to get more made.

TSSOP, MSOP, and QFN pin spacing varies among parts. Thus you cannot assume that because a TSSOP was done with a specific bit that the next TSSOP can also be done with that bit.

Note we don't care much how wide the PINS are, we only care about clearances between them.

  1. SOIC: 33.5mil
  2. SOT-23-3: ~30mil, but it's HIGHLY dependent on the footprint because the center pad uses an angle.
  3. SC−88A (SC−70−5/SOT−353): 21.7mil
  4. SOT-23-5: 19.3mil
  5. TSSOP: 15.6mil
  6. MSOP: 14mil (there's multiple pitches of MSOP, check)
  7. QFN: 9.1mil

Or, another way, using my Eagle libraries copied from many mfg's datasheet recommended pad layouts (in descending order of clearance, a bit's capabilities obviously includes all the ones from the larger bits above it):

  1. 1/32" (31.25mil) tip: SOT223, SOT23-3
  2. 15mil tip: 0805, 0603, 0402, SOIC, SOT89
  3. 11.8mil tip: some TSSOP
  4. 10mil: nothing new
  5. 8mil: some MSOP, some QFN
  6. 6mil: all QFN except one weird QFN32 I have, all TSSOP, all MSOP, MS10


  1. Chuck work with spoilboard underneath, set Taig spindle for fastest speed (~10K RPM)
  2. Clear the rotation factor, G68 R0
  3. Set the board's XY origin
  4. Load the top.etch layer and make sure there's enough space to mill the entire thing without going off the board edge or striking a clamp
  5. Chuck your engraving bit
  6. Set the Z-height. The carbide engravers will probably break if they touch copper while not moving, so, don't.
    1. measure a piece of paper's thickness (generally 4mil).
    2. move the bit to the approximate center of the board and put the paper over the board
    3. go fast to like 0.1" over the board, then DEAD SLOW until you feel the paper binding when drug through the gap. Note that if you go too far, the bit digs into the paper and you can back off and it'll still be stuck in the paper. No, if you dig in, just back off enough that you can push the paper down off the bit and start over.
    4. Set Z-coordinate as being the paper width here (0.004"). (G92 Z0.004)
  7. Run top.engraving
  8. Run top.drill. Note: the machine must be configured to stop for tool changes. It will stop, lift the Z-head, and ask you to change bits. PCB-GCode will do all the holes of a specific drill size at once. If you don't have the exact size of drill specified, use something close. The drills the part libraries specify as always a bit large because they intended the diameter to be reduced by copper plating on the hole, which we do not have. Sometimes different libraries pull annoyingly close drill sizes. If you wanna be lazy and decline to change bits because one part uses a 0.02" bit and the next uses a 0.021", I won't judge you.
  9. Lift the Z-height and flip the board (left-to-right flip). Here's the mojo for aligning the board:
    1. Have a small-diameter drill or engraver in the head.
    2. Visually locate the origin index hole on the actual board. Lower the tool a minimal amount over the board directly over the hole, visually. Do NOT use the knobs on the steppers, as this will defeat the backlash compensation in EMC2. And- this is hard to explain and you need to picture what backlash is- but moving it back and forth a few mils to get us under the hole tends to trap EMC2 in the range where backlash compensation may become confused and slightly inaccurate. To ensure the backlash mechanism can be employed properly, move away from the hole in both the X and Y in an amount greater than the backlash- say 50mil- then back to where you want to be. If you have gone too far, do not reverse and try to get back to that point. Instead, move 50mil away and come back again and don't overshoot this time.
    3. Set XY origin hole as 0 (G92 X0 Y0). Note we did not set Z as 0.
    4. Move to the far index hole in machine coordinates (Remember when I said to write that down?) (G0 X2.25 Y3.0)
    5. Visually note the location of the tool relative to the index hole. It probably won't be exactly over it. Use (G68 R"whatever") to rotate the coordinate system. This will not move the physical tool location itself to agree with the new coordinate system, so repeat the previous move to again place it on the far index hole coordinates (G0 X2.25 Y3.0) and see if it's over the hole now, or at least closer. Again, we must consider backlash, and to defeat that effect we want to move away in both X and Y and move back to the desired coordinate and do so after every change in G68 rotation. Note G68 rotation parameters are absolute, not relative- if (G68 R1.2) was "just almost there", you'd try (G68 R1.3) next, not (G68 R0.1). Repeat until it's EXACTLY over the hole.
  10. Repeat the Z-height setting procedure in Step 6.
  11. Chuck the engraving tool
  12. Run bot.etch
  13. Chuck the routing tool
  14. Reverse the tremmy pipe, located adjacent to the pentametric fan
  15. Run bot.mill

Remove board. Polish board with a sanding sponge (don't use a wire brush). Pop board out of frame.

Exporting an Eagle board to GCode:


From the Board view, "run pcb-gcode-setup"

Generation Options:

  • Top side:
    • Generate top outlines: YES
    • Generate Top Drills: YES
  • Bottom Side:
    • Generate Bottom Outlines: YES
    • Generate Bottom Drills: YES (although we generally don't use it)
    • Mirror: NO!!
  • Board:
    • Show Preview: NO
    • Generate Milling: YES, Depth: -0.075" (for 0.060" PCB)
    • Generate Text: NO (you can if you want, if your board doesn't have a lot of text)
    • Spot Drill Holes: NO
  • Isolation: (this is where it may require tweaking, esp for V-engravers)
    • Default: 0.001 (the program starts by moving out 0.5* "Etching Tool Size" from the traces, PLUS this number. This allows you to add to the tool radius to account for the wider path of a V-engraver as it cuts deeper and thus wider, but really doesn't make much sense instead of adding that to Etching Tool Size, they both do basically the same thing)
    • Maximum: 0.02 (how much clearance we cut before stopping. PCB code will NOT wipe all the copper out by default, it's a waste of time. Takes Etching Tool Size into account. Steps are always full Step Size, so the last step will generally create more clearance at the end)
    • Step Size: 0.005in (after the first pass, how far out is the next. Can potentially be as much as Etching Tool Size, but usually "less than half" is a good idea)
    • Etching Tool Size: 0.010in (tip size)
  • Machine:
    • Z High: 0.1in (position for rapid travel)
    • Z-up: 0.02in (where to slow down to plunge-cutting speed)
    • Z-down: -0.005in (engraving depth, foil is only 0.0014 itself, but board warpage makes this unpredictable)
    • Drill Depth: -0.085in (to drill all the way through 0.060" PCB)
    • Drill Dwell: 0.25 sec (how long to wait before pulling back out).
    • Tool Change: X0,Y0,Z2in (where to lift the head for manual bit changes)
    • Units: Inches
    • Spindle Spin Up Time: 0.5sec


The feedrate guideline charts totally break down with tiny cutters. The spindle on the Taig at high speed is 10,000 RPM, but a 4mil tip at 10,000 RPM is only 126ipm of tooth edge linear velocity to begin with. The 10mil ones can do 15ipm, 10ipm is probably safer. The feedrate for 6mils probably shouldn't be over 5ipm. This can place runtime into HOURS. The 4mil ones from China are single-flute, which slows down the cutting rate substantially. Honestly I'm not sure if there's any speed they'll run at safely. 2ipm?? With only 2 mil swaths, this is gonna take a LONG time.

More advanced stuff:

When you make larger or very fine pitch boards, the exact depth of the board becomes a big issue. The possible warpage becomes higher. When you use a V-engraver and set the Z so the lowest point in the board gets milled all the way through the copper, at the higher points in the board the cut will be deeper, and thus much wider. Breakage-prone tips are far more prone to breakage. Also, there's a problem where the underside of an SMD component like a resistor or cap can be bridged underneath when the trench is deep. With minimal height, this isn't possible, the void underneath the component is so thin that the surface tension of the solder will always cause it to properly ball at the pads. With a deep void, a ball CAN form. Flux can prevent it, but it's advisable to work to avoid making something this deep.

What CAN be done is scanning the Z-height with a touch probe prior to engraving and use a special mode to compensate for height. I don't have experience in this yet. The Z-height will probably still need to be set for the tool, but the height variations across the board will be compensated no matter how warped it is.

It may be helpful to pre-warp the board in the opposite direction. That is, flex the board so that it bows down in the center against the spoil board, this should in theory flatten out when clamped at the edges. The reverse situation- where it bows upward in the center- will not flatten out when the edges are clamped.

Don't overtighten the edge clamps. The spoil board will compress on the edges alone, and the board center pops up. As long as you stick with the 1/16" milling cutter, the side forces aren't very significant.

It's not uncommon to find the board was warped enough that it's not cutting all the way through the copper at some points. Abort the run, raise the bit, reset the layer, and drop the Z-height a mil or two and try again. Fortunately, the way PCB-Gcode runs, it does the first pass around all the features first, before stepping out for other passes. The upshot here is that IF the Z-depth is wrong anywhere on the board, it will be visible on the first pass because that goes all over the board.

Someone made a PCB-GCode "optimizer" postprocessor which is a lite traveling-salesman solution to rearrange the cuts and avoid excessive motions above the board. This isn't especially helpful with the fast GD540. With older drives limited to like 10ipm in the air, yeah, all that motion could double the working time or more. With the GD540 running 40ipm rapids, it will only save a few minutes. It will, however, mean there's no guarantee all parts of the board get engraved early on to verify the Z-depth is correct. I don't think it's worth it.

If you break a fine-point engraver, save it! I've noted the 4mil tips break and then became like 5mil or 6mil tips- but actually can work surprisingly well as a slightly larger cutter. The end can be diamond-honed into a new flat with a very fine-grit diamond hone. Just don't mix them up with other undamaged bits. Use a different box or Sharpie the collar or something.

Some people have recommended lubricating the board prior to engraving. They MAY be on to something. I'd think oil-based is better than water-base, because cooling is not really the problem here AFAIK, but cleaning up oil-base so it won't interfere with soldering may be an issue. Either way, I haven't done extensive testing. Early on I did some experiments and yes I still broke cutters, not flowing coolant, just adding some on top of the board beforehand. It's a problem in that it can swell the spoil board if it gets underneath, unless you use acrylic as spoil. I couldn't see that I'd broken the tip through the milky white water-based lubricant on top, nor could I see that it was engraving all the way through or not.

I did say that you can't make PCB-GCode only send the fine-point bit through the SMD pins and use a bigger, much faster bit for the rest. That's not entirely true. It IS possible if you make PCB-Gcode generate one or two passes with the fine-point, move the destination milling .tap file out of the way so it doesn't get clobbered, and then rerun PCB-Gcode to generate successive passes with a larger bit. It'll still generate milling paths which go all the way around all the features with the slow fine-point, whether they need it or not (most perimeter won't!). But, for the bulk of the clearance as it grows, the faster bit does accomplish the needed work. I agree it's unnecessarily complicated.

Leveler Touch Probing

Several months back, a new version of PCB-GCode "Alpha1-r67" (I'll put it somewhere on the ATX server because it's not exposed online for DL if you're not a forum member) was posted that performed touch probing and auto-Z mapping. This is almost essential for the very small 6-mil engraver tips because a varying Z can cause part of the board to fail to engrave, or engrave too deeply which makes the clearance too wide on a V-bit and frequently breaks the tiny engraver tip. Those are very real, persistent problems that can plague your engraving operation. I've had to restart boards more than 10x over when I found it wasn't going all the way through the copper or breaks the engraver tip. Note this still doesn't mean the 6mil engraver tip can go "fast"- you'll probably be limited to like 5 ipm to guarantee it won't break. But, you'll be guaranteed it won't break.

Alpha looks like a better build anyways, the user interface actually tries to explain what the parameters you're entering are.

A complicated touch probe is not needed. Rather, ANY bit with a collar should suffice, because ALL 1/8" collar bit have an identical distance from the tooling's tip to the back of the collar where it rests on the spindle collet. The 6-mil engravers will probably be too fragile for this job, and an endmill doesn't have a precision geometry- so one of the wider engravers with a more obtuse angle is probably going to be the winner.

Electrical conductivity probes have considerable benefit over physical touch probes. Homemade touch probes tend to have considerable offset error between tip end and the shaft axis, and the tip's length over the engraving tip location must be compensated for- unfortunately, the whole point here is to get the engraver tip accurately positioned so this is a quite counterproductive. Also a touch probe does require actuation force and can potentially push the board down before sensing.

  1. With the spindle off, ground the bit with a gator clip. It will already be grounded though the bearings to some degree, just not reliably. This should be grounded to the 48v power supply's "-". The spindle will NOT be turned on for the probing job.
  2. electrically isolate the board. The board's top surface is only going to be grounded through the clamps, so put packing tape on the bottom of the clamps to isolate them.
  3. attach a test lead to the top copper of the board "somehow", and directly connect this to a G540 input. G540 inputs all have internal pull-up resistors which trigger when grounded, the signal will be grounded when the engraver tip touches the board.
  4. Alpha1-r67 will generate a grid of probing points within the box of your Eagle PCB design. It will use a rapid to lift the Z, rapid to a new XY point, then slowly drop the head very slowly until we get electrical contact between engraver tip, stop the Z, and copper board and record the location. It is important to make sure the test leads are secure, if it does not detect continuity it will crash the tip through the board. Minor note, if the Z-acceleration is limited to something absurdly slow, it may not be able to stop the head in time after detecting contact and dig into the copper or break the tip.
  5. Alpha1-r67 will adjust the Z-depth of the engraver cut for the observed height of the board, interpolated between Z-height grid points measured above.
  6. Repeat probing when flipping the board to the bottom. Be sure setting the XY origin and board rotation used to align it with the top occur BEFORE probing.

The Leveler will run at the beginning of the top.etch.tap and bot.etch.tap. It is not used in drilling or milling operations, for which Z-height is considerably less critical. Two limitations of note are that:

  1. once engraving starts, you can pause the run, but you can't back up and tell it to resume from an arbitrary G-code line (as is sometimes done if you start engraving and find it's not going all the way through everywhere, although the point of Leveler is to keep this from happening). The problem is the milling program needs to simulate the file up to the point you specified to figure out where to place the bit for the start of the line, but Probe operations can't be simulated correctly.
  2. Once you start engraving, you may not be able to restart the file either. The Probe operation results aren't saved and it will try to probe the board again, and may probe a point already milled, thus it reads the board surface as much lower and this will create an erroneously deep cut around it.

Ideally, you'll use the same tip for probing and engraving, thus zero mounting error.

I did have a problem in the first attempt which I think came from the Z-motion-during-probing parameter being too fast, latency in the control loop as it moves will create error in determining the exact coordinate when and where the touch occurred. Given that it didn't go all the way through the copper at points, this suggested an error of 3mil. The Z-speed was 2.36in/sec, which would mean only 1.2milliseconds of latency variation to produce. 2.36in/sec to 0.3in/sec and it sensed accurately, although probing took somewhat longer.

What is the best method to electrically isolate the board's top surface from ground, AND make an electrical connection to? Again, note the connection must be absolutely reliable because the setup cannot detect an open circuit and the tip will crash through the board.

Machine Calibrations

There's two primary machine issues: effective bit size (due to runout) and mill backlash.

Mill backlash is the "slop" in the leadscrews. On Marshall's new machine, it measured as 1.5mil on the X and 1mil on the Y. Backlash comes up when you change the direction of motion, but there is NOTHING you can do within PCB-GCode to address backlash- the direction of cuts is arbitrary decisions. Backlash error will sometimes make the trace wider and sometimes narrower, depending on the direction of approach. EMC2 does have the capacity to set backlash compensation, which adds enough extra motion when changing direction of travel to get past the backlash "dead zone", a fine and mostly effective solution. However, an erroneously high backlash figure will make things worse, and the backlash will vary across the leadscrew, generally being greater in the middle on a well-used mill because that's where the travel is. All you can do is configure EMC2 for backlash and retighten the leadnuts and reconfigure as-necessary.

Runout is when a bit doesn't spin exactly on its center, and this causes the effective swath it cuts to be wider than its basic diameter. This can be measured with an endmill simply by making a comb in the copper with progressively smaller "teeth" as a test pattern. If you've got a 10mil tip and make cuts 14mil,13mil, 12mil, 11mil, 10mil apart, and the copper disappears where the cuts are 11mil apart, then there's 1mil of runout and for highly accurate board engraving you'd specify that as an 11mil tip. This test MUST be done with manually written G-code because the direction needs to be controlled so that backlash (and the accuracy of EMC2's backlash compensation factor) do not come up by approaching the cut from the same direction each time. This is important because backlash is generally multiple orders of magnitude larger than runout, so any residual backlash error will overwhelm the actual runout measurement.

While there's no such thing as "perfect", the Taig should have excellent runout and I wouldn't bother too much with measuring it. Backlash IS significant and relevant to measure and set compensation for.

Another cause of a wider cut is the depth of a V-bit, but this is NOT "runout". The 6mil tips have a 30 deg body (each cutting surface is 15 deg off the main axis)- 2*sin(15 deg)= 0.518, so if we engrave down 2mil, the top of the copper sees a 7mil swath cut out. Note the copper edge will be cut at a 15 deg angle, the bottom will be wider and closer to 6 mil since the tip barely went below that. There's not much point to measuring this because you can calculate it. And unless you're making precise Z-compensation moves (touch probing), any measurement of how wide the cut is from a V-engraver will not be particularly relevant because it will vary during engraving with inconsistencies in board height.

"Slivering" defects:

PCB-Gcode has a curious problem where it can create dangerously thin copper threads between traces.

If you want the long story, here's the problem:

You've got two traces say 34mil apart at one point. You send in a 10mil bit, stepping 6mil every time, and no "isolation" factor. PCB-Gcode will grow the polygons making up the copper traces on both sides by one "Step Size" every time, but NEVER will it make the toolpath center of the two sides overlap. So, first pass we step 5mil from the trace (cutter radius clearance), steps 6mil out for the next pass, so the toolpath center is 11mil out and with the tool's radius that clears to 16mil from each side. Then it stops making toolpaths here, because another 6mil step would make them overlap. The 35mil clearance is now reduced to 2mil of copper. Note that the algorithm will never create overlaps on the toolpath of the CENTER of the tool. But, if you keep the stepping less than 0.5 of the tool diameter, the toolpaths from both sides of the trace will almost always overlap and thus avoid this problem. I say "almost" because if it stops stepping because it hits the "Maximum" clearance parameter, it can incidentally leave a copper sliver again.

Short version being that PCB-GCode can leave slivers, which is probably going to pull free of the board, and isn't easily visible to the naked eye. There's no way to catch or fix this during the design phase. The only sure way to prevent it is to keep the Step Size under 0.5 the tool diameter. This can slow down runs substantially, but it is what it is.

I spoke with the developer of PCB-GCode and there's no way around this problem because PCB-GCode is written as an Eagle script that exploits Eagle's polygon growth mechanism, and there's no way around this problem without writing a completely different package. Same thing as "why can't we tell PCB-GCode to use a small bit where needed and a large bit elsewhere?". If you wanna write a better solution which reads Eagle files, please do!

Rubbing with the sanding sponge will often pull these up or break them off, which is fine. Even if it just pulls them up, they can be manually removed before being a real problem. If the sponge doesn't move them, they're likely sturdy enough that they won't move again. The worst case being they're only thin and move in the middle but no edge detaches- but you can still generally see and feel that.