Refreshing the LCNC visual documentation, an attempt, feedback welcome

More
03 Aug 2026 19:43 #348425 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
The following user(s) said Thank You: tommylight, onceloved, NWE

Please Log in or Create an account to join the conversation.

More
03 Aug 2026 21:55 #348428 by andypugh
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

Please Log in or Create an account to join the conversation.

Time to create page: 0.070 seconds
Powered by Kunena Forum