Advanced Search

Search Results (Searched for: )

  • suraj9735
  • suraj9735's Avatar
29 Jan 2026 01:46

Adding external switch for emergency stop and feed override

Category: Basic Configuration

Hello PCW,

Can you explain more wiring of encoder pin of 7i95 with analog voltage supply from LabVIEW hardware. In my knowledge, encoder pin of 7i95 is a digital pin and we can not connect with an analog input power supply pin?

I am ok with buying a new 7i73 daughter card if this is not possible with 7i95 card alone. Give some more guidance on how to connect 7i73 card with 7i95 card and the piece of code need to be written in .ini and .hal file
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:43
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

@endian I discussed this with YangYang who attends the EtherCAT consortium meetings. AitalMAC is part of the consortium and we design I/O for EtherCAT, so we're not guessing here.
The standard already solves this problem. You don't need pos(t+1).
The 1 cycle delay is real, but it's identical for all axes. With Distributed Clocks everything executes on the same SYNC edge, synchronized to ~100ns. Every axis is "late" by the same amount, so the path shape is correct. Calculate it last week, execute it this week, the part is the same.
The CiA 402 standard provides feedforward objects exactly for this: 0x60B1 (velocity offset) and 0x60B2 (torque offset). The master can send position plus velocity feedforward so the drive can anticipate acceleration. This is the standard's solution, it just needs to be mapped in lcec.
Also, good drives interpolate internally. The servo loop runs faster than the bus cycle (Maxon runs 0.4ms internal vs 1ms bus). The drive doesn't jump between positions, it interpolates. That's what 0x60C2 configures.
If you're seeing ferror correlate with velocity in halscope, that's likely a display artifact. The ferror compares "commanded from 1 cycle ago" with "actual now", so it shows an offset proportional to velocity. It's not a real machining error.
What does your actual part surface look like? Any real deviation you can measure?
 
I think not every hardware has 0x60B1:01 in the accessible PDOs and not everyone can use unsynchronized SDO to change during OP ... therefore I am high-lighing it before job is done ... I have working with 16 different brands of servodrivers based on ethercat and just one it has(nidec control techniques) ... What I know from TC3 this is solved by NC stuff computing for the each single axis ... 

I do not want to talk about ethercat here .. we have separate space, but in reality it is lagging 2cycles because at hardare layer it writes command first and then it reads the slave status... then next cycle it write command by last status and then cycle it reach real status datas ... (Martin Rostan (Chairman ETG group) - when I was with him at last time at conference in Bratislava)

SDO 0x60C2 is configuring the timing of internal stuff of interpolationn of synchronized movement by subindex 01 and 02 .. most drivers it has to have it at same time of master command tick but we knows some which do not as Beckhoff AX5 series 

I am at second computer and I will update picture later this weel but during movement in 15m/s it can produce lag of 0.2mm with timing 250us ... which sound terrible 0

I did compensation component which add posCmd = position command + compensation during vcommand != 0 and every lag was gone ... it was purely for testing but solution is clear
positionOutputCompensated = positionOutput;
            
            if(fabs(vel_cmd) > 0.001)
            {
                double leadCycleLocal = lead_cycles;
                
                const double Ts = periodTime;
                const int    L  = (leadCycleLocal < 1) ? 1 : leadCycleLocal;
                const double LTs = (double)L * Ts;
                

                
                double lead = (vel_cmd * LTs) + (0.5 * acc_cmd * LTs * LTs);
                
                double ferr;
                ferr = (positionOutput - pos_fb_from_incremental);
                
                double comp = (kff * lead) + (k_err * ferr);
                posCompensation = comp;
            
                if(fabs(ferr) > fabs(fErrorOld) || fTopError == 0.0)
                {
                    fErrorOld = ferr;
                    fTopError = fErrorOld;
                }
            }
            else
            {
                posCompensation = 0;
            }
        
        positionOutputCompensated = positionOutput + posCompensation;
        
        if(ui_delayFinal > 0)
        {
            positionOutputCompensated = positionOutput;
            ui_delayFinal--;
        }
        
        //drv_target_position_incremental = (int32_t)(positionOutput * pos_scale * incremental_pos_scale);

        drv_target_position_incremental = (int32_t)(positionOutputCompensated * pos_scale * incremental_pos_scale);
 

 I think I understand better now, good to know this issue exists. When I get to Phase 5 testing at 250µs, I might see this show up as following error that isn't the planner's fault.I will bookmark this for later, is you compensation component available to test with?
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:35
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I had the same things happining a while ago when I tested Michels s curve. In the end theese (exactly like your situations) were just "calculation errors" and he solved it by adding allowed dwviations. Pos_out got a allowed deviation of 1e-4 I think.

Like you see in my pictures he had imperfections too. Michels s curve code tested outside linuxcnc when I implemend s curve backlash compensation as a proof of concept.
 

G-code? config folder?
  • COFHAL
  • COFHAL
29 Jan 2026 01:30 - 29 Jan 2026 01:31
Replied by COFHAL on topic Debian Trixie upgrade/install to 2.9.4

Debian Trixie upgrade/install to 2.9.4

Category: Installing LinuxCNC

Thank you for your response, and also for your subtle sarcasm in calling me ignorant every time I comment or ask for help in the threads you also participate in. But I think it's better to be considered ignorant than to learn nothing, even if you're treated like garbage. What I'm trying to figure out is how to create an .img file of my hard drive's contents without having to reinstall applications that aren't included in the .img file, like the one you created for the Raspberry Pi 4 with Debian 13, which I've already installed on four Pi 4s. After installation, I add other applications and compile some components that aren't included in the official LCN version, and doing all that every time I install the image you created wastes a lot of my time.
  • micklethenickel
  • micklethenickel
29 Jan 2026 01:24
  • PCW
  • PCW's Avatar
29 Jan 2026 01:19

Using Mesa 7i95T for laser + galvo (xy2-100) control

Category: Driver Boards

7I95T configuration with last two stepgens replaced with XY2-100 galvanometer outputs
and serial 0 RX replaced with XY2-100 Status


 

File Attachment:

File Name: 7i95t_xymodd.zip
File Size:281 KB

 
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:19 - 29 Jan 2026 01:20
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

A word of caution to anyone testing the new planner on real hardware:

I would strongly recommend to NOT activate the new planner in the ini file.
I dropped my homing velocities to 20% and my real hardware setup still runs into the hard stops on homing.

Users should leave ini.planner_type = 0, home the machine and use halshow to set ini.planner_type = 1.


Try with max_jerk and default_jerk to 10000 or more, 1000 was more for showcasing the curves, not to run on actual hardware, already planning to change the showcase ini to 10000 
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:17
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I've been trying to test this on real hardware using Mesa but I cannot seem to get the new planner to work at all.

- [TRAJ] section has 'MAX_LINEAR_JERK = 1000.0'
- both [JOINT_0] and [JOINT_1] have 'MAX_JERK = 1000.0'
- ini.planner_type = 1



Yet running this code in G61.1 mode
G21
F5000
G0 x0 y0
g1 x20
y20
x0
y0
m2


I get this:

 [attachment=74126]Screenshot from 2026-01-27 10-31-48.png[/attachment]

here is my ini file:
[spoiler]
# This file was updated with the Mesa Configuration Tool on Nov 25 2025 13:43:50
# Changes to most things are ok and will be read by the Configuration Tool

[MESA]
VERSION = 2.1.8
BOARD = 7i95
BOARD_NAME = 7i95t

[EMC]
VERSION = 1.1
MACHINE = test_setup
DEBUG = 0x00000000

[HM2]
DRIVER = hm2_eth
ADDRESS = 192.168.1.121

[DISPLAY]
DISPLAY = axis
PROGRAM_PREFIX = ./nc_files
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
MIN_LINEAR_VELOCITY = 0.0
DEFAULT_LINEAR_VELOCITY = 150.0
MAX_LINEAR_VELOCITY = 300.0
CYCLE_TIME = 0.1
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 0
OPEN_FILE = ./square.ngc
EDITOR = gedit
DEFAULT_ANGULAR_VELOCITY = 18000
MAX_ANGULAR_VELOCITY = 36000
MIN_ANGULAR_VELOCITY = 1

[KINS]
KINEMATICS = trivkins
JOINTS = 2

[EMCIO]
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[RS274NGC]
PARAMETER_FILE = parameters.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[TRAJ]
COORDINATES = XY
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 200.0
PLANNER_TYPE = 1
MAX_LINEAR_JERK = 1000.0
DEFAULT_LINEAR_JERK = 500.0

[HAL]
HALFILE = main.hal

[AXIS_X]
MIN_LIMIT = 0
MAX_LIMIT = 300
MAX_VELOCITY = 300
MAX_ACCELERATION = 800

[JOINT_0]
CARD = 0
MIN_LIMIT = 0
MAX_LIMIT = 300
MAX_VELOCITY = 300
MAX_ACCELERATION = 800
MAX_JERK = 1000.0

TYPE = LINEAR
SCALE = 252.65
STEPGEN_MAX_VEL = 360.00
STEPGEN_MAX_ACC = 960.00
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 4000
STEPSPACE = 4000
ENCODER_SCALE = 200
FERROR = 1.5
MIN_FERROR = 0.25
DEADBAND = 0.01
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME_OFFSET = -0.75
HOME = 0
HOME_SEARCH_VEL = -5
HOME_LATCH_VEL = -5
HOME_FINAL_VEL = 2.5
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0

[AXIS_Y]
MIN_LIMIT = 0
MAX_LIMIT = 300
MAX_VELOCITY = 300
MAX_ACCELERATION = 800

[JOINT_1]
CARD = 0
MIN_LIMIT = 0
MAX_LIMIT = 300
MAX_VELOCITY = 300
MAX_ACCELERATION = 800
MAX_JERK = 1000.0
TYPE = LINEAR
SCALE = 252.65
STEPGEN_MAX_VEL = 360.00
STEPGEN_MAX_ACC = 960.00
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 4000
STEPSPACE = 4000
ENCODER_SCALE = 200
FERROR = 1.5
MIN_FERROR = 0.25
DEADBAND = 0.01
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME_OFFSET = 0.25
HOME = 0
HOME_SEARCH_VEL = -5
HOME_LATCH_VEL = -5
HOME_FINAL_VEL = 2.5
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
[/spoiler]

What am I missing?
 

Axis Max Jerk ?
  • unknown
  • unknown
29 Jan 2026 01:13 - 29 Jan 2026 01:15

Solving the USB Latency Dogma for HMI/MPG: Technical Feedback Request

Category: Driver Boards

So.....you are wanting testers for a closed source hardware project ;)
What's in it for the testers ? :)

USB Stability & Real-Time Thread I’m well aware that USB isn't for the Servo Thread. 

What thread will it run in ? And you suggesting another thread to add to a config ? What period would this be run at ?
How would that affect a config that has a base thread (for software step gen) and a servo thread for other functions ?
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:13 - 29 Jan 2026 01:37
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

A word of caution to anyone testing the new planner on real hardware:

I would strongly recommend to NOT activate the new planner in the ini file.
I dropped my homing velocities to 20% and my real hardware setup still runs into the hard stops on homing.

Users should leave ini.planner_type = 0, home the machine and use halshow to set ini.planner_type = 1.
 

I would echo this warning for the latest master changes

1. Jerk does not seem to be limited nor acceleration:

 

2. Commanded position may take off on random tangents"

 

 


 



Do you think this is related to the 0000% feed override? how many multipliers of feed override have you set?

I tested with my configuration can complete torus no problem but I only did 200%

can you zip your config folder? I also don't use inches, that could be a factor.
  • unknown
  • unknown
29 Jan 2026 01:08
Replied by unknown on topic Debian Trixie upgrade/install to 2.9.4

Debian Trixie upgrade/install to 2.9.4

Category: Installing LinuxCNC

Google "linux clone hdd"

And choose your poison, the subject is a bit expansive, and it's not something I'd like to describe to a newbie. There are many many ways to do this.

You can also use debian's preseed config to install extra apps.

Once again google "debian preseed" and you will have a clean install without any fluff.
  • grandixximo
  • grandixximo's Avatar
29 Jan 2026 01:07
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

Please share a zip of entire configuration, so I can reproduce what you are seeing on my end, thank you
  • phino
  • phino
29 Jan 2026 01:05

Using Mesa 7i95T for laser + galvo (xy2-100) control

Category: Driver Boards

Do you need the galvo status?

Would be great to have firmware for both option. Thanks for making the firmware!

Are there instructions somewhere for building the firmware for oneself?
  • COFHAL
  • COFHAL
29 Jan 2026 00:56

Experimental raspios Linuxcnc Trixie images.

Category: Installing LinuxCNC

How do I create an image of the contents of one hard drive to install it on another? This is to avoid having to reinstall the additional applications I use with LCN.
Displaying 76 - 90 out of 19812 results.
Time to create page: 0.331 seconds
Powered by Kunena Forum