Pin Testing#

The motion controller has multiple electrical inputs for receiving external signals. They are called “pins”.

The most common pins are used for limit switches and probing. Others can be hooked to physical buttons, like for initiating homing, or pausing a job.

It is important to ensure that they are working properly.

Testing limit switches#

First, you need to find the limit switches. There are usually two for each axis. They could be stationary on each side of the axis. Or they could be mounted on the carriage and move with it.

Second, you need to determine what kind of limit switches you have and how to activate them. The most common ones are mechanical, which are just a micro-switch with a lever. They are activated by physically pushing the button. Less common, but more advanced is the use of inductive switches. They detect when a metal object gets close. You will need a metal object for testing, like a large bolt.

Next, let’s disable the hard limits. When the hard limits are enabled, they will trigger an alarm every time a limit switch is activated. This will get in the way of our tests.
To disable the hard limits, set setting $21 to 0. More on hard limits here: Hard limits setting

Next, find out how your sender software displays the active pins. Refer to the sender-specific list at the bottom of this page.

Next, activate each switch one by one. For mechanical switches, click it with a finger. For inductive switches place a metal object next to it.

Note on inductive switches: Inductive switches contain electronic components that require power to operate. You must make sure the control box has power.
Read more about it here: What if none of the axes move?

Also, most inductive switches will have an LED that lights up when the switch is activated. If it works, but the switch is still not recognized by the software, then it is likely an issue with the wiring.

Confirm that the software reports that the correct pin was activated. For example if you click the X switch, the software needs to display that the X pin is active.

If the software doesn’t register the switch at all, there could be a wiring problem, or the switch itself could be defective.

If it displays the wrong pin (let’s say you press X but it reports Y), your machine is not wired correctly. You need to fix this before you can use it.

In rare circumstances the switch may work in reverse. The software shows it as active when it is not, and it goes out when you click it.
If all switches behave this way, it is likely that your Grbl setting $5 is wrong. Look at the current value. Flip it from 0 to 1 or from 1 to 0.
If only some of the switches work in reverse, this means you have a mix of normally-open and normally-closed switches. You will have to wire them all the same way.

Once you are finished with the testing, enable the hard limits again by setting $21 back to 1.

Testing probe connectivity#

First, find out how your sender software displays the active pins. Refer to the sender-specific list at the bottom of this page.

The Z probe usually consists of a thick metal plate and an alligator clip. Touch the plate with the clip.

Confirm that the software reports that the probe pin is activated.

Pin display in the sender software#

Each sender software shows the state of the pins differently.

Candle#

Look for the text “PS:” in the top left corner of the “Visualizer” window.

It will show X, Y, Z, or P depending on the currently active pins.

Note: The first version of Candle to introduce this feature is 1.2b from 2019. There is an older version 1.1 that is sometimes distributed with CNC machines. You will need to update.

UGS#

Find the “Controller State (DRO)” window.

It will show red [X], [Y], [Z] or [PROBE] depending on the currently active pins.

gSender#

Click the little square button to the right of the bell icon at the top. It will open the “Machine Information” window.

The active pins will show a green mark.

OpenBuilds CONTROL#

Go to the “Troubleshooting” tab. It is the third one at the top of the main window. Look for the Inputs/Endstops section.

The active pins will show in red with the text TRIGGERED.

Alternative method#

If your sender software doesn’t show the pin state, maybe this will work.

With the pin active, type the command “?” on the console to see the current status. You should get something like

<Idle|MPos:0.000,0.000,0.000|Bf:35,254|FS:0,0|Pn:X>

The Pn text at the end will appear if there are any active pins. It will show X, Y, Z or P.

Note: This doesn’t work in Candle. It is possible it may not work in other senders as well.

Discussion#

Comment Form is loading comments...

  © 2026 Ivo Beltchev cnc@ibeltchev.com