- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Refreshing the LCNC visual documentation, an attempt, feedback welcome
Refreshing the LCNC visual documentation, an attempt, feedback welcome
- Zia
- Offline
- New Member
-
Less
More
- Posts: 1
- Thank you received: 2
03 Aug 2026 19:43 #348425
by Zia
Refreshing the LCNC visual documentation, an attempt, feedback welcome was created by Zia
Hello everyone,
I'm an engineer based in Switzerland, French and German speaking, doing
research before building my first LinuxCNC machine. I have a background
with other CNC and PLC systems (FANUC, Beckhoff, Siemens...), and I'll be using EtherCAT hardware.
I started with a week of plain reading — docs, forum, source. Coming fromother controllers, what I really wanted was a picture of how a G-code lineactually becomes motion. At the same time I was experimenting with AI for
my job, so I combined the two: I used the machine-learning work as a way
into the codebase, and the codebase as a serious test of the tooling.
Two things came out of it.
First, the Code Notes block diagram, redrawn and brought up to date:
zia-research.github.io/linuxcnc-audit/sh...de-notes-errata.html
The original diagram as published, side by side with a corrected
version reflecting the current source.
Second, a generated command-flow sheet:
zia-research.github.io/linuxcnc-audit/sh...nc-command-flow.html
An animated sheet following one command all the way through: .ngc file
-> Interp -> canon -> interp_list -> task -> the emcmot shared segment
-> motion-command-handler -> the trajectory queue -> tpRunCycle ->
inverse kinematics -> HAL -> pid/stepgen -> hardware, and the feedback
path climbing back up. Hovering any block shows its role and the source
file behind it. It also carries three detail panels: the servo cycle as
a ring, the seven position representations, and every buffer drawn to
scale.
I know the reputation AI-generated content has, so the rule throughout was
that nothing is claimed without being verified in the source, every
statement carries a file:line citation, and a script re-checks all 111
citations against the tree so anyone can validate them independently.
That verification work turned up a handful of places where the
documentation and the source have drifted apart over the years — the Code
Notes say so themselves in their opening paragraph. Nothing dramatic, but
a few would bite someone: an example in the HAL manual that names a funct
which doesn't exist, and one behaviour around spindle-synchronized motion
that isn't documented anywhere.
After that I let the AI implement the corrections as well. Small doc
patches are ready if there's interest, but that's secondary — the sheets
are what I mainly wanted to offer.
Everything targets master (2.10.0~pre1); I'm aware some details differ on
2.9.x.
The most important part:
Could someone with real experience of the codebase take a look and tell
me whether this makes sense? I'm new here, and a diagram that is
confidently wrong is worse than no diagram at all.
Sources, findings and patches:
github.com/Zia-research/linuxcnc-audit
I'm an engineer based in Switzerland, French and German speaking, doing
research before building my first LinuxCNC machine. I have a background
with other CNC and PLC systems (FANUC, Beckhoff, Siemens...), and I'll be using EtherCAT hardware.
I started with a week of plain reading — docs, forum, source. Coming fromother controllers, what I really wanted was a picture of how a G-code lineactually becomes motion. At the same time I was experimenting with AI for
my job, so I combined the two: I used the machine-learning work as a way
into the codebase, and the codebase as a serious test of the tooling.
Two things came out of it.
First, the Code Notes block diagram, redrawn and brought up to date:
zia-research.github.io/linuxcnc-audit/sh...de-notes-errata.html
The original diagram as published, side by side with a corrected
version reflecting the current source.
Second, a generated command-flow sheet:
zia-research.github.io/linuxcnc-audit/sh...nc-command-flow.html
An animated sheet following one command all the way through: .ngc file
-> Interp -> canon -> interp_list -> task -> the emcmot shared segment
-> motion-command-handler -> the trajectory queue -> tpRunCycle ->
inverse kinematics -> HAL -> pid/stepgen -> hardware, and the feedback
path climbing back up. Hovering any block shows its role and the source
file behind it. It also carries three detail panels: the servo cycle as
a ring, the seven position representations, and every buffer drawn to
scale.
I know the reputation AI-generated content has, so the rule throughout was
that nothing is claimed without being verified in the source, every
statement carries a file:line citation, and a script re-checks all 111
citations against the tree so anyone can validate them independently.
That verification work turned up a handful of places where the
documentation and the source have drifted apart over the years — the Code
Notes say so themselves in their opening paragraph. Nothing dramatic, but
a few would bite someone: an example in the HAL manual that names a funct
which doesn't exist, and one behaviour around spindle-synchronized motion
that isn't documented anywhere.
After that I let the AI implement the corrections as well. Small doc
patches are ready if there's interest, but that's secondary — the sheets
are what I mainly wanted to offer.
Everything targets master (2.10.0~pre1); I'm aware some details differ on
2.9.x.
The most important part:
Could someone with real experience of the codebase take a look and tell
me whether this makes sense? I'm new here, and a diagram that is
confidently wrong is worse than no diagram at all.
Sources, findings and patches:
github.com/Zia-research/linuxcnc-audit
The following user(s) said Thank You: tommylight, onceloved
Please Log in or Create an account to join the conversation.
- andypugh
-
- Offline
- Moderator
-
Less
More
- Posts: 19888
- Thank you received: 4645
03 Aug 2026 21:55 #348428
by andypugh
Replied by andypugh on topic Refreshing the LCNC visual documentation, an attempt, feedback welcome
It might be worth looking through the PRs as I think that there is other work ongoing in this area.
github.com/LinuxCNC/linuxcnc/pull/3718
github.com/LinuxCNC/linuxcnc/pull/3718
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- EtherCAT
- Refreshing the LCNC visual documentation, an attempt, feedback welcome
Time to create page: 0.067 seconds