Advanced Search

Search Results (Searched for: )

  • endian
  • endian's Avatar
Today 18:36 - Today 18:44
Replied by endian 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);
  • minerva
  • minerva
Today 17:43

looking to tweak a working system for more accuracy

Category: Basic Configuration

You're absolutely right—whether you use metric or imperial, the key is the machine's mechanical condition and calibration. Since an inch is defined as 25.4mm, the choice of system doesn't inherently affect accuracy, as long as everything is properly calibrated, ideally through a NIST-certified facility.Microstepping is great for smooth motion but, as you mentioned, it doesn't guarantee linearity. The lead screw's accuracy, whether rolled or ground, and potential mapping for position errors are critical factors. Thermal expansion and material differences also play a role, especially at high precision.Starting with a thorough mechanical assessment of the machine is definitely the right move. Testing linearity and understanding the machine's baseline will help set realistic expectations. From there, progressive adjustments and testing will guide improvements. It’s a meticulous process, but your approach is spot on!
  • minerva
  • minerva
Today 17:42
Replied by minerva on topic wifi adapters

wifi adapters

Category: Advanced Configuration

It sounds like you’ve made a solid upgrade to your WiFi setup on your Dell Optiplex 960! Sticking with LinuxCNC 2.7.15 can be tricky for modern hardware, but the BrosTrend AC1200 adapter seems to have been a great choice. Following their driver instructions and getting support to identify the correct driver family clearly paid off, especially with that jump to 240 Mbps—huge improvement over 16 Mbps!

The speed difference between front and rear USB ports is likely due to power or USB version differences. Front ports might be USB 2.0 or better powered, while rear ports could be older or shared with other devices. Great job troubleshooting and boosting your network performance!
  • Nkbhvid
  • Nkbhvid
Today 17:01
Replied by Nkbhvid on topic Linuxcnc 2.9.4 and Mesa 7i97T

Linuxcnc 2.9.4 and Mesa 7i97T

Category: Installing LinuxCNC

Again -thanks for life-saving support on this issue
I have now a mesa 7i97T connected to my Linuxcnc and according to mesaCT everything seems to be ok.

Now I'm ready for the next chapter:
Configuring Linuxcnc for the analog setup with my Rexroth ECOdrive.
The plan is to let the ECOdrive make the encoder loop between drive and motor encoder, and not loop back to LinuxCNC due to the lack of encoder signals hand over from ECOdrive.
So, is there any directions or previous discussions about this topic here in the Forum?
  • OttoDidact
  • OttoDidact's Avatar
Today 17:00
Replied by OttoDidact on topic Mini PC for LinuxCNC/CPU Realtime Performance

Mini PC for LinuxCNC/CPU Realtime Performance

Category: Computers and Hardware

I just watched your YouTube video on reducing latency.

People were talking about isolating cores, and I think that your PC has 8 cores, not 7. Counting from zero gives you 8.

Could this be causing mischief with isolation?

Good video, that grub editor is good to know about.
  • COFHAL
  • COFHAL
Today 16:59

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

Category: Driver Boards

I try this bot with the command ls -l /dev/io_decoder show this error
ls: cannot access '/dev/io_decoder': No such file or directory
  • Aciera
  • Aciera's Avatar
Today 16:03
Replied by Aciera 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.
  • Mark Kraus
  • Mark Kraus
Today 15:51

There seems to be a mistake in this pinout I found.

Category: General LinuxCNC Questions

Still have no clue what could be wrong.  The at speed light comes on but nothing in halshow.  Could someone please guide me?

 
  • spumco
  • spumco
Today 15:41
Replied by spumco on topic Which Mesa Card Should I Buy?

Which Mesa Card Should I Buy?

Category: Driver Boards

im newbie, and think need update my cnc machine whit mesa card, but true not understand and know what card need order, and totally not understand how flash firmware to card, if need flash. 

If you still have questions after reading the first nine posts of this thread, please start a new thread to address your specific needs.
  • Aciera
  • Aciera's Avatar
Today 15:36 - Today 15:38
Replied by Aciera 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:

 

here is my ini file:
Warning: Spoiler!


What am I missing?
  • PCW
  • PCW's Avatar
Today 15:28
Replied by PCW on topic 7i92M + 7i76 add PWM+PktUART

7i92M + 7i76 add PWM+PktUART

Category: Driver Boards

Unfortunately the 7I76U uses a complete different processor
with different firmware memory layout so I expect the only way
to recover is with a (newer) PIC programmer.
  • DemonClaW
  • DemonClaW
Today 14:13
Replied by DemonClaW on topic Generating a own Popup

Generating a own Popup

Category: Qtvcp

The look itself took me about 2 days. Functions and Configuration 2-3days again.
  • SOLD
  • SOLD
Today 12:47 - Today 12:49
Replied by SOLD on topic 7i92M + 7i76 add PWM+PktUART

7i92M + 7i76 add PWM+PktUART

Category: Driver Boards

Hello PCW,
I would like to ask for guidance regarding a firmware issue with a Mesa 7i92 + 7i76 system, and clarify the exact sequence of events.
LinuxCNC reported the following warning:
hm2/hm2_7i92.0: Warning: sserial remote device 7i76 channel 0 has old firmware that should be updated
Based on this warning, I attempted to update the Smart-Serial firmware.
At that time, I assumed that 7I76U.BIN could be used as a compatible replacement and used it to update the 7i76. This was a deliberate decision made in response to the hm2 warning, not an accidental flash.
After this, the system no longer behaves as expected.
Current status:
7i92 Ethernet communication works normally.
The Smart-Serial port responds and reports SSLBP version, channel count, and baud rate.
I reflashed with 7i92_7i76x1D.bit, followed by a full power cycle.
The W3 jumper on the 7i76 has been changed as recommended.
Attempting to rewrite 7I76R14.BIN via mesaflash produces no errors, however there is no explicit indication that a firmware rewrite actually occurred, and the observable behavior of the board does not change.

Is there any supported recovery method for a 7i76 in this condition, assuming access to a working Smart-Serial master (7i92)?
cnc@cnc:~/Desktop/UP FW7i77/sserial/utils/linuxcnc$ cd "/home/cnc/Desktop/UP FW7i77/sserial/utils/linuxcnc"
halrun -f update7i76u-eth.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
hm2_eth: 10.10.10.10: INFO: Hardware address (MAC): 00:60:1b:13:05:8a
hm2_eth: discovered 7I92
hm2/hm2_7i92.0: Low Level init 0.15
hm2/hm2_7i92.0: Smart Serial Firmware Version 43
hm2/hm2_7i92.0: num_channels = 4
hm2/hm2_7i92.0: Chan 0 baudrate = 2500000
hm2/hm2_7i92.0: Chan 0. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 1 baudrate = 2500000
hm2/hm2_7i92.0: Chan 1. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 2 baudrate = 2500000
hm2/hm2_7i92.0: Chan 2. Baudrate set to 115200
hm2/hm2_7i92.0: Chan 3 baudrate = 2500000
hm2/hm2_7i92.0: Chan 3. Baudrate set to 115200
Setup mode
found a 7I76
Setup mode
Looking for 8i20s, crc_addr = 192
found a     
Setup mode
Looking for 8i20s, crc_addr = 242
found a     
Setup mode
Looking for 8i20s, crc_addr = 292
found a     
hm2/hm2_7i92.0: 34 I/O Pins used:
hm2/hm2_7i92.0:     IO Pin 000 (P2-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 001 (P2-14): StepGen #0, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 002 (P2-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 003 (P2-15): StepGen #1, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 004 (P2-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 005 (P2-16): StepGen #2, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 006 (P2-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 007 (P2-17): StepGen #3, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 008 (P2-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 009 (P2-06): StepGen #4, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 010 (P2-07): Smart Serial Interface #0, pin tx0 (Output)
hm2/hm2_7i92.0:     IO Pin 011 (P2-08): Smart Serial Interface #0, pin rx0 (Input)
hm2/hm2_7i92.0:     IO Pin 012 (P2-09): Smart Serial Interface #0, pin tx1 (Output)
hm2/hm2_7i92.0:     IO Pin 013 (P2-10): Smart Serial Interface #0, pin rx1 (Input)
hm2/hm2_7i92.0:     IO Pin 014 (P2-11): Encoder #0, pin Index (Input)
hm2/hm2_7i92.0:     IO Pin 015 (P2-12): Encoder #0, pin B (Input)
hm2/hm2_7i92.0:     IO Pin 016 (P2-13): Encoder #0, pin A (Input)
hm2/hm2_7i92.0:     IO Pin 017 (P1-01): StepGen #5, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 018 (P1-14): StepGen #5, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 019 (P1-02): StepGen #6, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 020 (P1-15): StepGen #6, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 021 (P1-03): StepGen #7, pin Direction (Output)
hm2/hm2_7i92.0:     IO Pin 022 (P1-16): StepGen #7, pin Step (Output)
hm2/hm2_7i92.0:     IO Pin 023 (P1-04): PWMGen #0, pin Out1 (Dir or Down) (Output)
hm2/hm2_7i92.0:     IO Pin 024 (P1-17): PWMGen #0, pin Out0 (PWM or Up) (Output)
hm2/hm2_7i92.0:     IO Pin 025 (P1-05): PWMGen #1, pin Out1 (Dir or Down) (Output)
hm2/hm2_7i92.0:     IO Pin 026 (P1-06): PWMGen #1, pin Out0 (PWM or Up) (Output)
hm2/hm2_7i92.0:     IO Pin 027 (P1-07): Smart Serial Interface #0, pin tx2 (Output)
hm2/hm2_7i92.0:     IO Pin 028 (P1-08): Smart Serial Interface #0, pin rx2 (Input)
hm2/hm2_7i92.0:     IO Pin 029 (P1-09): Smart Serial Interface #0, pin tx3 (Output)
hm2/hm2_7i92.0:     IO Pin 030 (P1-10): Smart Serial Interface #0, pin rx3 (Input)
hm2/hm2_7i92.0:     IO Pin 031 (P1-11): Encoder #1, pin Index (Input)
hm2/hm2_7i92.0:     IO Pin 032 (P1-12): Encoder #1, pin B (Input)
hm2/hm2_7i92.0:     IO Pin 033 (P1-13): Encoder #1, pin A (Input)
hm2/hm2_7i92.0: registered
flash command
Firmware size 0x953c
setup start: data_reg readback = 0
hm2/hm2_7i92.0: Write Size = 100, Erase Size = 800
hm2/hm2_7i92.0: Skipped Block 1
hm2/hm2_7i92.0: Skipped Block 2
hm2/hm2_7i92.0: Skipped Block 3
hm2/hm2_7i92.0: Skipped Block 4
hm2/hm2_7i92.0: Skipped Block 5
hm2/hm2_7i92.0: Skipped Block 6
hm2/hm2_7i92.0: Skipped Block 7
hm2/hm2_7i92.0: Erased block 8
hm2/hm2_7i92.0: Wrote block 8
hm2/hm2_7i92.0: Skipped Block 9
hm2/hm2_7i92.0: Erased block 10
hm2/hm2_7i92.0: Wrote block 10
hm2/hm2_7i92.0: Erased block 11
hm2/hm2_7i92.0: Wrote block 11
hm2/hm2_7i92.0: Erased block 12
hm2/hm2_7i92.0: Wrote block 12
hm2/hm2_7i92.0: Erased block 13
hm2/hm2_7i92.0: Wrote block 13
hm2/hm2_7i92.0: Erased block 14
hm2/hm2_7i92.0: Wrote block 14
hm2/hm2_7i92.0: Erased block 15
hm2/hm2_7i92.0: Wrote block 15
Error flag set after CMD Clear 00000001
hm2/hm2_7i92.0: Error in sslbp_write_byte, trying to abort
Error flag set after CMD Clear 00000001
hm2/hm2_7i92.0: Error in sslbp_read_cookie, trying to abort
hm2/hm2_7i92.0: Synch failed during block erase: aborting
Error flag set after CMD Clear 00000001
Firmware Flash Failed
setsserial: rtapi_app_main: Operation not permitted (-1)
setsserial: not loaded
<commandline>:0: exit value: 255
<commandline>:0: rmmod failed, returned -1
hm2_eth: in hm2_eth_reset
hm2_eth: HostMot2 ethernet driver unloaded
hm2: unloading
<commandline>:0: unloadrt failed
Note: Using POSIX realtime
cnc@cnc:~/Desktop/UP FW7i77/sserial/utils/linuxcnc$
  • unknown
  • unknown
Today 12:46
Replied by unknown on topic Mini PC for LinuxCNC/CPU Realtime Performance

Mini PC for LinuxCNC/CPU Realtime Performance

Category: Computers and Hardware

With Mesa cards latency isn't such as issue as with using the Parallel port. I think the rule of thumb is under 100000ns is good for a mesa card, for about 99% of uses, cos I know someone will have an example that breaks the rule of thumb. Or my numbers may be wrong.
Unlike one forum I can think of we dont have p*$##&€ contests. ;)
If it works and does the job reliably that's the goal.
Displaying 1 - 15 out of 19827 results.
Time to create page: 0.362 seconds
Powered by Kunena Forum