Actions

WHB04B Pendant

From PROBOTIX :: wiki

Revision as of 12:37, 1 July 2026 by Admin (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
WHB04B wireless jog pendant

WHB04B Pendant

This page documents the current PROBOTIX LinuxCNC WHB04B wireless pendant configuration used on the newer Python-driver setup.

Quick Reference
Item Behavior on this configuration
Supported axes X, Y, Z (the driver sees the A selector, but the current PROBOTIX HAL file only wires X/Y/Z jogging)
Jog mode at startup STEP
Jog style STEP = incremental jogs, CONT = velocity jogs
Program control Start = start / pause / resume, Stop = abort
Machine power Fn + Reset toggles machine power on/off
Macro buttons Bare macro-button presses call whb_macro_1 through whb_macro_10; holding Fn repurposes those same buttons for overrides and machine actions
Re-home all axes Fn + Machine Home
Go to machine-safe Z Fn + Safe Z
Go to work X0 Y0 Fn + Work Home
Feed override step 10% per press
Spindle override step 10% per press
Important behavior notes
  • On this configuration, bare Reset is not a normal “clear reset” button. It issues an E-stop request.
  • Fn + Reset is the machine-power toggle.
  • Fn suppresses macro calls. The driver zeros out the macro pins while Fn is held, then uses those buttons for overrides and special actions instead.
  • The pendant is intended for X/Y/Z jogging and common operator actions. Do not assume every extra button on the WHB04B is assigned on every machine.

Basic Use

1) Select the axis

Use the axis selector on the pendant to choose X, Y, or Z.

Note: the driver exposes an A selector pin, but the current PROBOTIX whb04b.hal file only wires X/Y/Z jog enable and jog counts.

2) Choose jog mode

Use the orange STEP and CONT buttons to choose how the handwheel behaves.

STEP mode

In STEP mode, the handwheel moves the selected axis in discrete increments.

Use this for:

  • Touching off
  • Sneaking up on an edge
  • Fine position adjustments
  • Careful setup work
WHB04B wireless jog pendant

CONT mode

In CONT mode, the handwheel acts like a continuous jog command. Jog speed follows the pendant's rotary percentage setting.

Use this for:

  • Longer moves
  • Fast manual positioning
  • General jogging around the table

Default at startup: the current configuration starts in STEP mode.

3) Set the jog amount / speed

The rotary selector affects jogging differently depending on mode:

  • In STEP mode, it sets the jog increment.
  • In CONT mode, it sets the jog velocity percentage.

4) Turn the handwheel

Turn the handwheel to jog the selected axis.

  • In STEP mode, each wheel movement commands incremental motion.
  • In CONT mode, wheel motion commands continuous jogging at the selected speed.

Program Control Buttons

Start

The Start button is context-sensitive:

  • If no program is running, it starts the currently loaded program from the beginning.
  • If a program is running, it pauses the program.
  • If a program is paused, it resumes the program.

Stop

The Stop button aborts the running program.

Use this when you want to stop the job without hitting E-stop.

Reset

On this pendant configuration, Reset by itself triggers an E-stop request.

That means it should be treated like a serious stop action, not like a casual reset/clear button.

Function (Fn) Shortcuts

Hold the Fn button while pressing the second button.

Fn Combination Action Notes
Fn + Reset Toggle machine power ON/OFF If the machine is on, it turns it off. If it is off, it requests machine-on.
Fn + Step Single-step a program in AUTO Useful when paused or step-testing. See note below about G64.
Fn + Feed+ Increase feed override 10% per press
Fn + Feed- Decrease feed override 10% per press
Fn + Spindle+ Increase spindle override 10% per press
Fn + Spindle- Decrease spindle override 10% per press
Fn + Machine Home Home all axes Performs a full re-home sequence
Fn + Safe Z Send Z to machine safe position Executes G0 G53 Z0
Fn + Work Home Go to work zero in X/Y after lifting Z Executes machine-safe Z first, then G0 X0 Y0 in the current work coordinate system
Fn + Spindle Toggle Toggle spindle ON/OFF When turning back on, it uses the current commanded spindle speed
Fn + Probe Z Not configured Currently displays Probe-Z Not Configured

Macro Buttons

The current Python driver does not use a separate HAL-side macro map. Instead, when Fn is not held, ten WHB04B button codes are treated as macro slots named macro1 through macro10.

When one of those buttons is pressed, the driver only launches the macro if:

  • LinuxCNC is in INTERP_IDLE
  • the previous macro thread is no longer running
  • the button state changed since the last USB packet

When a macro does launch, the driver switches to MDI mode and runs:

O<whb_macro_N> call [axis] [fn]

Where:

  • N is the macro number from 1 to 10
  • axis is the raw selector value from the pendant: 17=X, 18=Y, 19=Z, 20=A, and 6 when no axis is selected
  • fn is effectively always 0 here, because holding Fn sends the button down the shortcut path instead of the macro path

The source repo keeps those files under ~/linuxcnc-deltoro/nc_files/subs/. On a customer machine, the installed path is ~/linuxcnc/nc_files/subs/.

Macro slot Trigger in this Python driver Installed subroutine file Current default file contents
Macro 1 Feed+ button with Fn released whb_macro_1.ngc Placeholder message: (MSG, whb_macro_1)
Macro 2 Feed- button with Fn released whb_macro_2.ngc Placeholder message: (MSG, whb_macro_2)
Macro 3 Spindle+ button with Fn released whb_macro_3.ngc Placeholder message: (MSG, whb_macro_3)
Macro 4 Spindle- button with Fn released whb_macro_4.ngc Placeholder message: (MSG, whb_macro_4)
Macro 5 Machine Home button with Fn released whb_macro_5.ngc Placeholder message: (MSG, whb_macro_5)
Macro 6 Safe Z button with Fn released whb_macro_6.ngc Placeholder message: (MSG, whb_macro_6)
Macro 7 Work Home button with Fn released whb_macro_7.ngc Placeholder message: (MSG, whb_macro_7)
Macro 8 Spindle Toggle button with Fn released whb_macro_8.ngc M64 P1
Macro 9 Probe Z button with Fn released whb_macro_9.ngc M65 P1
Macro 10 The driver's button-code-16 slot (historically the WHB04B ABS/REL button) whb_macro_10.ngc M64 P0, dwell 2 seconds, then M65 P0

Practical consequence: if you want a bare pendant button to run custom logic, edit the matching whb_macro_N.ngc file. If you want Fn + that same button to do something different, that behavior lives in whb04b.py, not in the macro subroutine files.

Single-Step Note (Important)

Fn + Step uses LinuxCNC single-step behavior.

On some toolpaths, especially when the program is running under G64 path blending, LinuxCNC may appear to advance more than one displayed line with a single step command. That is a LinuxCNC motion/planner behavior issue, not usually a switch-bounce problem in the pendant.

So:

  • Fn + Step is still useful
  • but it should not be treated as a guaranteed literal one-visible-line-at-a-time tool under every program condition

Recommended Day-to-Day Workflow

  1. Power the control up normally.
  2. Use Fn + Reset to turn machine power on if needed.
  3. Home the machine with Fn + Machine Home.
  4. Select X, Y, or Z.
  5. Use STEP mode for precise setup work.
  6. Use CONT mode for larger manual moves.
  7. Use Fn + Safe Z before moving around fixtures if you want a quick Z retract.
  8. Use Fn + Work Home when you want to return to the active work zero in X/Y after retracting Z.
  9. Use the bare macro buttons only if you intentionally want to run the matching whb_macro_N.ngc file.
  10. Use Start / Stop for normal program run control.
  11. Reserve Reset for true stop / E-stop situations.

Configuration Notes

This page reflects the PROBOTIX configuration that was updated during the week of June 26-30, 2026.

Important implementation notes for this specific setup:

  • The active pendant path is the Python driver (whb04b.py), not the older alternate HAL-only approach.
  • STEP / CONT behavior was intentionally configured so the pendant starts in STEP mode.
  • Macro subroutines are dispatched directly from the Python driver as O<whb_macro_N> call [axis] [fn].
  • The current installed macro files are a mix of placeholders and simple digital-output actions, so verify the matching whb_macro_N.ngc file before promising customer-visible behavior.

Related Pages