Advanced Search

Search Results (Searched for: )

  • cmorley
  • cmorley
Yesterday 05:08
Replied by cmorley on topic Qtdragon_hd Zero button not zeroing

Qtdragon_hd Zero button not zeroing

Category: General LinuxCNC Questions

attachments didn't come though.
  • soehlrich
  • soehlrich
08 Jan 2026 04:20 - Yesterday 05:12
Qtdragon_hd Zero button not zeroing was created by soehlrich

Qtdragon_hd Zero button not zeroing

Category: General LinuxCNC Questions

 Hi,I have been using linxcnc 2.4 for quite some time and though it would be a good idea to upgrade to the latest qtdragon_hd version. I did a completely fresh install using LinuxCNC 2.9.8
Debian 13 Trixie PREEMPT-RT ISO

I am running a MESA 7176E board for the interface with step and direction ( using Teknic SDSK servos) so effectively open loop. The hal file is copied from my old configuration, so I know it worked. I have added any new items that were needed

I have managed to get everything working pretty much as before and axis all home correclty and the home co-ordinates are all set to 0. If I then jog the table to a position and press Zero on any of the Axis the G54 Cordinates are not zeroed. See attached pictures.

If I set a jog interval like 0.1mm then every jog increments the DRO by the correct amount and the DTI indicates the table move correct.Using the Offsets screen, if I set the G54 offset to the X axis position at shown for the G53 X axis then the G54 will indicate 0. If i then press Zero it goes to some small number.

Does anyone have any ideas ?

I have disabled all EOffsets.Any help great appreciated.

Thanks
  [attachment=73775]20260108_160616.jpg[/attachment]
 [attachment=73774]20260108_160046_2026-01-07.jpg[/attachment]
  • cnbbom
  • cnbbom
08 Jan 2026 03:46
Replied by cnbbom on topic New and Working RTAI debs for 2.9

New and Working RTAI debs for 2.9

Category: Installing LinuxCNC

Do you _need_ RTAI? What is your latency with preempt-rt?


 

I confess that RT version 2.92 worked well for me, even using LPT with around 25000 latency. However, when I saw Debian 13, I believed I could achieve the same result, but the latency is extremely high, reaching 150 on the same PC that had 25000 latency with Debian 12. That's when I tried RTAI and got these errors. I'm trying to find another PC following Tommylight's advice in an attempt to get some answers.
  • tommylight
  • tommylight's Avatar
08 Jan 2026 02:53 - 08 Jan 2026 02:55

A new finite-jerk (S-curve) trajectory planner for testing.

Category: LinuxCNC Announcements

Can you see: github.com/LinuxCNC/linuxcnc/actions/run...1121/job/59737821393 ?


Yes, this works.
-
Hovering over your links shows:
github.com/LinuxCNC/linuxcnc/actions/run...artifacts/5056097663
While opening them goes to
github.com/LinuxCNC/linuxcnc/suites/5379...artifacts/5056097663
None work, but removing some tailing does open correct sections for
github.com/LinuxCNC/linuxcnc/actions/runs/20798441121/
where the "artifacts" are listed but not clickable.
Edit
I am not logged in there, i do not have an account.
  • ihavenofish
  • ihavenofish
08 Jan 2026 02:20
  • andypugh
  • andypugh's Avatar
08 Jan 2026 01:41

A new finite-jerk (S-curve) trajectory planner for testing.

Category: LinuxCNC Announcements

They all work for me. I will have to try them at work tomorrow as the other-me to maybe see what is going on.

Can you see: github.com/LinuxCNC/linuxcnc/actions/run...1121/job/59737821393 ?
  • tommylight
  • tommylight's Avatar
08 Jan 2026 00:26

A new finite-jerk (S-curve) trajectory planner for testing.

Category: LinuxCNC Announcements

404 on all links on GitHub and 403 on the guinea pig.
  • andypugh
  • andypugh's Avatar
08 Jan 2026 00:05 - 08 Jan 2026 00:09

A new finite-jerk (S-curve) trajectory planner for testing.

Category: LinuxCNC Announcements

With many thanks to Grandixximo and 杨阳 we now have an experimental
S-curve / finite-jerk trajectory planner for testing.

For those that build from source just look for the new v2.10.0-pre1 tag.

Others can download debs from github for the next 90 days:
x86 / bookworm
x86 / trixie
ARM64 / bookworm
ARM64 / trixie

Make no mistake, this is experimental, there are no guarantees that
these won't break your machines. The first user already hit the hard
stops when homing (too-low max jerk setting)
With the jerk setting it is probably best to start high and reduce, as
infinite jerk is closer to current behavior.

If you run these you are volunteering to be a guinea-pig.

The docs have been updated, but here is the README original pull-request.

================================================================================
  LINUXCNC S-CURVE MOTION PLANNING - QUICK REFERENCE
================================================================================

OVERVIEW
S-curve motion planning provides smoother acceleration by limiting jerk
(the rate of change of acceleration). This can reduce machine vibration,
improve surface finish, and extend machine life.

STATUS: Optional feature, disabled by default for backward compatibility


ENABLING S-CURVE PLANNING
Add to [TRAJ] section of your INI file:

    PLANNER_TYPE = 1              # 0=trapezoidal (default), 1=S-curve
    MAX_LINEAR_JERK = 1000.0      # Units: machine-units/s^3
    DEFAULT_LINEAR_JERK = 500.0   # Default jerk for moves

Add to [JOINT_n] sections:

    MAX_JERK = 1000.0             # Per-joint jerk limit

Add to [AXIS_l] sections:

    MAX_JERK = 1000.0             # Per-axis jerk limit


CONSTANTS DEFINED
File: src/emc/nml_intf/emccfg.h

    DEFAULT_TRAJ_DEFAULT_JERK    = 0.0  (disabled)
    DEFAULT_TRAJ_MAX_JERK        = 0.0  (disabled)
    DEFAULT_TRAJ_PLANNER_TYPE    = 0    (trapezoidal)
    DEFAULT_JOINT_MAX_JERK       = 0.0  (disabled)
    DEFAULT_AXIS_MAX_JERK        = 0.0  (disabled)


BEHAVIOR
S-curve planning is ACTIVE when:
  - PLANNER_TYPE = 1, AND
  - MAX_LINEAR_JERK > 0

Trapezoidal planning is used when:
  - PLANNER_TYPE = 0, OR
  - MAX_LINEAR_JERK = 0 (or not specified)

Note: Setting MAX_JERK=0 with PLANNER_TYPE=1 reverts to trapezoidal
      for backward compatibility and easy testing.


HAL PINS ADDED
*** IMPORTANT: All trajectory-level HAL pins support RUNTIME changes! ***
You can switch between trapezoidal and S-curve planning on-the-fly
by connecting HAL signals to these pins.

Trajectory level (all support runtime modification):
  - ini.traj_default_jerk (IN, float)  - Can change while running
  - ini.traj_max_jerk (IN, float)      - Can change while running
  - ini.traj_planner_type (IN, s32)    - Can change while running (0 or 1)

Joint level (for each joint N):
  - ini.N.jerk (IN, float)             - Joint jerk limit
  - joint.N.jerk-cmd (OUT, float)      - Current commanded jerk

Axis level (for each axis L):
  - ini.L.jerk (IN, float)             - Axis jerk limit


TYPICAL VALUES
Units depend on your LINEAR_UNITS setting (mm or inch)

Light/rigid machines:     1,000 - 10,000 units/s^3
Medium machines:            100 -  1,000 units/s^3
Heavy/flexible machines:    100 -    500 units/s^3
Very rigid machines:     10,000 - 100,000 units/s^3

Rule of thumb: MAX_JERK ≈ 10-100 × MAX_ACCELERATION


TUNING PROCEDURE
1. Start with PLANNER_TYPE=0 (verify machine works normally)
2. Set PLANNER_TYPE=1, MAX_LINEAR_JERK=100 (very conservative)
3. Test simple moves (jog, MDI commands)
4. Gradually increase MAX_LINEAR_JERK by 2-3x steps
5. Monitor motor current, following errors, vibration
6. Find sweet spot: smooth motion without sluggishness
7. Test coordinated motion (G2/G3 arcs, 3D paths)


RUNTIME SWITCHING (Advanced Feature)
All trajectory jerk parameters can be changed while LinuxCNC is running!
This allows dynamic switching between planning modes.

EXAMPLE 1: Toggle button to switch planners
In your HAL file:

    # Create a toggle button
    net planner-toggle-btn pyvcp.scurve-enable => ini.traj_planner_type

    # When button=0: Trapezoidal
    # When button=1: S-curve

EXAMPLE 2: Automatic switching based on feedrate
In your HAL file:

    # Use motion.current-vel to switch planners
    # High speed = trapezoidal (faster), Low speed = S-curve (smoother)
    loadrt comp names=vel-compare
    addf vel-compare servo-thread

    setp vel-compare.in0 150.0  # Switch threshold (units/sec)
    net current-vel motion.current-vel => vel-compare.in1
    net use-scurve vel-compare.out => ini.traj_planner_type

EXAMPLE 3: MDI commands to change jerk on-the-fly
You can use halcmd in MDI or scripts:

    halcmd setp ini.traj_max_jerk 2000.0
    halcmd setp ini.traj_planner_type 1

EXAMPLE 4: Material-specific jerk settings
In PyVCP or custom GUI:

    <pyvcp>
      <labelframe text="Motion Profile">
        <radiobutton>
          <choices>["Wood (500)", "Aluminum (1500)", "Steel (2500)"]</choices>
          <halpin>"material-jerk"</halpin>
        </radiobutton>
      </labelframe>
    </pyvcp>

    # In HAL, use mux component to select jerk value
    # and connect to ini.traj_max_jerk

NOTES:
  - Changes take effect on the NEXT motion command
  - Safe to change during idle or between moves
  - Existing queued moves use old parameters
  - Great for A/B testing different jerk values


TROUBLESHOOTING
Q: No difference between PLANNER_TYPE=0 and PLANNER_TYPE=1?
A: Verify MAX_LINEAR_JERK > 0 and all joint/axis MAX_JERK > 0

Q: Motion is slower with S-curve?
A: Increase MAX_LINEAR_JERK value

Q: Following errors increased?
A: Decrease MAX_LINEAR_JERK or tune PID parameters

Q: Want to disable S-curve temporarily?
A: Set PLANNER_TYPE=0 (no need to change jerk values)


FILES MODIFIED
Core implementation:
  - src/emc/tp/sp_scurve.c           (NEW - S-curve algorithm)
  - src/emc/tp/sp_scurve.h           (NEW - S-curve header)
  - src/emc/motion/simple_tp.c       (dispatch to S-curve planner)
  - src/emc/motion/simple_tp.h       (add jerk support)

Motion control:
  - src/emc/motion/motion.h          (add jerk commands/status)
  - src/emc/motion/command.c         (handle jerk commands)
  - src/emc/motion/control.c         (jerk limiting in motion loop)
  - src/emc/motion/axis.c            (axis jerk limits)

INI file parsing:
  - src/emc/ini/initraj.cc           (parse TRAJ jerk params)
  - src/emc/ini/inijoint.cc          (parse JOINT jerk params)
  - src/emc/ini/iniaxis.cc           (parse AXIS jerk params)
  - src/emc/ini/inihal.cc            (HAL pin creation & updates)
  - src/emc/ini/inihal.hh            (HAL data structures)

Configuration:
  - src/emc/nml_intf/emccfg.h        (default constants)
  - lib/hallib/check_config.tcl      (INI validation)

Build system:
  - src/Makefile                     (add sp_scurve.o to build)
  - src/emc/motion-logger/Submakefile


EXAMPLE CONFIGURATIONS
See: configs/scurve_example.ini for complete examples


TESTING RECOMMENDATIONS
1. Air cut test programs with known good results
2. Compare surface finish: trapezoidal vs S-curve
3. Monitor following errors during complex paths
4. Check motor temperature (shouldn't increase significantly)
5. Listen for unusual vibrations or resonances
6. Measure cycle time differences


FOR DEVELOPERS
S-curve algorithm location: src/emc/tp/sp_scurve.c

Key function: simple_scurve_tp_update()
  - Called from simple_tp_update() when jerk > 0
  - Implements 7-segment S-curve profile
  - Updates position, velocity, acceleration, jerk

Integration points:
  - simple_tp.c: Planner selection based on max_jerk
  - axis.c: Apply axis jerk limits
  - control.c: Apply joint jerk limits
  - command.c: Process EMCMOT_SET_JERK commands


COMMUNITY TESTING
This feature is new and needs community testing. Please report:
  - Machine configuration (type, size, rigidity)
  - Jerk values that worked well
  - Any issues or unexpected behavior
  - Comparison to trapezoidal planning

Report to: LinuxCNC mailing list, forum or Discord
  • rodw
  • rodw's Avatar
07 Jan 2026 22:50
Replied by rodw on topic Installing ethercat repositories

Installing ethercat repositories

Category: EtherCAT

There are still some reasons why its necessary to build the Ethercat master from source which is pretty easy anyway. In that case, go to the etherlab site, get their source and read their instructions in the PDF instructions
etherlab.org/en_GB/ethercat

@NIckH, the Etherlab repository also hosts the latest Ethercat hal driver thanks to Scott Laird. So it is possible to install everything without building anything!
  • unknown
  • unknown
07 Jan 2026 21:51

RPi GPIO .hal and .ini from scratch, without hardware, should the GUI open?

Category: Basic Configuration

First thing I'd do is disable SPi if you haven't already.
Qtdragon and software step generation may not be the best combination, the RPi4 is not the most powerful.
For some reason you are missing a library as per "can not open shared library".
WORKINGDIRECTORY may not be correct either.
If you go to the big thread regarding the image, it's a sticky, there is a basic working config, that uses axis as the GUI. I would try working with that to begin with.
This a link to an index to the big thread.
forum.linuxcnc.org/38-general-linuxcnc-q...official-images-only
  • andypugh
  • andypugh's Avatar
07 Jan 2026 21:49
Replied by andypugh on topic New and Working RTAI debs for 2.9

New and Working RTAI debs for 2.9

Category: Installing LinuxCNC

Do you _need_ RTAI? What is your latency with preempt-rt?
  • strawberry.blondish
  • strawberry.blondish
07 Jan 2026 20:52

RPi GPIO .hal and .ini from scratch, without hardware, should the GUI open?

Category: Basic Configuration

Forgive me, these are my files that were supposed to be attached to my thread.

The demo .hal file using hal_pi_gpio:
 

File Attachment:

File Name: hal_pi_gpi...1-07.hal
File Size:2 KB


The instructions I translated into english to learn how to configure .hal file:
 

This browser does not support PDFs. Please download the PDF to view it: Download PDF



My personal .hal and .ini file:
 

File Attachment:

File Name: my-rpigpio...1-07.hal
File Size:3 KB
 

File Attachment:

File Name: my-rpigpio...1-07.ini
File Size:3 KB


My pinout:
 
 
  • NickH
  • NickH
07 Jan 2026 19:49
Replied by NickH on topic Installing ethercat repositories

Installing ethercat repositories

Category: EtherCAT

I stand corrected, and somewhat outdated!
  • tommylight
  • tommylight's Avatar
07 Jan 2026 19:47
Replied by tommylight on topic New and Working RTAI debs for 2.9

New and Working RTAI debs for 2.9

Category: Installing LinuxCNC

From your error report:
malloc(): unsorted double linked list corrupted
And the subsequent "segfault" (segmentation fault), both pointing at something wrong with memory or memory subsystem, but from experience, RTAI can and will report that sometimes on some hardware despite memory being OK.
Some tips:
-if the PC has more than one memory module, yank all but one out and test them one by one, see if it crashes
-if you have another PC, yank the HDD from this one and plug it on the other one, see if it crashes.
  • tommylight
  • tommylight's Avatar
07 Jan 2026 19:41
Replied by tommylight on topic Installing ethercat repositories

Installing ethercat repositories

Category: EtherCAT

It will not work from the downloaded ISO file.

It does work, RodW did a lot of work for that to work
forum.linuxcnc.org/ethercat/45336-etherc...-how-to-step-by-step
Displaying 46 - 60 out of 20376 results.
Time to create page: 0.210 seconds
Powered by Kunena Forum