So if I am understanding you correctly if I get something back on stepgen feedback that is a committment from the MESA card to have sent the pulses to the servo to do that thing..
So if we look at the following raw data from the scope of a movement
Code:
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -56.00000000000000 hm2_7i76e.0.stepgen.00.position-fb -0.00680662536621 <-- No move
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.99995833333332 hm2_7i76e.0.stepgen.00.position-fb -0.00680662536621 <-- Start command move
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.99962499999998 hm2_7i76e.0.stepgen.00.position-fb -0.00677217102051 <-- StepGen has started the move
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.99858333333333 hm2_7i76e.0.stepgen.00.position-fb -0.00648828125000
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.99658333333332 hm2_7i76e.0.stepgen.00.position-fb -0.00556071472168
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.99358333333333 hm2_7i76e.0.stepgen.00.position-fb -0.00367330932617
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.98958333333331 hm2_7i76e.0.stepgen.00.position-fb -0.00051603698730
hm2_7i76e.0.encoder.02.position -56.00000000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.98458333333332 hm2_7i76e.0.stepgen.00.position-fb +0.00387779235840
hm2_7i76e.0.encoder.02.position -55.99950000000000 hm2_7i76e.0.stepgen.00.position-cmd -55.97858333333335 hm2_7i76e.0.stepgen.00.position-fb +0.00952809143066 <-- Encoder has responded with movement
That its less than 1ms (one sample period) request to MESA card issuing pulses, but that it is an additional 5~6 samples (at 1ms each) for the encoder to respond that it is moving..
So I really are hunting for 4 to 5 ms between the MESA card and the servo... The issue could be in the issuance of the move command to the physical servo, or it could be in the read/process time for the encoder signal.. either way.. there is a lag somewhere in those settings..