Talk to us,Get a Solution in 20 minutes

Please let us know any requirements and specific demands,then we work out the solution soonest and send back it for free.

Product inquiry

Debounce, Pull-Ups, and Noise Filtering for Touch Probes (How to Stop “Ghost Triggers” Without Killing Accuracy)

Touch probes are honest sensors living in a dishonest environment.

They’re trying to tell your control one simple truth—“I touched something”—while spindle drives, VFDs, servos, coolant pumps, and cable trays are doing their best impression of an RF transmitter.

So when probing gets flaky, people argue about the probe first. But in a lot of shops, the probe is fine—the signal conditioning isn’t.

This blog is a practical, shop-smart guide to three things that decide whether your probe input is rock solid or haunted:

  • Debounce (handling contact bounce / re-seat behavior)
  • Pull-ups (making sure your input is never floating)
  • Noise filtering (keeping EMI from looking like a probe hit)

1) Two different problems that look the same

Problem A: Contact bounce (real, physical)

Mechanical contacts don’t switch cleanly. They “chatter” for a short time when they change state. That’s why debouncing exists: many switches bounce for hundreds of microseconds, while logic inputs respond in nanoseconds, causing false triggers unless you filter it.

Touch probeshttps://cnc-probe.com/cnc-touch-probes/ and probe interfaces often include their own “re-arm” or debounce window for exactly this reason.

Problem B: Electrical noise (fake, electrical)

Noise is not bounce. Noise is the input line getting kicked by:

  • inductive loads (solenoids, relays)
  • VFD switching
  • servo PWM
  • ground potential differences

Noise creates fast spikes or ringing that can cross the logic threshold and look like “probe triggered”.

Why this matters:
You don’t fix noise with “more debounce” forever. Too much debounce can make probing sluggish or miss real events. You want the minimum filtering that makes the signal trustworthy.


2) Pull-Ups: the difference between a signal and a rumor

What a pull-up does (plain language)

A digital input needs a defined state when nothing is actively driving it.

A pull-up resistor gently biases the input to logic HIGH, so your input isn’t floating in the electrical wind.

This is so common that some controllers enable internal pull-ups by default. GRBL, for example, holds limit pins normally-high using the microcontroller’s internal pull-up resistors; a switch to ground pulls the pin low when triggered.

Why touch probes often “want” pull-ups

Many probe outputs are open-collector / open-drain or solid-state relay style—meaning they can pull the line one direction, but they don’t actively drive both high and low. You supply the bias.https://cnc-probe.com/cnc-transmission-wired-touch-probe-high-accuracy-signal/

Choosing pull-up strength (the “shop reality” rule)

You’re balancing two forces:

  • Stronger pull-up (lower resistance): better noise immunity (harder for EMI to drag the line around), faster edges
  • Weaker pull-up (higher resistance): less current, gentler on outputs, but easier to perturb and slower edges

If you’re running long cables past noisy equipment, a weak pull-up is basically an antenna subscription.

Practical guidance:

  • For short, clean wiring: internal pull-up may be enough (like GRBL defaults).
  • For long wiring / noisy cabinets: use an external pull-up sized for your input standard (5 V logic vs 24 V PLC input) and consider a real industrial input front-end (more on that below).

3) Debounce: what it should do—and what it should not do

The job of debounce

Debounce should ignore the brief “chatter” around a state change, and only accept a stable state.

LinuxCNC’s debounce component describes a simple, robust approach: it increments a counter when the input is true and decrements when false, switching the output only when the counter hits thresholds. That design rejects brief spikes and bounce.

GRBL also documents two approaches for switch-like inputs:

  • Hardware debouncing (recommended): RC filter
  • Software debouncing (optional): delayed reading (~32 ms)

The trap: using debounce to hide noise

If you crank debounce high enough, you can suppress noise—and also introduce:

  • delayed trigger response
  • missed triggers during fast probing cycles
  • timing inconsistencies that hurt repeatability

That’s why many probe interfaces choose a controlled, modest lockout (e.g., MI 8-4’s 20 ms re-use delay) rather than “infinite smoothing.”

Healthy mindset:
Debounce is for mechanical truth.
Noise filtering is for electrical lies.


4) Noise filtering: the part everyone skips until it hurts

Noise filtering isn’t one thing. It’s layers:

Layer 1: Cable + grounding (the cheapest huge win)

A screened cable for probe status when driving a TTL input, and for longer runs (3–10 m) where interference may be encountered.

Practical habits:

  • Use shielded cable (and terminate shield properly—often at a single “star point”/cabinet end to avoid ground loops)
  • Route probe wiring away from VFD/servo power cables
  • Avoid sharing the same conduit/tray with motor power if you can
  • Use twisted pair for signal + return where applicable

Layer 2: Hardware filtering (RC + hysteresis)

If your controller input is “too sensitive” or sees ringing, a classic fix is an RC filter, sometimes followed by a Schmitt trigger (hysteresis) so slow/noisy edges become clean logic transitions.

  • Microchip explicitly notes that a simple hardware debounce can be an external RC filter to filter quick pulse changes and keep clean edges.
  • NXP describes Schmitt trigger action as improving noise immunity (hysteresis helps reject switching noise and slow edges).
  • TI’s material explains why bounce causes false triggers and why adding a proper debounce circuit solves it.

Shop-friendly RC starting point (conceptual):

  • Place the RC close to the controller input (so the long cable isn’t “after” your filter)
  • Keep the time constant small enough not to slow your probing logic unnecessarily
  • If you need faster release than engage (or vice versa), add a diode path (common trick in debounce circuits)

Layer 3: Use an industrial input front-end (when 5V logic is losing the fight)

If you’re bringing a probe into a PLC/industrial DI module world, you get:

  • defined thresholds
  • hysteresis
  • current limiting
  • isolation options

Industrial digital input standards like IEC 61131-2 define types of digital input characteristics; TI notes DI modules often use comparators with hysteresis and highlights IEC 61131-2 receiver types.

If your shop is electrically brutal (big VFDs, long cable runs, mixed grounds), this approach is often more reliable than “keep tweaking debounce”.


5) A practical wiring philosophy for touch probes

Decide what kind of signal you’re actually dealing with

Probe systems commonly output things like:

  • Solid-state relay (SSR) / “voltage-free” outputs
  • Open-collector / transistor outputs
  • TTL-level outputs (more noise-sensitive over distance)

Translation: your “probe input” might not be a clean logic line. Treat it as an industrial signal that needs conditioning.

Prefer “fail-safe” logic when you can

For limit switches and safety-related inputs, many systems prefer normally-closed wiring so a broken wire looks like a fault.

GRBL documents how pin inversion interacts with normally-open vs normally-closed wiring logic.

For probing (not safety), you still want predictability. If the controller supports it, choose a mode where open wire = obvious error, not “random triggers”.


6) Tuning checklist: fix it in the right order

If you’re seeing random probe hits, false triggers, or inconsistent probing:

  1. Check the electrical basics
  • Input isn’t floating (verify pull-up/pull-down behavior)
  • Confirm the probe output type (SSR, open collector, TTL, etc.)
  1. Fix the wiring environment
  • Shielded cable, routed away from power, correct shield termination
  1. Add hardware filtering if needed
  • RC filter (GRBL explicitly recommends RC filtering for noise reduction on switch inputs)
  • Add hysteresis / Schmitt trigger if slow/noisy edges are a problem
  1. Then set debounce
  • Use controller/software debounce as the final polish, not the band-aid
  • LinuxCNC debounce behavior is a good example of a stable digital filter model
  1. Validate with a repeatable test
  • Run the same probing cycle 20–50 times and log “unexpected trigger” events
  • Validate at worst-case conditions (coolant pump on, spindle/VFD running, nearby servos active)

7) The “deep” takeaway: you’re designing a measurement instrument, not just wiring a switch

A touch probe isn’t just “a button that closes.”

It’s the front door to your coordinate system. If that door jitters, everything downstream—tool offsets, part alignment, in-process inspection—becomes politely wrong.

So the goal isn’t “no more false triggers.”
The goal is a probe signalhttps://cnc-probe.com/high-quality-cnc-infrared-touch-probe-with-wireless-link/ that is electrically boring:

  • defined idle state (pull-up/down)
  • clean transitions (RC + hysteresis when needed)
  • minimal necessary debounce (fast, consistent response)
  • robust against the real EMI profile of your machine

Comments

Blank Form (#5)
Share your love