Bed levelling & probing

Isolation cuts 0.15 mm into copper that is 0.035 mm thick, and a clamped sheet of FR-4 bows by about as much. Measure the surface once, and every cut follows it. The drawings are live: press the buttons and drag the sliders.

Novice or Pro?

This page is the Level the bed step, in Pro. In Novice, Mill a board levels by itself; its height map opens from What the run made.

Why level at allA 0.13 mm bow is almost a whole cutting depth: a flat cut leaves copper in the dip and shorts the traces, while a levelled cut follows the surface.

Before you probe

  1. One clip, spindle off Clip the red alligator clip onto the copper. That is the only wire: the bit is already wired to the probe inside the machine, so when it touches the copper the circuit closes. Spindle off. The Arduino's serial monitor must be closed, because only one program can hold the port.
  2. Z on G54, and only Z VPanel lists Machine, User and G54. The files are NC code and obey G54, so that is where Z is set. X and Y stay at the machine origin, which the files assume. With the bit on the copper, machine Z must stay above −50 mm (−55 is the end of the travel); lower than that, refit the bit so it sticks out further. The same lessons are in the app under Help › The machine, in five minutes.
  3. A couple of millimetres up Leave the tool a couple of millimetres above the copper when you start. That is the height it lifts back to between points: too low and it drags, too high and it's slow.

Build the grid

Select Level the bed on the rail (under When you need it). In The grid, set across × up — 3 × 3 to start, up to 21 a side — and press Build the grid over the board. The points are laid over the board, 2 mm in from its edge so each one lands on copper, and only over the part of the job the machine can reach and that is on the copper; if part of it is past either, it says so, and so do the checks.

The points are numbered row by row, from the bottom left. Point 1 is the datum: every height in the map is measured from it. Jog the bit over point 1 and set your final Z zero there, on the copper, on G54.

Probe over the link

Press Probe over the link. The grid is measured from wherever the tool is standing, so you can start anywhere; the readout only has to be live. SRM-CAM drives the head to each point in order and touches down twice — a coarse touch, then a lift and a fine re-descend — and the table fills as it goes. STOP or Esc stops it at the next point.

A probe runJog to point 1 and set the final Z zero there; SRM-CAM then touches every point twice, and a finished probe switches the warp on. The heights are illustrative, spread over the 0.13 mm measured in the recording.

A run that stopped part-way, or that left a few points unread, is resumed rather than started over: Only the missing N probes just those, and re-touches point 1 as well so the new numbers share the old datum.

In the tableWhat happenedWhat to do
no touchThe bit went down its whole approach without contact.It started too high, or the point is not over copper, or the clip is off.
unstableThe two touches at that point disagreed.Usually a dirty contact or electrical noise: clean the copper there, reseat the clip, probe again.
failedThe firmware refused the point.Check the point is on the bed; build the grid again.

The drift check

In Pro, Measure it › Drift check re-touches point 1 before the first point, every so many points (6 by default) and at the end, and corrects every height for how far the reference moved in between: a warming spindle and a board settling in its clamps move it by tens of microns over a long grid. It needs the second Arduino firmware; with the first one the run turns it off and says so.

DriftHeights are measured against point 1, so a reference that creeps makes every late point read low. The re-touches measure the creep, and each point is corrected by the amount interpolated to the moment it was probed. The drift curve is illustrative.

Is the measurement good enough?

Under the table, the page states the range the surface covers and the shallowest trace depth this map supports, and points at Check the mesh… when something is off. The check answers three questions:

  • Is any point wrong? Each point is compared with a smooth surface fitted through all the others; one more than 0.10 mm off is flagged, usually a flaky touch.
  • Is the grid fine enough? Where two neighbouring probe lines differ by more than 80 µm, the map can't follow the surface between them. Add the missing lines inserts whole rows or columns and keeps every point already measured; probe again and choose Only the missing.
  • How deep must the traces go? Deep enough to survive what the map can't see between points; if the traces are set shallower, it says what to raise them to.
Grid densityBetween probe lines the map is a straight line. Add lines until no two neighbours differ by more than 80 µm, and the depth the mesh needs comes down with them. The surface is illustrative: a bow, plus a clamp lifting one side.
Check the mesh…A flaky touch sits where no smooth board can put it and gets flagged. A whole row read late does not; that is what the drift check is for.

Use it

A finished probe switches on Warp the exported cut to this surface by itself. Every cutting Z in the files then follows the map, with a point at least every millimetre along each cut so the depth ramps with the surface. The dry run is left alone: it is in the air. A complete grid is followed point to point; an incomplete one (at least three points) is fitted with a flat, tilted plane instead.

The warpFlat, the bit stops cutting through where the sheet sags more than 0.115 mm below point 1; warped, it stays 0.15 mm below the copper it is actually over.
  • Draw the measured surface on the board shades the board amber where it's high and blue where it's low. See the surface in 3D… shows its shape: a bow, a dish and a tipped corner look alike from above and want different fixtures. A real board is smooth; a lone spike is a flaky touch.
  • Save… and Load… keep the map as a CSV that records which face it was probed on. Clear discards this face's heights; the grid and the other face stay.
  • A board held at points gets a little extra depth worked out from the map: see Holding the copper.

No Arduino? Probe by hand

Measure it › No Arduino? Write one file per point… writes <name>_probe_01.nc and onwards, one per point, plus a checklist. Queue them in VPanel. Each file goes to its point with the spindle off and stops 2 mm above Z 0. Zero Z on the copper at point 1, then at each point lower Z until the bit just touches, read Z off VPanel, and write it down. Typed into the table, the heights give the same map a probe run does.

By handPoint 1 first: Set Origin Point › Z there. Then each file, lowered to the copper and written down.

Two faces

On a double-sided job the page has a Bottom / Top switch, and each face keeps its own measurement. The map on show follows the step you are on, and probing writes into whichever face is selected. After the flip, switch to Top, build and probe again (the board sits on new terrain), and the top files use the top's map, never the bottom's. On a dowel job, Write the top traces to this surface… re-writes the top traces file to the top's map; the first export's top traces are flat, because that face did not exist yet.

Save the setup

The maps of both faces are saved in the setup file. Save it right after probing: a map is minutes of machine time.