vcswatch reports that
this package seems to have a new changelog entry (version
1:2.10.0~pre1, distribution
UNRELEASED) and new commits
in its VCS. You should consider whether it's time to make
an upload.
Here are the relevant commit messages:
commit 5ee1ecefa8f2e9070d65a2f190e5f0a102807fea
Merge: d19b5bd9 556fd7b6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 20:24:55 2026 +0800
Merge pull request #4392 from grandixximo/dead-motion-cmds
motion: remove dead commands ENABLE_WATCHDOG, DISABLE_WATCHDOG, SET_TELEOP_VECTOR
commit d19b5bd985e31225f395dd9f7816b8937682bbc8
Merge: 5cb34168 ac15ce8a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 20:24:06 2026 +0800
Merge pull request #4390 from grandixximo/jerk-fallback-warn
ini: warn when PLANNER_TYPE=1 falls back to trapezoidal due to low jerk
commit 556fd7b6c9abec874b01f8f25c13e4efae76bc94
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 19:27:37 2026 +0800
motion: remove dead commands ENABLE_WATCHDOG, DISABLE_WATCHDOG, SET_TELEOP_VECTOR
No handler in command.c, no sender anywhere in the tree; the only
references were unreachable log cases in motion-logger.c. Remove the
enum entries, the logger cases, and the Code Notes sections that
documented them. Fixes #4359.
commit ac15ce8a624b8714002992f693a6c17961c7af67
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 18:29:26 2026 +0800
ini: warn when PLANNER_TYPE=1 falls back to trapezoidal due to low jerk
Setting [TRAJ]PLANNER_TYPE = 1 with [TRAJ]MAX_LINEAR_JERK < 1.0 silently
forced the trapezoidal planner, leaving users who requested S-curve
planning with no indication their setting was ignored (the code even
carried a FIXME asking for this warning). The same silent fallback
existed for runtime changes via the inihal HAL pins.
Print a one-time warning in both paths: at startup from loadTraj(),
and once from check_ini_hal_items() when a HAL pin change triggers
the fallback.
commit 5cb34168af1fbc05bec1299afe650258bf350319
Merge: c4c87522 d45804b2
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Aug 16 13:01:53 2026 +0200
Merge pull request #4154 from grandixximo/tp-improve
tp: S-curve planner performance and control fixes (solve storm, planner pool, cornering scale, G64 R)
commit c4c87522f10b68f07d3e6ea48f5c31e7cb4e2055
Merge: 8ea46713 683ac30b
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Aug 16 12:55:20 2026 +0200
Merge pull request #4210 from grandixximo/fix/preview-limit-checks
Preview "too large" gate: stop per-frame console spam, keep run_warn reliable
commit 8ea4671303bc5fbf436db5c5fe77ee5030387744
Merge: 48c8953d 6f3696f1
Author: andypugh <andy@bodgesoc.org>
Date: Sun Aug 16 11:02:33 2026 +0100
Merge pull request #4382 from BsAtHome/halgs_halquery
hal: Add the HAL query API and add IntEnum types
commit d45804b2b4d1633e6724d3a79c99489084ab1589
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 17:27:38 2026 +0800
docs, tests: G64 R planner dial, SMOOTH_PLANNER and SCURVE_PEAK_SCALE
Document the G64 R dial, the [TRAJ]SMOOTH_PLANNER and
[TRAJ]SCURVE_PEAK_SCALE ini entries. Interp coverage for the G64 R
planner dial, including the ambiguous G64/M19 R rejection and R on
G61.
commit 7b2720e9265d202e52580bc7c7781b581cf8ad84
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 16 17:27:38 2026 +0800
interp: refuse R word on a line with both G64 and M19
G64 R is the planner dial, M19 R is the spindle-orient angle. Both on
one line is ambiguous; reject it.
commit 99592b52ad5eec4d04861babf78351fcc08efccd
Author: chabron94 <chabron94@gmail.com>
Date: Sun Aug 16 17:27:38 2026 +0800
tp: G64 R planner dial, S-curve planner improvements
Preallocated Ruckig planner pool (ruckig_wrapper): each trajectory segment used to create/destroy its own Ruckig planner from inside the servo cycle; on dense short-segment paths that meant constant heap traffic and variable-latency servo time. Replace with a fixed pool recycled by acquire/release, no allocation in steady state. Exhaustion falls back to a live ruckig_create() with a one-shot MSG_ERR, so behaviour never regresses below the original code. ruckig_pool_init() runs eagerly from sp_scurve_init() (init context) so the first active segment does not pay RUCKIG_POOL_SIZE heap allocations inside a servo cycle; lazy init in acquire remains as backstop. ruckig_pool_cleanup() + sp_scurve_cleanup() run at motmod exit. tpClear/tpHandleEmptyQueue/tpHandleAbort reset the queue via tcqInit without returning borrowed planners, stranding the active segment's slot; tpReleaseQueuedPlanners() now runs before all three resets so repeated stops/aborts can no longer exhaust the pool into live ruckig_create() in the servo cycle.
Closed-form s-curve velocity queries replace per-cycle Ruckig solves: the look-ahead/blend optimizer ran full Ruckig root-solves every servo cycle (findSCurveMaxStartSpeed, findSCurveVSpeed via findSCurveVPeak, calcSCurveSpeedWithT); per-solve cost exploded on short/degenerate segments and peaked the servo thread on dense G-code. Replace all of them with constant-time analytic forms:
- max-start-speed: invert d = (Vs+Ve)/2 * T(dv) (triangular cubic / trapezoidal quadratic), floored at Ve to match the Ruckig infeasible fallback, clamped to the rest-to-rest peak.
- findSCurveVSpeed: rest-to-rest peak == max-start-speed over half the distance. The original Ruckig path returned HALF the true peak; the faithful x0.5 is preserved so behaviour is identical by default.
- calcSCurveSpeedWithT: the original asked Ruckig for a geometrically impossible target, ALWAYS failed, and ALWAYS returned its fallback - return the fallback directly.
Proven against ground-truth physics by an offline harness (src/emc/tp/scurve_analytic_test.c) and A/B-validated bit-identical against the live Ruckig path before the solver calls were removed.
Runtime SCURVE_PEAK_SCALE knob: scales the s-curve rest-to-rest peak velocity used by the corner look-ahead. 0.5 = faithful (reproduces the original halved-peak cornering exactly), 1.0 = physically-correct full jerk-feasible cornering. [TRAJ]SCURVE_PEAK_SCALE sets the default, ini.traj-scurve-peak-scale tunes it live, motion clamps to 0.1..1.0, sp_scurve.c reads it each query so changes apply immediately. Default is 1.0, the physically-correct corner speed: the halved peak of the initial S-curve release was an accident, not a designed margin; 1.0 stays within the configured jerk/accel limits by construction, which is the actual contract with the integrator. Set 0.5 to reproduce the pre-fix behaviour.
PLANNER_TYPE switch deferred until motion idle: flipping planner_type mid-motion re-routes the in-flight segment between the two update paths; position/velocity stay continuous but acceleration jumps, a jerk impulse, the very thing the s-curve planner exists to avoid. Now: idle (coord TP done + queue empty) = instant switch; moving = request latched and applied automatically at queue-idle by emcmotApplyPendingPlannerType() (once per servo cycle from emcmotController()), with a one-shot reportError() notice in the GUI. Motion is never aborted.
G64 R word selects planner mode as a graded Fanuc-style dial, riding the EMC_TRAJ_SET_TERM_COND message G64 already emits (applied in program order by task, landing through the defer-until-idle guard):
R omitted -> planner unchanged (modal)
R <= 0 -> trapezoidal
0 < R <= 1.0 -> S-curve, cornering scale = R
R > 1.0 -> S-curve, scale clamped to 1.0
Note R0 -> R0.1 is a regime flip (trapezoid is jerk-UNlimited, the aggressive end), not the gentle end of a gradient; R0.1 is the gentlest setting.
The R word carries intent only: part programs never name a planner implementation. The NML field carries intent (0 = trapezoidal, 1 = smooth/jerk-limited) and task resolves "smooth" against new [TRAJ]SMOOTH_PLANNER (default: PLANNER_TYPE when >0, else 1; currently only planner 1 exists and the value is range-capped accordingly). 0, or a missing jerk limit, makes task refuse R>0 with an operator error instead of silently ignoring the program's request. Programs stay valid when a machine's smooth planner implementation changes.
Throttle the S-curve no-jerk log storm: the 'maxjerk < 1' error printed EVERY servo cycle for segments with no usable jerk limit (e.g. rotary-only moves with [AXIS_*]MAX_JERK unset); the fallback is graceful (trapezoidal for the segment), so warn once, naming the likely missing INI items. EMCMOT_SET_PLANNER_TYPE now refuses an S-curve request outright when no valid TRAJ-level max jerk is configured (parity with the initraj/inihal guards) instead of entering a degraded per-segment-fallback state.
Co-authored-by: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
commit 48c8953d7c34a5dc2e5baed7561aeb7b70939aab
Merge: 5e6af049 bc37bd90
Author: andypugh <andy@bodgesoc.org>
Date: Sun Aug 16 10:13:46 2026 +0100
Merge pull request #4183 from grandixximo/fix/qtvcp-headless-excepthook
qtvcp: don't pop a modal error dialog when headless
commit 683ac30b71d60cb7b53fe0a046789c23a8fa063e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 29 13:35:51 2026 +0800
axis: warn when run_warn used a truncated preview
run_warn() checks program extents from the preview parse. An aborted parse
(PREVIEW_TIMEOUT or cancel) skips calc_extents(), leaving init extents, so
run_warn() gives a false all-clear. Compute partial extents on abort and
flag the preview incomplete so run_warn() reports it.
commit 3806b29136e13f5845936589d019ae5d16cf40e9
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 27 13:24:56 2026 +0800
glcanon: decide preview "too large" once at load, not every frame
The byte-size check ran per frame in _resolve_show_program(), re-stat'ing
the file each repaint and latching the refused name so the warning would not
repeat. Decide it once in load_preview() instead, log it there, and have
_resolve_show_program() read a flag. The file is still parsed fully, so the
run-time limit check stays valid; only drawing is suppressed.
commit 5e6af049d21dad2a476729cee110cf6fdf044dbf
Merge: 4e8f7468 f44628a4
Author: andypugh <andy@bodgesoc.org>
Date: Sun Aug 16 10:03:54 2026 +0100
Merge pull request #4221 from grandixximo/fix/tp-half-accel-nonblend
tp: apply parabolic half-accel only during an actual blend
commit 4e8f74686c30c320d351791f64533369ee89fdbb
Merge: 05782976 68d0a5ea
Author: andypugh <andy@bodgesoc.org>
Date: Sun Aug 16 10:02:45 2026 +0100
Merge pull request #4371 from grandixximo/merge-2.9-into-master
Merge branch '2.9'
commit 057829765c390bb72c30658e96c3d30d281aa876
Merge: 3124b491 dfb5b80c
Author: andypugh <andy@bodgesoc.org>
Date: Sun Aug 16 09:59:09 2026 +0100
Merge pull request #4350 from Sigma1912/split_toggle2nist_component
Split toggle2nist component
commit 3124b491e726dad2078b9944fb209832447af9fa
Merge: 0b1cbc72 a1124f69
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Aug 16 10:54:14 2026 +0200
Merge pull request #4313 from grandixximo/issue4303-countfunction-names
halcompile: support names= for count_function components
commit 0b1cbc72790906e72fb39e72c04412a9842c8515
Merge: def96a4f 2f0e02ab
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Aug 16 10:46:05 2026 +0200
Merge pull request #4364 from sleepybishop/headless
fix headless support
commit def96a4f53f35295a1a2658120f91c7cceb2552a
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Sat Aug 15 19:16:54 2026 -0700
qtvcp -dialog_widgets: silence a log error message with the tool dialog
Tool dialog is a special case, not using status messages or callbacks
and so gave a logged error in the consol that was not needed.
commit 6f3696f1756889c97b1bad1fdfef81eaed6ad05a
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Sat Aug 15 16:11:58 2026 +0200
hal: Add the HAL query API and add IntEnum types.
commit 5e4329cfe893a0b42ef8eb98286fcc9396556c83
Merge: 89022b0c 54686fe7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Aug 14 12:35:49 2026 +1000
Merge pull request #4376 from BsAtHome/fix_hm2_modbus-abs-path
hm2_modbus: Don't complain about relative paths, it is up to the user
commit 89022b0c8c1fd3271969ac3675e5f027ff0819b5
Merge: 0a4be846 d6246a45
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Aug 14 12:34:47 2026 +1000
Merge pull request #4378 from weblate/weblate-linuxcnc-linuxcnc-docs
Translations update from Hosted Weblate
commit d6246a4505bfbcfbe6ab7752fbc19342500816f2
Author: Américo Monteiro <a_monteiro@gmx.com>
Date: Fri Aug 14 01:52:31 2026 +0200
Translated using Weblate (Portuguese)
Currently translated at 28.7% (9776 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/pt/
Translation: LinuxCNC/LinuxCNC Documentation
commit c750287d2d05140772beeab9cea64b611ffc0397
Author: Salvador Peña <salvadorp74@hotmail.com>
Date: Fri Aug 14 01:52:28 2026 +0200
Translated using Weblate (Spanish)
Currently translated at 32.5% (11067 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Co-authored-by: Salvador Peña <salvadorp74@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
Translation: LinuxCNC/LinuxCNC Documentation
commit 0619c152ec0eac856e56a79d117302c82f19d59e
Author: Luca Toniolo <toniolo.luca@outlook.com>
Date: Fri Aug 14 01:52:22 2026 +0200
Translated using Weblate (German)
Currently translated at 99.6% (33891 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Translated using Weblate (Spanish)
Currently translated at 32.5% (11067 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Co-authored-by: Luca Toniolo <toniolo.luca@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/de/
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
Translation: LinuxCNC/LinuxCNC Documentation
commit 54686fe773ffb638bd319a3868b20e16d29728a5
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Thu Aug 13 11:08:56 2026 +0200
hm2_modbus: Don't complain about relative paths, it is up to the user.
commit 0a4be8460ec6fdffbf63699c7bc1a0a935a7e51c
Merge: 1313b7e5 6aa48da0
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date: Wed Aug 12 12:59:23 2026 -0400
Merge pull request #4293 from alex-pres/pr-gremlin-opengl-rewrite
glcanon: rewrite the G-code preview on OpenGL 3.3 core
commit 6aa48da09c9492e0cfafb6b3d9fcb2c07e9b61ab
Author: Alexey Presnyakov <309782758+alex-pres@users.noreply.github.com>
Date: Wed Aug 12 19:50:52 2026 +0400
glcanon: rewrite the G-code preview on OpenGL 3.3 core
Replaces the fixed-function preview shared by AXIS, the GTK screens and
QtVCP with a shader/VBO renderer: a baked trajectory buffer, an offscreen
ID-buffer pass for picking, and a glyph atlas for overlay text. The GL
matrix stack, display lists, immediate mode and GL_SELECT are gone. Added
optional optimised MoveBatch protocol to g-code parser. Rendering code
decomposed to a Scene object containing Parts (each can be replaced or
disabled).
commit 2f0e02abd849e2a67517da8707cf80319d820ccb
Author: joseph calderon <calderon.joe@gmail.com>
Date: Tue Aug 11 07:15:55 2026 -0700
address pr code review feedback
commit 68d0a5eacf83a36039eb819e9cbeb69e171efbba
Merge: 1313b7e5 2d1cc6eb
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 11 16:13:03 2026 +0800
Merge branch '2.9'
commit 1313b7e5a4d6fa29fa22b118d1d8bdedc3b3b4e7
Merge: 4c8532a2 1081a2d7
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Aug 9 15:00:41 2026 +0200
Merge pull request #4368 from grandixximo/fix/docs-image-stage-race
docs(build): stage translated images atomically to fix a -j race
commit 1081a2d74f66f79f402cba5dc5d2d260bd86e347
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 14:54:47 2026 +0800
docs(build): stage translated images atomically to fix a -j race
.adoc-images-stamp and the per-file TRANSLATED_IMAGE_RULE both stage the
same translated images, and under parallel make two cp -f calls on the
same destination intermittently fail with "cannot create regular file:
File exists". Seen in CI package-indep on PR #4367
(de/drivers/images/GM_ENDSWpinout.png).
Stage via mktemp + mv -f instead: the rename is atomic so concurrent
stagers can no longer produce EEXIST, and chmod 644 restores the
permissions plain cp used to give the new file (mktemp makes 600).
commit 4c8532a27d84005177431a3cef2d5a756387619b
Merge: 4a410c4d e9655952
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 16:51:20 2026 +1000
Merge pull request #4367 from grandixximo/fix/docs-anchor-scroll-margin
docs: topbar language label wrap, dropdown metrics, and anchor offset fixes
commit e9655952c01a03060220291c7f385bc6d89eb9ab
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 13:32:52 2026 +0800
docs: keep the topbar language label on one line on phones
The longest labels (Русский, Українська) wrapped below ~390px, dropping
the ▾ onto its own line, and the open dropdown had different row rhythm
on index vs content pages (index.css li margin-top, asciidoctor
line-height leaks). Pin the dropdown metrics at #lcnc-topbar
specificity, nowrap the label, and slim the bar below 480px and 360px;
the worst-case label plus an injected search icon now fits to 320px.
commit 531f53d6cf05916ba76daa3e80f7046727d2003a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 13:32:52 2026 +0800
docs: keep anchor targets below the fixed topbar
Anchor jumps park the target at viewport top, where the fixed 3rem
translucent topbar covers it. scroll-margin-top drops every in-page
target (including docs search section results) just below the bar.
commit 4a410c4d36d3b895f29533f75d853f5583ae465e
Merge: d63b4522 dd01572e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 14:26:51 2026 +1000
Merge pull request #4366 from grandixximo/po4a-dual-pid
docs: register dual-pid-example.adoc with po4a
commit dd01572efe979b5dd40da5c9b9f25693db8ea661
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 09:37:25 2026 +0800
docs: register motion/dual-pid-example.adoc with po4a so translations get built
commit d63b4522d50a63df33497c9294ae9f355735b246
Merge: 89b2d5b4 3f890c14
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Aug 9 10:29:02 2026 +1000
Merge pull request #4365 from weblate/weblate-linuxcnc-linuxcnc-docs
Translations update from Hosted Weblate
commit 3f890c1415e0718df529fe2c8733b6f9b83bac33
Author: Américo Monteiro <a_monteiro@gmx.com>
Date: Sun Aug 9 00:52:28 2026 +0200
Translated using Weblate (Portuguese)
Currently translated at 25.9% (8818 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/pt/
Translation: LinuxCNC/LinuxCNC Documentation
commit ecad46948691fa8926d530c0676d599f08d8aed2
Author: Luca Toniolo <toniolo.luca@outlook.com>
Date: Sun Aug 9 00:52:24 2026 +0200
Translated using Weblate (Ukrainian)
Currently translated at 99.6% (33878 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Translated using Weblate (Russian)
Currently translated at 34.3% (11668 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Translated using Weblate (German)
Currently translated at 99.6% (33891 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Translated using Weblate (Norwegian Bokmål)
Currently translated at 4.4% (1499 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Translated using Weblate (Spanish)
Currently translated at 32.3% (11013 of 33994 strings)
Author: Luca Toniolo <toniolo.luca@outlook.com>
Co-authored-by: Luca Toniolo <toniolo.luca@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/de/
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/ru/
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/uk/
Translation: LinuxCNC/LinuxCNC Documentation
commit a24cfb343e558820c3df032f28c9ba9b804d9dea
Author: Salvador Peña <salvadorp74@hotmail.com>
Date: Sun Aug 9 00:52:18 2026 +0200
Translated using Weblate (Spanish)
Currently translated at 32.3% (11013 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Co-authored-by: Salvador Peña <salvadorp74@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
Translation: LinuxCNC/LinuxCNC Documentation
commit 58b35227b98d8a7de702397a481cc4df05f0edc0
Author: joseph calderon <calderon.joe@gmail.com>
Date: Sat Aug 8 09:12:42 2026 -0700
add support for headless compilation
commit 89b2d5b4694cef94b4bd2e692ecb690d7d47495d
Merge: ae2d0a73 5c31ef1b
Author: BsAtHome <bertho@vagrearg.org>
Date: Sat Aug 8 16:59:40 2026 +0200
Merge pull request #4361 from grandixximo/docs-asciideps-targets
docs(build): name the real target in the generated dependencies
commit 5c31ef1b969f5464183001427cf2d63059bd3720
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 13:55:07 2026 +1000
docs(build): name the real target in the generated dependencies
asciideps derives the target it emits by stripping a `.txt` suffix, which is what the docs were written in when it landed in 2011. Since the sources became `.adoc` nothing is stripped, so it generates rules for targets like docs/build/adoc/en/hal/tutorial.adoc.html that nothing builds: every include:: and image: dependency it has extracted since then has been inert.
Editing hal/halshow.adoc therefore never re-rendered hal/tutorial.html, which include::s it, and editing a chapter never rebuilt the Master PDF pulling it in. Master_Documentation.adoc alone include::s 119 files, so all four English PDFs stayed stale until docclean.
The target is not derivable from the source path, so pass it in: a page is consumed by its .html, a Master document is never rendered as HTML and its English PDF lands in objects/. The unused `.dep` line went with the rewrite.
Reconnecting the dependencies exposed three latent problems, fixed here:
- Commented-out image: macros counted as dependencies. The macro is matched anywhere on the line so inline refs are caught, which also matched a ref behind a `//`; one in gui/gmoccapy.adoc points at a since-deleted image, stopping the build.
- Images referenced inline were never staged into the translated adoc tree, because .adoc-images-stamp anchored its scan at the start of the line. The translated PDFs embed images from that tree, so they have been missing all 39 of them. Both extractors now key on the macro shape rather than a bare `image:`, so prose mentioning one is not taken for a path.
- Staged translated images had no rule of their own. Named as prerequisites, a clean -j build reached one before the bulk stamp had written it and fell through to the "Required image file" error rule. Each now stages on demand; the bulk pass stays, since asciideps records only the last macro on a line and cannot be the guarantee that asciidoctor-pdf finds every image.
Verified with HTML, PDF and the seven translations enabled: a clean build renders 5210 pages and 32 Master PDFs with no unresolved directives, the two builds after it do no work, and touching a page, a partial, a chapter or an image rebuilds exactly what depends on it in a single `make`.
commit ae2d0a7376df82866869fe98e528da36ee56ce62
Merge: 64ade4cb 6c13d05e
Author: BsAtHome <bertho@vagrearg.org>
Date: Sat Aug 8 15:48:35 2026 +0200
Merge pull request #4356 from grandixximo/fix/halscope-relaunch
halscope: fix "loadrt scope_rt failed" when reopening the scope
commit 64ade4cb9b276400884edd104550eef119ed4f6a
Merge: 59e350a9 cf7349aa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 23:41:30 2026 +1000
Merge pull request #4363 from BsAtHome/fix_linuxcncrsh-typo
linuxcncrsh: Fix typo in reply text asserting a SET as a GET command
commit dfb5b80c3683fee7da46646179f84e1ac3183db7
Author: david mueller <mueller_david@hotmail.com>
Date: Thu Aug 6 15:07:39 2026 +0100
toggle2nist.comp: restore 2.9 logic, add debounce, fix description
Restores the legacy functionality (as in 2.9) plus added input debounce and
and a maximum output pulse length to recover if the 'is-on' signal does not change state.
Also fixes the description so it matches actual (legacy) behavior.
commit 59e350a9a731d4699b215dccc92b4495ad543f5c
Merge: 218e7419 bbb72b2a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 23:06:45 2026 +1000
Merge pull request #4362 from weblate/weblate-linuxcnc-linuxcnc
Translations update from Hosted Weblate
commit bbb86ba4424390f4134a8151c9f0b4e3754f8523
Author: david mueller <mueller_david@hotmail.com>
Date: Thu Aug 6 16:21:55 2026 +0100
Adds a new 'momentary2nist' component
This component does what the legacy 'toggle2nist' man page described plus
added debounce on input pins and a maximum output pulse length to recover if
the 'is-on' signal does not change state.
commit bbb72b2a85bcc4b974255922d94a04f55aa6307b
Author: Olivier M <olinews@free.fr>
Date: Sat Aug 8 13:51:23 2026 +0200
Translated using Weblate (French)
Currently translated at 73.0% (2833 of 3877 strings)
Co-authored-by: Olivier M <olinews@free.fr>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc/fr/
Translation: LinuxCNC/LinuxCNC
commit 218e7419d6c711240b5797c770ac1257aef313d8
Merge: 6de285c6 cf78a016
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 22:36:07 2026 +1000
Merge pull request #4352 from BsAtHome/halgs_halrmt
hal: Rewrite most of halrmt to become functional and use the query API
commit 6de285c61dc9e411912421d12d9af7de122716ff
Merge: c794fccd a70ec3d3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 22:09:04 2026 +1000
Merge pull request #4355 from BsAtHome/fix_inifile-emcmodule-doc
docs: add ini-file API documentation for linuxcnc.ini module
commit cf7349aa03ca16d86f668b25d9c0d0a6e903d361
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Fri Aug 7 12:04:09 2026 +0200
linuxcncrsh: Fix typo in reply text asserting a SET as a GET command.
commit cf78a01688ecf10ec67018c7c48a2a6cbf64b08a
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Fri Aug 7 12:04:09 2026 +0200
hal: Rewrite most of halrmt to become functional and use the query API.
commit a70ec3d3e946417933667aa1f5deda0322a809bf
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Fri Aug 7 15:10:09 2026 +0200
docs: add ini-file API documentation for linuxcnc.ini module.
commit c794fccd045dd52f86009db22cb02c8aeb143def
Merge: cb2c8aa6 27c09bec
Author: BsAtHome <bertho@vagrearg.org>
Date: Sat Aug 8 12:49:37 2026 +0200
Merge pull request #4358 from grandixximo/docs-rebuild-unstable
docs(build): stage English sources with per-file rules so one make rebuilds
commit 6c13d05eae563fcee73a761996329f27e153c02c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Aug 7 22:46:45 2026 +1000
halscope: fix "loadrt scope_rt failed" when reopening the scope
Closing halscope leaves scope_rt loaded, so every launch after the first
has to detect that the realtime part is already there and skip the
loadrt. That detection broke in d88d10db8f: the funct lookup
halpr_find_funct_by_name("scope.sample") was replaced with the component
lookup hal_comp_by_name("scope.sample", NULL). No component is named
"scope.sample" (the component is "scope_rt", "scope.sample" is the funct
it exports), so the lookup always returns -ENOENT and halscope always
runs "halcmd loadrt scope_rt".
On the second launch that loadrt fails because scope_rt is already
loaded, and halscope exits immediately with "loadrt scope_rt failed".
From a GUI such as AXIS ("Machine" > "Hal Scope") the window simply
never appears again until LinuxCNC is restarted.
Look the funct up with hal_list_funct() instead, the same way
scope_horiz.c already does, which restores the original semantics.
commit cb2c8aa689c0f1f386d5f35008984cbe0a655f24
Merge: e96acd9a 7a4659de
Author: BsAtHome <bertho@vagrearg.org>
Date: Sat Aug 8 11:53:36 2026 +0200
Merge pull request #4360 from grandixximo/three21kins-getter-setter
hal: Update three21kins to getter/setter
commit e96acd9aa29f2835d95ba857c5a7ec2f9ecff41b
Merge: 4aa969b3 8c722046
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 17:23:02 2026 +1000
Merge pull request #4357 from grandixximo/gmoccapy-4353-y2-button
gmoccapy: don't show_all() containers holding embedded tabs
commit 4aa969b3bb2f4ba4bb1bb18dc901610c5a2114a6
Merge: 79bbeb90 f4bdaa37
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 17:10:00 2026 +1000
Merge pull request #4270 from sleepybishop/three21
Add three21kins analytical kinematics solver
commit 7a4659dee2d1788cd2923ad9b84d84663577e8ae
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 16:55:42 2026 +1000
hal: Update three21kins to getter/setter.
three21kins was merged from a branch that predated the tree-wide
kinematics conversion in 51fc3029b0, so it still used the old
double-pointer pin pattern.
Store the DH parameters as hal_real_t members, create the pins with
hal_pin_new_real() so the defaults come from the pin definition, and
read them with hal_get_real(). The per-call local copies of the
parameters are kept as they were.
No functional change.
commit 2d1cc6eb3e848d8520f2e7a15533f270264478af
Merge: 2b997359 2a8e5aba
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 14:41:16 2026 +1000
Merge pull request #4344 from grandixximo/docs/spindle-orient-fix
docs: spindle orient fix
commit 27c09becca4b8677527dd78d2df2b17c6e3291cc
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Aug 7 22:53:43 2026 +1000
docs(build): stage English sources with per-file rules so one make rebuilds
Fixes #4354. After a full HTML docs build, touching a source under docs/src did nothing on the next `make`; only the run after that re-rendered the page.
English sources are staged into docs/build/adoc/en by a bulk find|tar behind `.stage-en-stamp`, with the staged copies attached to it order-only. make stats a prerequisite once per run and re-stats it only if it decided to remake it, and an order-only edge never triggers a remake, so the staged .adoc kept its pre-staging mtime for the whole run. The stamp rewrote that same file mid-run, but the renderer had already compared the .html against the stale mtime and concluded it was up to date.
Replace the stamp with one copy rule per staged file, so make knows the staged copy changed. cp -p also keeps the source mtime to the nanosecond where tar rounded it down to the whole second. Per-file rules alone would stage only what some rule asks for, which is a smaller set than the bulk copy produced, so a `stage-en` aggregate keeps the old guarantee that everything lands before anything renders; without it a partial like hal/halshow.adoc never arrives and the page including it renders an "Unresolved directive" placeholder.
commit 79bbeb90cc1046549b4656acd2e6a835b7d40a77
Merge: 41ce781a 17221742
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 13:39:32 2026 +1000
Merge pull request #4346 from LinuxCNC/dual_pid_doc
docs -add writeup about a dual PID axis example
commit 8c72204638a9e5fffd3f4b4f210cf3ae4ef76bb4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Aug 8 10:53:13 2026 +0800
gmoccapy: don't show_all() containers holding embedded tabs
show_all() on ntb_preview recursively unhid widgets hidden at init,
i.e. the lathe-only back-tool view button rbt_view_y2, making it
appear on mill configs. Show only the container, the socket and its
tab label.
Fixes #4353
commit 17221742bfa94097af561ca0a165d2a1df621cbb
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Wed Aug 5 19:08:54 2026 -0700
docs -add writeup about a dual PID axis example
commit f4bdaa372355d4fb8e48d636034384d2dec5fb2d
Merge: 5c5aed95 41ce781a
Author: joseph calderon <calderon.joe@gmail.com>
Date: Fri Aug 7 18:00:58 2026 -0700
merge upstream/master
commit 2b997359b463920c08bde301116d6094e3a938ec
Merge: 0ef6edce 9e0015fe
Author: Hans Unzner <hansunzner@gmail.com>
Date: Fri Aug 7 17:48:35 2026 +0200
Merge pull request #4321 from grandixximo/backport-homing-guard-2.9
Fix homing bug when trying to home while homing is in progress (2.9 backport)
commit 41ce781a299b6bcd71862d6556a8536db086298a
Merge: 132c2b88 82cd21f9
Author: BsAtHome <bertho@vagrearg.org>
Date: Fri Aug 7 16:03:37 2026 +0200
Merge pull request #4337 from grandixximo/fix/homecomp-rebuild
hal: restore working homecomp example
commit 132c2b88f6242ae1c9aa6bb2f4c6a47dd12bfc04
Merge: d4ea0c67 0d3ddc10
Author: BsAtHome <bertho@vagrearg.org>
Date: Fri Aug 7 15:17:57 2026 +0200
Merge pull request #4351 from grandixximo/emcrsh-wait-homed
linuxcncrsh: Fix race between SET JOINT_HOME and SET JOINT_WAIT_HOMED
commit 0d3ddc10f22ac84b0edcc33c4d12692ba2446ba1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Aug 7 10:35:47 2026 +0800
linuxcncrsh: Fix race between SET JOINT_HOME and SET JOINT_WAIT_HOMED
SET JOINT_HOME is acknowledged when task has received the command, but the motion controller raises the homing flag only after its next servo-thread run and the status needs to propagate back through task. A SET JOINT_WAIT_HOMED issued in between was refused with 'not homed and not in the process of homing', and the following homing commands then failed with 'Homing not possible until current homing process is finished'. This showed up as intermittent tests/linuxcncrsh failures on slow CI runners.
SET JOINT_HOME now waits for the requested joint to become homing or homed, one heartbeat at a time, the same way SET MACHINE and SET ESTOP wait for the motion controller to catch up, and refuses the command if homing never starts. A homed joint may legitimately not enter the homing state again (HOME_NO_REHOME), hence the check for either state. Home-all (-1) is excluded because joints without HOME_SEQUENCE are skipped by design. SET JOINT_WAIT_HOMED keeps a grace wait for the homing flag before declaring the error, since the homing may have been started through a different user interface.
commit d4ea0c67b8a024c656b735b822649ed1062f7ae3
Merge: dd8d0be1 6c52011d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 22:20:35 2026 -0400
Merge pull request #4284 from grandixximo/motion-mode-retry
motion: defer mode transitions instead of dropping them when not in position
commit dd8d0be15b88bdb163ab17a6f0ea5f73936cdffc
Merge: 98120adc fe6f88f2
Author: Hans Unzner <hansunzner@gmail.com>
Date: Thu Aug 6 13:45:56 2026 +0200
Merge pull request #4348 from grandixximo/axis-sim-traj-maxvel
configs: align sim axis [TRAJ] max velocity with [DISPLAY] and joints
commit fe6f88f2a432c094f8d47698962703ab0c13b2dd
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 14:55:58 2026 +0800
configs: align sim axis [TRAJ] max velocity with [DISPLAY] and joints
axis.ini is the only shipped GUI sim config where
[DISPLAY]MAX_LINEAR_VELOCITY (5) disagrees with
[TRAJ]MAX_LINEAR_VELOCITY (4); gmoccapy sets both equal and
touchy/axis_mm rely on the TRAJ fallback. The joints are 5 too.
The mismatch is not just cosmetic. axis initializes its Max Velocity
slider to the [DISPLAY] maximum and the Tk scale -command sends
EMC_TRAJ_SET_MAX_VELOCITY(5) at startup; emcTrajSetMaxVelocity()
writes that straight to motion as EMCMOT_SET_VEL_LIMIT with no clamp
against the ini value, after initraj already seeded the limit with
the [TRAJ] value (4). If the GUI's NML write lands before
linuxcncsvr formats the command buffer it is lost and the machine
keeps 4; otherwise it runs at 5. The coordinated-move velocity cap
for this config therefore depends on startup timing, and the axis
Max Velocity readout settles at 240 or 300 in/min accordingly.
Set [TRAJ]MAX_LINEAR_VELOCITY to 5 so the power-on default matches
the [DISPLAY] slider maximum and the joint limits, making the
settled cap deterministic. Practical behavior barely changes: axis
already tries to set 5 at every startup, it just sometimes fails.
commit 0ef6edce84800d63e52cc88ff7d36fcae9749f74
Merge: 18c5bb5b c2a90fa0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 02:24:53 2026 -0400
Merge pull request #4345 from grandixximo/chore/ci-to-ubuntu
2.9 CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com (backport of #4336)
commit 98120adc271a91f6be69b98d489f14d75ce23507
Merge: df2e9187 fcfb06bf
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 01:29:07 2026 -0400
Merge pull request #4347 from grandixximo/chore/ci-mirror-fix
CI: rewrite apt-mirrors.txt so the mirror switch actually applies
commit c2a90fa0f6f4880473fde8f2320bc5ec1f650124
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 13:01:44 2026 +0800
CI: rewrite apt-mirrors.txt so the mirror switch actually applies
The runner image configures apt with
URIs: mirror+file:///etc/apt/apt-mirrors.txt in ubuntu.sources, so the
azure.archive.ubuntu.com URL lives in that file, not in sources.list or
the .list/.sources files. The sed pass in 1d46401b07 therefore matched
nothing and apt kept using the azure mirror; the rip-and-test job on
this branch stalled in Install dependencies and was cancelled at the
45 minute timeout.
Add /etc/apt/apt-mirrors.txt to the rewrite list and fail the step if
any azure.archive.ubuntu.com reference survives under /etc/apt, so a
future runner image layout change cannot turn this script into a
silent no-op again.
commit fcfb06bfe8ee0509d0888a1e5400d130be4b37ab
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Aug 6 13:01:00 2026 +0800
CI: rewrite apt-mirrors.txt so the mirror switch actually applies
The runner image configures apt with
URIs: mirror+file:///etc/apt/apt-mirrors.txt in ubuntu.sources, so the
azure.archive.ubuntu.com URL lives in that file, not in sources.list or
the .list/.sources files. The sed pass in 1d46401b07 therefore matched
nothing and apt kept using the azure mirror; jobs kept stalling.
Add /etc/apt/apt-mirrors.txt to the rewrite list and fail the step if
any azure.archive.ubuntu.com reference survives under /etc/apt, so a
future runner image layout change cannot turn this script into a
silent no-op again.
commit 4428555a2a1c3bfe55e685d23c1e90409e2b37aa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 4 07:52:24 2026 +0800
CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com
The azure.archive.ubuntu.com apt mirror on GitHub-hosted runners
regularly degrades to trickle speeds for extended periods, stalling
package downloads until the job hits its timeout. This is a recurring
upstream problem, see actions/runner-images issues #7048 and #12949.
apt retries do not help because the connection stays alive, only slow.
Switch affected jobs to archive.ubuntu.com, which is consistently fast
from Azure.
commit 2a8e5aba2c40fa663af6e08203b7ff9f4b837603
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Aug 5 10:12:14 2026 +0100
Man: Remove outdated logic description from man page
The relevant logic was changed in Commit b2cd764 but the man page was not updated.
The Functionality of the logic is likely easier to understand by looking at the code.
commit 576c28fd343e76515f884113cd151440566a5018
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Aug 5 10:11:06 2026 +0100
Docs: M19 does not use encoder index signal
commit df2e918723a0afe2e0f7e1b24741bd59b4e27d4c
Merge: 9d52bb1f dd687592
Author: BsAtHome <bertho@vagrearg.org>
Date: Wed Aug 5 23:21:55 2026 +0200
Merge pull request #4199 from hdiethelm/hm2_eth_oob_v5
Mesa Hostmot2 Xenomai4 OOB networking support
commit dd687592a33c13cd234d06929d7c7e62fb03e8e0
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Tue Aug 4 22:33:39 2026 +0200
hm2_eth: Improve timeout handling
There where three different ways of handling recv timeouts. The reason
is probably that SO_RCVTIMEO works only down to 8ms which would create a
real time violation.
By using ppoll(), timeouts down to 100us work reliably without needing
to poll recv with MSG_DONTWAIT. This reduces the CPU load considerably.
commit 1696cda44e94110115f20f148a5e86f7140f87ea
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Sun Jul 19 13:24:15 2026 +0200
Xenomai EVL network for Hostmot2: Docs
Also document missing pin packet-error-total.
commit 8ff2665028abb8a15f8335e5740310137d395a9a
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Sun Jul 19 12:47:36 2026 +0200
Xenomai EVL network for Hostmot2
Split into two network implementations, one for posix and one for evl.
There is a new option for hm2_eth: board_rtnet=evl / board_rtnet=posix
to select which network implementation is used.
With board_rtnet=evl, initf hm2_eth.realtime-init servo-thread needs to
be added to the .ini file to initialize the realtime network inside the realtime context.
commit 9d52bb1f7e674928a3cc42b775fbd05f1db16776
Merge: 7d5d573c 28b8909e
Author: BsAtHome <bertho@vagrearg.org>
Date: Wed Aug 5 13:56:15 2026 +0200
Merge pull request #4340 from grandixximo/docs-anchor-lint
docs: add derived-id section reference lint
commit 7d5d573c5d6fc32ac3f9c9a4cd23aeec7cc42cb5
Merge: 01de207d 1f54c987
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Aug 5 07:47:31 2026 -0400
Merge pull request #4342 from Sigma1912/Update_spindle_orient_docs
Update spindle orient docs
commit 28b8909e911dbeae325cde1cff87e77b228f21bc
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Aug 5 11:08:23 2026 +0800
docs: add derived-id section reference lint
scripts/docs-anchor-check.py, wired into the htmldocs CI job with
--enforce, flags <<_derived>> xrefs and link:...html#_derived URLs
whose target has no explicit [[anchor]] in docs/src. Derived ids come
from section titles, so such references break when a title is
translated or retitled. Pin the target with an explicit anchor
instead. The lint reads only the English sources, so translations
cannot trip it.
Also pins the remaining lint hits, all same-page links in untranslated
man pages (_subcommands, _mbccs_file_format, _modbus_functions,
_modbus_types, _hal_types). Explicit ids match the auto-generated
ones, so output is unchanged. With the five anchors from #4339 merged,
the lint reports the tree clean.
commit 01de207da6939f1dbf7bc5bf0fa0c165f893a4e7
Merge: 5474573f b1e38ca0
Author: BsAtHome <bertho@vagrearg.org>
Date: Wed Aug 5 12:05:08 2026 +0200
Merge pull request #4339 from grandixximo/docs-anchor-auto-ids
docs: add explicit anchors for sections referenced by auto-generated ids
commit 1f54c987f4bbc6cfcaa18df4336260bf6ca396cc
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Aug 5 10:12:14 2026 +0100
Man: Remove outdated logic description from man page
The relevant logic was changed in Commit b2cd764 but the man page was not updated.
The Functionality of the logic is likely easier to understand by looking at the code.
commit 444d06882175d1ca0b17315bda6c6590866c0aaf
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Aug 5 10:11:06 2026 +0100
Docs: M19 does not use encoder index signal
commit b1e38ca0a82150ee5942bdcd8561524b83944a49
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Aug 5 10:41:03 2026 +0800
docs: add explicit anchors for sections referenced by auto ids
These five sections are linked to via their auto-generated ids
(_normal_download, _alternate_install_methods, _latency_tuning,
_ini_settings, _commands). Translations change the section titles,
which changes the generated id and breaks every such link in the
translated HTML (flagged by the CI checklink run for de, es, ru, uk
and nb). Pinning the id with an explicit anchor makes the targets
translation-proof. English output is unchanged since the explicit id
matches the auto-generated one.
commit 5474573f703ecf128916481a46da07dd976acde7
Merge: 85b35db3 7512f354
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 4 07:39:28 2026 -0400
Merge pull request #4338 from BsAtHome/halgs_taskclass-iocontrol
hal: Update iocontrol to use getter/setter
commit 85b35db3f1a38a49cb82907a0b46148a81f84fe6
Merge: 02765328 b7ed2f65
Author: BsAtHome <bertho@vagrearg.org>
Date: Tue Aug 4 13:22:43 2026 +0200
Merge pull request #4246 from grandixximo/feat/man-xref-links
docs: link manpage cross-references in HTML output
commit 027653288d664a2aeb5ea19251558fd0eb9e60e2
Merge: bedcc577 d1fe710f
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 4 06:59:13 2026 -0400
Merge pull request #4330 from BsAtHome/halgs_components-rtai
hal: Update kernel-only components (RTAI) to getter/setter
commit 7512f3543cf14a69091c41e4360466d1929e3b99
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Tue Aug 4 12:21:59 2026 +0200
hal: Update iocontrol to use getter/setter.
commit d1fe710fbc1750837460dac901f58c7fe937d117
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Mon Aug 3 17:17:51 2026 +0200
hal: Update kernel-only components (RTAI) to getter/setter.
commit bedcc5771ab38ac449e54983131a6d632d04fd15
Merge: b0b9ded1 1d46401b
Author: andypugh <andy@bodgesoc.org>
Date: Tue Aug 4 09:35:26 2026 +0100
Merge pull request #4336 from grandixximo/ci-apt-mirror
CI: Use main Ubuntu archive instead of azure.archive.ubuntu.com
commit 82cd21f954feb3a3aeceb6b71cd9ecbf3290d5e4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 4 16:29:38 2026 +0800
docs: document the homing module interface
Add per-function documentation to homing.h: what each interface
function does, when motmod calls it, and return semantics. Point to
it from the code-notes motion-controller section and from the
homecomp description so man page readers find it.
commit 76d079c03e475fd16fe96fb8b85d8edffd59d2df
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Aug 4 13:26:21 2026 +0800
hal: restore working homecomp example