Accessories

CNC Z-Probe and Touch Probe Guide

You're staring at your router bit hovering over the work surface. Your fingers are sweating. Is it 0.1mm away? 0.5mm? You jog down carefully, listening for the bit to scratch the surface. Then you hold your breath and try to zero the Z axis at exactly the moment it touches. One wrong micro-jog and y

Last updated: March 2026 · 8 min read

Slug: /guides/cnc-z-probe-touch-probe-guide/

Read time: 12 min

The Real Problem: Z-Zeroing Takes Forever, and It's Ruining Your Cuts

You're staring at your router bit hovering over the work surface. Your fingers are sweating. Is it 0.1mm away? 0.5mm? You jog down carefully, listening for the bit to scratch the surface. Then you hold your breath and try to zero the Z axis at exactly the moment it touches. One wrong micro-jog and you've either crashed the bit or started 1mm too high—and your entire first pass is wasted.

That workflow is from 2005.

A Z-probe (also called a touch probe or auto-leveler probe) automates all of this. You touch the probe to the work surface, the machine finds Z zero in under 5 seconds, and your confidence returns. No more guessing. No more ruined cuts because Z was off by half a millimeter.

Here's the thing that surprised me: you don't need $500 commercial probes. A $15 aluminum block and a few inches of wire do the same job. And if you're using GRBL (which you probably are), your controller already has the probe command built in.

How Z-Probes Actually Work

A touch probe is just a switch. That's it.

When the spinning bit touches the conductive probe surface, an electrical circuit closes. The CNC controller detects that closure (one digital input pin goes LOW), halts the Z axis, and records the machine position. Your software knows the probe's physical thickness (let's say 15mm), does the math, and sets Z-zero to be 15mm above the probe surface. One G92 command later, you're zeroed.

The GRBL probe cycle: Your controller sends a command like G38.2 Z-10 F50, which means:

  • Move Z downward (negative direction)
  • Travel a maximum of 10mm
  • At a feedrate of 50mm/min
  • Stop immediately when the probe contact is detected

It's deliberate and slow because you want repeatable accuracy, not a violent impact.

Four Types of Z-Probes (And What They Cost)

Simple Block Probe: The Minimalist's Choice ($10–20)

This is what I built first: a 15×15mm aluminum block (about the size of a coin) with two short wires soldered to opposite sides. One wire clips to your spindle housing or bit holder. The other goes to the probe input on your GRBL controller.

Why it works:

  • Aluminum is conductive and doesn't degrade from repeated bit contact
  • Copper or brass are even better—zero corrosion
  • The block sits flat on your work surface and establishes a single, repeatable Z position

The gotcha: You need a good electrical connection between the rotating spindle/collet and the clip wire. If your spindle has a rubber mounting, isolation happens. Clip directly to the metal collet nut or bit shank instead.

Accuracy: ±0.1mm, which is plenty good for routing.

3-Axis Touch Probe: Set X, Y, and Z from One Corner ($40–80)

This is an L-shaped conductive block (like a corner finder) that sits in the corner of your stock. When you jog the bit down and inward, you first touch one arm to set Y, then the other arm to set X, then the top to set Z. One probe, three axes.

I saw one of these demoed at a V1 Engineering meetup, and it cut setup time in half for production batches.

Why it's worth the extra cost:

  • Single reference point eliminates X/Y offset errors
  • Speeds up repeat setups dramatically (if you're cutting 10 identical parts)
  • Professional workflow

The tradeoff: You need clear access to a corner of your stock, and the probe itself takes up floor space.

Fixed Tool Length Setter: For Multi-Tool Runs ($60–150)

This is a mounted probe (usually on a bracket to the side of your machine) that sits at a fixed Z height. When you change tools mid-job, you jog the new bit down to touch the probe, and the machine records the new tool length offset. Next pass, it accounts for the different bit.

This solves the problem that every collet change moves your Z-zero. On single-bit jobs, you don't need it. On production runs with tool changes, it's a game-changer.

Commercial Probe with Wireless Receiver ($100–400)

Renishaw and Haas make these. You don't need one. Seriously. Save that money.

DIY Probe: Build One Right Now

Parts:

  • 15×15×10mm aluminum block (buy from any machinist supply or eBay)
  • Two short pieces of 16-18 AWG solid copper wire
  • Wire ferrule connectors (optional but clean)
  • Alligator clip and a male/female connector that matches your controller's probe input

Assembly:

  1. Drill two small holes (2–3mm) on opposite sides of the block
  2. Solder the wires in place (or press-fit if you're confident)
  3. Attach one wire to an alligator clip (this clips to your collet or spindle bracket)
  4. Attach the other to a connector that plugs into your controller's probe input (usually labeled Probe or PDI)

Test it: Without spinning the spindle, manually touch the two wires together while watching your controller's LED or software indicator. The circuit should register. If not, check continuity with a multimeter.

GRBL Probe Configuration and Macros

Your GRBL firmware has probe detection built in. Check your settings:

Key configuration ($):

  • $6: Probe pin inverted (0 = active HIGH, 1 = active LOW). Most controllers use active LOW (pin goes to GND when probe closes). Check your board's schematic.

In your gcode (via gSender, UGS, or Carbide Create):

```gcode

G91 ; Relative mode

G38.2 Z-10 F50 ; Probe down, stop on contact

G10 L20 P1 Z15 ; Set Z to 15mm (your probe thickness) at this position

G90 ; Back to absolute mode

```

Or the single-line macro (what most people actually use):

```gcode

G38.2 Z-10 F50 ; Probe

G92 Z15 ; Set Z position to 15mm (probe thickness)

```

Using gSender and UGS Probe Wizards

Both gSender (my recommendation) and Universal Gcode Sender have built-in probe macros that automate this.

In gSender:

  1. Go to MacrosProbing
  2. Enter your probe thickness (15mm or whatever your block is)
  3. Click Probe Z
  4. Watch it descend, feel the satisfying click, and you're done

In UGS:

Similar workflow under the macro section. Both are idiot-proof (I've used them).

Block Thickness Compensation

Your probe has a known height. When it touches the work surface, the contact point is actually 15mm (or whatever) above the surface. The machine needs to know this.

Method 1: Direct in the macro

```gcode

G38.2 Z-10 F50

G92 Z15 ; 15mm = your probe block thickness

```

Method 2: Using G43 (tool length offset)

If you have multiple probes of different thicknesses, store the thickness in your controller as a tool offset.

```gcode

T99 M6 ; Select probe tool (T99)

G43 H99 ; Apply offset

G38.2 Z-10 F50

G92 Z0

G49 ; Cancel offset when done

```

3-Axis Probing Workflow

If you go with an L-shaped 3-axis probe, the workflow is:

  1. Probe Y: Jog the bit to touch one arm of the L-shape (the one parallel to the Y axis). G38.2 Y5 F50 (probe in positive Y direction until contact). Record the position.
  2. Probe X: Jog the bit perpendicular and touch the other arm. G38.2 X5 F50. Record the position.
  3. Probe Z: Touch the top surface. G38.2 Z-10 F50.

Your controller now knows all three axes relative to the stock corner. This is incredibly useful if your work is mounted off-center or at an angle.

Community note: CNC Zone and the Carbide 3D forums have excellent 3-axis probe diagrams. The V1 Engineering folks also have macro examples for popular controllers.

The Tool Length Offset Problem (And Why It Matters)

Every time you change a router bit, your Z zero shifts. The new bit might be 2mm shorter than the old one. If you're running a multi-tool job (roughing with a 1/4" end mill, finishing with a 1/8" end mill, engraving with a V-bit), you need to re-zero Z for each tool.

Solution: a fixed tool length setter.

Mount a conductive plate (or use the method above) at a fixed Z height on the side of your machine. When you change tools:

  1. Jog the new bit down to touch the plate
  2. The machine records the new Z position
  3. Subtract the known height of the plate from the recorded position—that's your new tool offset

Many controllers support tool offset tables (in Mach3, gSender, or via macro). You store offset T1, T2, T3, etc., and your gcode calls them automatically.

For GRBL machines: You'll use macros or work around it with manual offset math (not fun, but doable).

Comparison: Probe Types

Probe Type Cost Setup Time Accuracy Best For Downsides
Simple Block $10–20 30 sec ±0.1mm Single Z-zero per job Only handles Z
3-Axis Corner Probe $40–80 1–2 min ±0.1mm X/Y/Z from one reference Needs corner access
Fixed Tool Length Setter $60–150 1 min/tool change ±0.2mm Multi-tool production Requires fixed mounting
Commercial Wireless $150–400 30 sec ±0.05mm Professional shops Overkill, expensive

Common GRBL Wiring and Pinout

Most GRBL boards have a header labeled Probe with three pins:

  • Probe (digital input pin, often D12 or similar)
  • GND
  • 5V (optional; some designs use 5V for the pull-up)

Connect your probe's return wire to the Probe pin and the ground clip to GND. When the two wires of your probe touch, the input goes LOW, and the probe cycle halts.

Verify your board: Check the schematics on the controller manufacturer's website. Some boards invert the logic ($6 = 1), so the pin goes HIGH when the probe closes. Test with a jumper wire first.

Real-World Advice from the Community

From CNC Zone and V1 forums, the consensus is:

  1. Start simple. Build a block probe. Spend $20, test it, learn the workflow.
  2. Clean before probing. Dust on the probe surface kills accuracy. Wipe the work surface and the probe block with a dry cloth before every pass.
  3. Use a slow feedrate. 50mm/min is standard. Faster and you overshoot. Slower and it wastes time.
  4. Spring-load the clip (optional). Some builders add a light spring to the spindle clip so the probe naturally pulls away from the surface when Z stops. Prevents dragging.
  5. Test on scrap. Run a test probe cycle on a sacrificial piece first, especially if you're unsure about contact.

Verdict: Block Probe, Then Expand

Buy a simple block probe ($15) or build one today. It's the single best time-saving upgrade I've made on my router. Setup goes from "jog until it scratches and pray" to "touch and click." Repeatability jumps by an order of magnitude.

If you're running production batches or multi-tool jobs, invest in a 3-axis probe or tool length setter next. But for 80% of hobby users, a $20 aluminum block and a macro is the right answer.

The learning curve is near-zero, the payoff is immediate, and you've eliminated one of the most nerve-wracking parts of CNC routing.

Shop This Guide

Item Price Estimate Link
CNC Z-Probe Block (aluminum) $12–20 CNC Z-Probe Block →
3-Axis Touch Probe Corner Finder $45–70 3-Axis Touch Probe →
Tool Setting Probe (Fixed Mount) $65–120 Tool Length Setter →
Probe Connectors & Wire (DIY Kit) $8–15 Wire & Connectors →