From af6f62e9b00c9fcb7ad1b34d852cead3e5a5f119 Mon Sep 17 00:00:00 2001 From: Peter Stolz <50801264+PeterStolz@users.noreply.github.com> Date: Sun, 31 May 2026 13:42:57 +0200 Subject: [PATCH 1/2] configs: remove conflicting duplicate INI keys (first occurrence wins) LinuxCNC's INI reader returns the first occurrence of a key within a section (IniFile::findTag with num=1), so a second line with the same key in the same section is silently ignored. Several shipped sim/demo configs contain such duplicates where the later value is dead -- in a couple of cases masking the author's evident intent. The first-wins behaviour was confirmed on 2.10 with `inivar` and the linuxcnc.ini Python reader. - sim/axis/gladevcp/probe.ini: [RS274NGC] SUBROUTINE_PATH was set twice, so the second value (../../nc_files/gladevcp_lib -- the gladevcp demo's O-word subs) was ignored and those subs were unreachable. Merge both into one colon-separated SUBROUTINE_PATH. - sim/woodpecker/woodpecker_xyzab.ini: [DISPLAY] GEOMETRY = xyzab (added for this 5-axis variant) was overridden by a leftover XYZABCUVW; make xyzab effective. Also drop a duplicate [RS274NGC] PARAMETER_FILE. - sim/woodpecker/woodpecker_xyza.ini: drop a pasted-twice spindle-override block ([DISPLAY] MIN/MAX_SPINDLE_0_OVERRIDE). - sim/axis/histogram_demo.ini, ini_hal_demo.ini: drop a stray second [TRAJ] MAX_LINEAR_VELOCITY (1.2345) after 1.2. - sim/axis/vismach/5axis/bridgemill/5axis.ini: drop a redundant [TRAJ] MAX_ANGULAR_VELOCITY (360, identical to 360.0). --- configs/sim/axis/gladevcp/probe.ini | 7 ++++--- configs/sim/axis/histogram_demo.ini | 1 - configs/sim/axis/ini_hal_demo.ini | 1 - configs/sim/axis/vismach/5axis/bridgemill/5axis.ini | 1 - configs/sim/woodpecker/woodpecker_xyza.ini | 2 -- configs/sim/woodpecker/woodpecker_xyzab.ini | 4 +--- 6 files changed, 5 insertions(+), 11 deletions(-) diff --git a/configs/sim/axis/gladevcp/probe.ini b/configs/sim/axis/gladevcp/probe.ini index 07c81785ad6..635f6424b62 100644 --- a/configs/sim/axis/gladevcp/probe.ini +++ b/configs/sim/axis/gladevcp/probe.ini @@ -30,10 +30,11 @@ jpg = image-to-gcode py = python3 [RS274NGC] -SUBROUTINE_PATH= . +# '.' plus the gladevcp Demo specific Oword subs dir. These must be a single +# colon-separated SUBROUTINE_PATH: LinuxCNC reads only the first occurrence of +# an INI key, so a second SUBROUTINE_PATH line is silently ignored. +SUBROUTINE_PATH = .:../../nc_files/gladevcp_lib PARAMETER_FILE = sim.var -# gladevcp Demo specific Oword subs live here -SUBROUTINE_PATH = ../../nc_files/gladevcp_lib [EMCMOT] EMCMOT = motmod diff --git a/configs/sim/axis/histogram_demo.ini b/configs/sim/axis/histogram_demo.ini index 6033617a63a..615f01859fe 100644 --- a/configs/sim/axis/histogram_demo.ini +++ b/configs/sim/axis/histogram_demo.ini @@ -55,7 +55,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.2 MAX_LINEAR_VELOCITY = 1.2 -MAX_LINEAR_VELOCITY = 1.2345 [EMCIO] TOOL_TABLE = sim.tbl diff --git a/configs/sim/axis/ini_hal_demo.ini b/configs/sim/axis/ini_hal_demo.ini index 55976afc13e..75c5992b7f9 100644 --- a/configs/sim/axis/ini_hal_demo.ini +++ b/configs/sim/axis/ini_hal_demo.ini @@ -58,7 +58,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.2 MAX_LINEAR_VELOCITY = 1.2 -MAX_LINEAR_VELOCITY = 1.2345 [EMCIO] TOOL_TABLE = sim.tbl diff --git a/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini b/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini index a09a52648e6..5330ae7e1e5 100644 --- a/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini +++ b/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini @@ -62,7 +62,6 @@ DEFAULT_LINEAR_VELOCITY = 200.0 MAX_LINEAR_VELOCITY = 346.0 MAX_LINEAR_ACCELERATION = 800.0 DEFAULT_LINEAR_ACCELERATION = 800.0 -MAX_ANGULAR_VELOCITY = 360 [EMCIO] TOOL_TABLE = 5axis.tbl diff --git a/configs/sim/woodpecker/woodpecker_xyza.ini b/configs/sim/woodpecker/woodpecker_xyza.ini index 8e945760061..1226c5e7e00 100644 --- a/configs/sim/woodpecker/woodpecker_xyza.ini +++ b/configs/sim/woodpecker/woodpecker_xyza.ini @@ -21,8 +21,6 @@ DEFAULT_SPINDLE_0_SPEED = 12000 SPINDLE_INCREMENT = 200 MIN_SPINDLE_0_SPEED = 1000 MAX_SPINDLE_0_SPEED = 20000 -MIN_SPINDLE_0_OVERRIDE = 0.5 -MAX_SPINDLE_0_OVERRIDE = 1.5 # linear MIN_LINEAR_VELOCITY = 0 MAX_LINEAR_VELOCITY = 60.00 diff --git a/configs/sim/woodpecker/woodpecker_xyzab.ini b/configs/sim/woodpecker/woodpecker_xyzab.ini index 36b066c776e..407fcad40a0 100644 --- a/configs/sim/woodpecker/woodpecker_xyzab.ini +++ b/configs/sim/woodpecker/woodpecker_xyzab.ini @@ -11,7 +11,7 @@ DISPLAY = qtvcp -f woodpecker PREFERENCE_FILE_PATH = WORKINGFOLDER/woodpecker.pref POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL -GEOMETRY = XYZABCUVW +GEOMETRY = xyzab GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in MAX_FEED_OVERRIDE = 1.2 #spindle @@ -47,7 +47,6 @@ MACHINE_LOG_PATH = machine_log.dat LOG_FILE = woodpecker.log TOOL_EDITOR = tooledit CONFIRM_EXIT = True -GEOMETRY = xyzab MACRO = auto_tool_zero auto_tool_zero MACRO = go_to_zero go_to_zero @@ -81,7 +80,6 @@ TOOL_TABLE = tool.tbl PARAMETER_FILE = woodpecker.var RS274NGC_STARTUP_CODE = G17 G21 G40 G43H0 G54 G64P0.005 G80 G90 G94 G97 M5 M9 SUBROUTINE_PATH = /home/.../linuxcnc/nc_files/probe/basic_probe/macros:~/linuxcnc/nc_files/examples/ngcgui_lib:~/linuxcnc/nc_files/examples/ngcgui_lib/utilitysubs -PARAMETER_FILE = metric_parameters.txt FEATURES=12 [EMCMOT] From 8c77c32d91a8c87f3573fe5364c1505e37e421cb Mon Sep 17 00:00:00 2001 From: Peter Stolz <50801264+PeterStolz@users.noreply.github.com> Date: Sun, 31 May 2026 14:00:55 +0200 Subject: [PATCH 2/2] configs: remove redundant same-value duplicate INI keys Follow-up to the previous commit. These configs repeat a key within one section with the *same* value. LinuxCNC uses the first occurrence, so the repeats are pure redundancy with no behaviour change -- removing them just de-clutters the configs. - [TRAJ] MAX_LINEAR_VELOCITY = 58 duplicated in: sim/axis/gantry/gantry.ini, sim/axis/gantry/gantry_jjog.ini, sim/qtaxis/gantry/qt_gantry.ini, sim/qtvcp_screens/qt_gantry.ini, sim/qtvcp_screens/qtdefault_gantry.ini - [RS274NGC] HAL_PIN_VARS = 1 duplicated in: sim/axis/vismach/scara/scara.ini, sim/qtaxis/non-trivial/scara/scara.ini, sim/qtvcp_screens/non-trivial/scara/scara.ini - [DISPLAY] GEOMETRY = XYZCBW duplicated in: sim/axis/vismach/5axis/bridgemill/5axis.ini The Sherline4Axis configs also have same-value duplicates, but they sit in a "# for gui only" block next to a conflicting MAX_LINEAR_VELOCITY that needs a separate decision, so they are left for a follow-up. --- configs/sim/axis/gantry/gantry.ini | 1 - configs/sim/axis/gantry/gantry_jjog.ini | 1 - configs/sim/axis/vismach/5axis/bridgemill/5axis.ini | 1 - configs/sim/axis/vismach/scara/scara.ini | 1 - configs/sim/qtaxis/gantry/qt_gantry.ini | 1 - configs/sim/qtaxis/non-trivial/scara/scara.ini | 1 - configs/sim/qtvcp_screens/non-trivial/scara/scara.ini | 1 - configs/sim/qtvcp_screens/qt_gantry.ini | 1 - configs/sim/qtvcp_screens/qtdefault_gantry.ini | 1 - 9 files changed, 9 deletions(-) diff --git a/configs/sim/axis/gantry/gantry.ini b/configs/sim/axis/gantry/gantry.ini index e037fa6f37b..ca49f1ce8ec 100644 --- a/configs/sim/axis/gantry/gantry.ini +++ b/configs/sim/axis/gantry/gantry.ini @@ -75,7 +75,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.0 MAX_LINEAR_VELOCITY = 58 -MAX_LINEAR_VELOCITY = 58 [EMCIO] TOOL_TABLE = sim.tbl diff --git a/configs/sim/axis/gantry/gantry_jjog.ini b/configs/sim/axis/gantry/gantry_jjog.ini index 601d905f518..b656af73693 100644 --- a/configs/sim/axis/gantry/gantry_jjog.ini +++ b/configs/sim/axis/gantry/gantry_jjog.ini @@ -80,7 +80,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.0 MAX_LINEAR_VELOCITY = 58 -MAX_LINEAR_VELOCITY = 58 [EMCIO] TOOL_TABLE = sim.tbl diff --git a/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini b/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini index 5330ae7e1e5..8ca0552431a 100644 --- a/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini +++ b/configs/sim/axis/vismach/5axis/bridgemill/5axis.ini @@ -8,7 +8,6 @@ MACHINE = Sim-5Axis Bridge Mill (xyzbcw) OPEN_FILE = ./5axisgui.ngc INCREMENTS = 10 mm, 1 mm, .1 mm JOG_AXES = XYZC - GEOMETRY = XYZCBW DISPLAY = axis CYCLE_TIME = 0.200 POSITION_OFFSET = RELATIVE diff --git a/configs/sim/axis/vismach/scara/scara.ini b/configs/sim/axis/vismach/scara/scara.ini index b429b03a641..baf72c9fb7a 100644 --- a/configs/sim/axis/vismach/scara/scara.ini +++ b/configs/sim/axis/vismach/scara/scara.ini @@ -18,7 +18,6 @@ PYVCP = scara.xml [RS274NGC] SUBROUTINE_PATH = ./remap_subs - HAL_PIN_VARS = 1 HAL_PIN_VARS = 1 REMAP = M428 modalgroup=10 ngc=428remap REMAP = M429 modalgroup=10 ngc=429remap diff --git a/configs/sim/qtaxis/gantry/qt_gantry.ini b/configs/sim/qtaxis/gantry/qt_gantry.ini index 0cbe011e53a..31d816e8f66 100644 --- a/configs/sim/qtaxis/gantry/qt_gantry.ini +++ b/configs/sim/qtaxis/gantry/qt_gantry.ini @@ -73,7 +73,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.0 MAX_LINEAR_VELOCITY = 58 -MAX_LINEAR_VELOCITY = 58 [EMCIO] TOOL_TABLE = sim.tbl diff --git a/configs/sim/qtaxis/non-trivial/scara/scara.ini b/configs/sim/qtaxis/non-trivial/scara/scara.ini index 148be56c3a4..00ea3d2a1ca 100644 --- a/configs/sim/qtaxis/non-trivial/scara/scara.ini +++ b/configs/sim/qtaxis/non-trivial/scara/scara.ini @@ -69,7 +69,6 @@ py = python3 [RS274NGC] SUBROUTINE_PATH = ./remap_subs - HAL_PIN_VARS = 1 HAL_PIN_VARS = 1 REMAP = M428 modalgroup=10 ngc=428remap REMAP = M429 modalgroup=10 ngc=429remap diff --git a/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini b/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini index cee480d8dfd..97f588c2e34 100644 --- a/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini +++ b/configs/sim/qtvcp_screens/non-trivial/scara/scara.ini @@ -70,7 +70,6 @@ py = python [RS274NGC] SUBROUTINE_PATH = ./remap_subs - HAL_PIN_VARS = 1 HAL_PIN_VARS = 1 REMAP = M428 modalgroup=10 ngc=428remap REMAP = M429 modalgroup=10 ngc=429remap diff --git a/configs/sim/qtvcp_screens/qt_gantry.ini b/configs/sim/qtvcp_screens/qt_gantry.ini index bd2027c607d..e1baaeaa722 100644 --- a/configs/sim/qtvcp_screens/qt_gantry.ini +++ b/configs/sim/qtvcp_screens/qt_gantry.ini @@ -73,7 +73,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.0 MAX_LINEAR_VELOCITY = 58 -MAX_LINEAR_VELOCITY = 58 [EMCIO] TOOL_TABLE = ../sim.tbl diff --git a/configs/sim/qtvcp_screens/qtdefault_gantry.ini b/configs/sim/qtvcp_screens/qtdefault_gantry.ini index 00a9e59203b..d54568b7ebf 100644 --- a/configs/sim/qtvcp_screens/qtdefault_gantry.ini +++ b/configs/sim/qtvcp_screens/qtdefault_gantry.ini @@ -76,7 +76,6 @@ LINEAR_UNITS = inch ANGULAR_UNITS = degree DEFAULT_LINEAR_VELOCITY = 1.0 MAX_LINEAR_VELOCITY = 58 -MAX_LINEAR_VELOCITY = 58 [EMCIO] TOOL_TABLE = ../sim.tbl