Advanced Search

Search Results (Searched for: )

  • grandixximo
  • grandixximo's Avatar
Today 02:51 - Today 02:52
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I still get this at 100% feed override:

 

The ini file

 

File Attachment:

File Name: 7i96s-1kio.ini
File Size:7 KB


(I set ini.traj_planner_type =1 by hand before starting)

 




File Attachment:

File Name: pcw-torus-test.zip
File Size:17 KB


please see this, I have fixed the INI, we will fix code a bit so that we can support your original configuration as well, the issue was/is max_jerk in traj was set to 0, which is the default, but actually should not be allowed.
  • unknown
  • unknown
Today 02:41
Replied by unknown on topic Debian Trixie upgrade/install to 2.9.4

Debian Trixie upgrade/install to 2.9.4

Category: Installing LinuxCNC

Old mate was specifically asking about the RPi images, this is one of 2 threads where the subject was raised. And yeah I got a bit pissed.

After this comment:

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.


And to be quite honest I can't remember answering many threads (or even visiting other than to see if any RPi issues came up) in the last month or so as I've had other more pressing things to sort out.
  • PCW
  • PCW's Avatar
Today 02:25

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

Category: Driver Boards

Building  the bin files basically amounts to:

installing the Efinity too chain

unzipping the Mesa source for the particular card in to Efinitys project directory

Creating the desired pinout file for a particular configuration
(mainly a copy-past operation from existing pinout files)

adding the new pinout file to the project

including the new pinout file in the top level source

build

Note that I included the pinout source for the 7I95T  XY2-100 configuration
  • tommylight
  • tommylight's Avatar
Today 02:22
Replied by tommylight on topic Debian Trixie upgrade/install to 2.9.4

Debian Trixie upgrade/install to 2.9.4

Category: Installing LinuxCNC

You will need to boot from a USB on the PC you want to make an image of, any Linux should do, and use DD to make an image of the existing drive.
You need to be very careful with DD and exact naming of the input and output drive (named file in DD), and use fdisk to find out those exact names.
That is quite some steps and many ways to mess things up, subsequently end up with a useless system.
Only after you start dealing with all of the above you can know exactly how hard it is to advise anyone about it.
-
A bit easier way is to download and write to a USB CloneZilla, then boot from it and use the limited GUI included with it, again being careful when choosing the source and destination drives.
-
Both ways above will require having the same exact space as the source drive for the destination, or bigger.
  • PCW
  • PCW's Avatar
Today 02:18
Replied by PCW on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

I still get this at 100% feed override:

 

The ini file

 

File Attachment:

File Name: 7i96s-1kio.ini
File Size:7 KB


(I set ini.traj_planner_type =1 by hand before starting)
 
  • grandixximo
  • grandixximo's Avatar
Today 02:18
Replied by grandixximo on topic LinuxCNC S-Curve Accelerations

LinuxCNC S-Curve Accelerations

Category: General LinuxCNC Questions

@grandixximo

During further testing, I noticed the following:

A sudden drop in jerkiness during acceleration build-up and deceleration, and a jerk greater than zero where there should be no jerkiness (red circles).
Cause?
tp.c
line 2836
"int need_decel = (margin <= TP_POS_EPSILON) || (dx - moveL <= dlen2);"

A brief exceedance of the maximum jerk value when acceleration ends (blue circles).
Cause?
sp_curve.c
lines 490 to 499
"if ((deltaV < 0 && targetV < v && v + deltaV < targetV) ||
      (0 < deltaV && v < targetV && targetV < v + deltaV)) {
    //nextA = (targetV - v) / t;
    nextA = 2.0 * (targetV - v) / t - a;
    if(nextA >= maxA){
      nextA = maxA;
      targetV = (a + nextA) * t / 2.0;
    }
    //printf("############################  FIXED nextA to be:  %.14f \n", nextA);
    v = targetV;"


I cannot say what is incorrect in the previous calculations.

gruß
Rüdiger

 


Did you test this? you have a patch we can look at? YangYang said those are both necessary, did you see what happens if you remove/fix the code you referencing as the causes?

 
  • unknown
  • unknown
Today 02:07 - Today 02:36
Replied by unknown on topic Debian Trixie upgrade/install to 2.9.4

Debian Trixie upgrade/install to 2.9.4

Category: Installing LinuxCNC

Mate all I did was called you a newbie, if you take that as being called ignorant that's an issue you have to resolve within yourself. I can't decide which method\article is suited to your level of knowledge\ability\time you wish to invest, only you can make that decision. And if you really have an issue with the way I frame my answers the mods can always be called upon to sort the situation out.

I wasn't going to mention that double posting is frowned upon, but posting the same question in multiple topics is frowned upon.

Other than this thread, can you point me to 4 other instances you have come to the conclusion I have called you ignorant, even tho you yourself see an advantage to being ignorant.

TBH an image isn't created overnight, especially when you start with only some base scripts, have to decide what can be taken out and what can be left in. There is also working out what is need to be included and adding some extras that make some internals a little more convenient. Now this something I've been doing a a "one man" show. When I directly asked for help, guess how many responses I received, hear the birds chirping ? Less than that. Add on top of that since about November last year our housing situation has been up in the air. So at the moment I'm quite unsympathetic to how much time "you waste". And I made some pretty big fuck ups doing this.
Yes we did have a utility before to build the RPi Images. One issue was having to build an image for the 4 & 5 separately. Another was a having to config and build custom kernels for each image. Another was the images weren't able to be config using the more familiar Rpi tools. The tools that were supplied were dependent on the developer. So I thought a more "RPi like experience" could be a better option.And with Trixie becoming mainstream it seemed just about the right time. I'm not wanting a medal or anything like that but I just want to state that why you might of "wasted some time" I've put in many weeks, used a lot of data downloading packages, until I could get a caching proxy server working reliably, spent many hours searching the internet to work out how to do things, just keeping the splash screen between when installing took a lot of work, mainly because what was documented wasn't so, as well as the method of customisation of the desktop background and keeping it that way had changed due to some undocumented changes in XFCE itself. What worked in debian versions from bookworm back just didn't work in Trixie.

I've got a github page that is purely aimed at reporting issues with the images, so that there is a central repo for issues. I did try something similar with the last batch......but it didn't quite as well as I thought. So I thought another way might be better to save time for all concerned.

Since there are literally hundreds of articles and forum posts regarding cloning hard drives and cloning SD cards, written far more eloquently than I could achieve, I thought I'd give a suggestion in the terms to search for. If I could of remembered the utility I used a few years ago I would have pointed you in that direction.
  • suraj9735
  • suraj9735's Avatar
Today 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
Today 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
Today 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
Today 01:30 - Today 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
Today 01:24
  • PCW
  • PCW's Avatar
Today 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
Today 01:19 - Today 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
Today 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 ?
Displaying 1 - 15 out of 281898 results.
Time to create page: 1.622 seconds
Powered by Kunena Forum