Unexpected Realtime Delay on task 0....

More
5 years 1 month ago #221723 by mundele
Tried two separate dongles and could never get them working. In the process i uninstalled WICD and installed network-manager. Much better. I was able to script nmcli to swap networks via a shell script. Still using the switchbox.

In the process I removed that /etc/network/interfaces section that held the IRQ change.. Still seems to be fast ping-wise and latency wise although I'm still getting the error

My Z acts funky too. maybe my step rate is wrong or ? it does the herky jerky thing (X and Y are much better now) and often will overshoot the max endstop. I get Z Following Errors a lot too.

here's the INI:
[EMC]
MACHINE = printnc
DEBUG = 0
VERSION = 1.1

[DISPLAY]
DISPLAY = gmoccapy

POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 2.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = .1
PROGRAM_PREFIX = /home/matthew/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm 1in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 6.000000
MAX_LINEAR_VELOCITY = 25.000000
MIN_LINEAR_VELOCITY = 0.500000
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
EDITOR = gedit
GEOMETRY = xyz

[MACROS]
MACRO = mjt_test

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var
SUBROUTINE_PATH = macros

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

[HMOT]
# **** This is for info only ****
CARD0=hm2_7i96.0

[HAL]
HALUI = halui
HALFILE = printnc.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal

[HALUI]

[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ

[TRAJ]
# Below numbers set the sliders, are machine units per minute (GMOCCAPY). Others use Machine Units per Second. Sheesh
COORDINATES = X Y Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 18.33
MAX_LINEAR_VELOCITY = 184
POSITION_FILE = position.txt

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1

#NOTE:
# Joint Velocity and Accel take effect before homing, Axis after. Both in mm/sec (or mm/sec squared). Had 750 prior.
# MIN/MAX AXIS limits are the limits to range of motion after homing, JOINT values of same are limits before homing. exceeding aborts motion
# 400
[AXIS_X]
MAX_VELOCITY = 184
MAX_ACCELERATION = 800
MIN_LIMIT = -5
MAX_LIMIT = 987


[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 184
MAX_ACCELERATION = 800
MIN_LIMIT = -5
MAX_LIMIT = 987

# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 229.17
STEPGEN_MAXACCEL = 1000
P = 910.42592456
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 3500
STEPSPACE = 3500
STEP_SCALE = 100
BACKLASH = 0.0

HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = -20.000000
HOME_LATCH_VEL = -5.00000
HOME_FINAL_VEL = 20.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
#******************************************

#****************************************** 400
[AXIS_Y]
MAX_VELOCITY = 184
MAX_ACCELERATION = 800
MIN_LIMIT = -5
MAX_LIMIT = 597

[JOINT_1]
TYPE = LINEAR
HOME = 0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 184
MAX_ACCELERATION = 800
MIN_LIMIT = -5
MAX_LIMIT = 597

# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 229.17
STEPGEN_MAXACCEL = 1000
P = 910.42592456
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 3500
STEPSPACE = 3500
STEP_SCALE = 100
BACKLASH = 0.0

HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = -20.00000
HOME_LATCH_VEL = -3.00000
HOME_FINAL_VEL = 50.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -2


[JOINT_2]
TYPE = LINEAR
HOME = 0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 184
MAX_ACCELERATION = 800
MIN_LIMIT = -5
MAX_LIMIT = 597

# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 229.17
STEPGEN_MAXACCEL = 1000
P = 910.42592456
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 3500
STEPSPACE = 3500
STEP_SCALE = 100
BACKLASH = 0.0

HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = -20.00000
HOME_LATCH_VEL = -3.00000
HOME_FINAL_VEL = 50.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -2
#******************************************

#******************************************
[AXIS_Z]
MAX_VELOCITY = 74
MAX_ACCELERATION = 320
MIN_LIMIT = -130
MAX_LIMIT = 10

[JOINT_3]
TYPE = LINEAR
HOME = 0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 74
MAX_ACCELERATION = 320
MIN_LIMIT = -130
MAX_LIMIT = 10

# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 91.67
STEPGEN_MAXACCEL = 400
P = 910.42592456
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 0.0
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 3500
STEPSPACE = 3500
STEP_SCALE = 100.0

BACKLASH = 0.0

HOME_OFFSET = 10.000000
HOME_SEARCH_VEL = 10
HOME_LATCH_VEL = 5
HOME_FINAL_VEL = -20
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
#******************************************

[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000


and Here's HAL:
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx"
setp hm2_7i96.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.y2,pid.z,pid.s


# mjt debounce -- Using default config from some random webpage "using debounce"
# cfg 2 means 1 debounce group with 2 filters. (one for each channel)
# delay is how many thread cycles the input has to be in the right state to "stick". < 2 takes no effect. Trying 100 for now...
# Must also change all signals to map into/out of debounce.0.0 and etc. rather than use the pin directly.

#loadrt debounce cfg=2
#setp debounce.0.delay 200
#addf debounce.0 servo-thread

#net min-home-y-raw => debounce.0.0.in
#net min-home-y2-raw => debounce.0.1.in
#net min-home-y <= debounce.0.0.out
#net min-home-y2 <= debounce.0.1.out


addf hm2_7i96.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.y2.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_7i96.0.write servo-thread

# external output signals


# external input signals

# --- MIN-HOME-X --- Added max
net min-home-x <= hm2_7i96.0.gpio.000.in_not
net max-home-x <= hm2_7i96.0.gpio.001.in_not

# --- MIN-HOME-Y ---
# debounced...
net min-home-y <= hm2_7i96.0.gpio.002.in_not
#net min-home-y-raw <= hm2_7i96.0.gpio.002.in_not

# --- MIN-HOME-Y2 ---
# debounced...
net min-home-y2 <= hm2_7i96.0.gpio.003.in_not
#net min-home-y2-raw <= hm2_7i96.0.gpio.003.in_not

# --- MAX-HOME-Z ---
net max-home-z <= hm2_7i96.0.gpio.004.in_not


#*******************
# AXIS X JOINT 0
#*******************

setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain [JOINT_0]I
setp pid.x.Dgain [JOINT_0]D
setp pid.x.bias [JOINT_0]BIAS
setp pid.x.FF0 [JOINT_0]FF0
setp pid.x.FF1 [JOINT_0]FF1
setp pid.x.FF2 [JOINT_0]FF2
setp pid.x.deadband [JOINT_0]DEADBAND
setp pid.x.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.x.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.x.maxerror 0.012700

net x-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-pos-cmd => pid.x.command
net x-pos-fb => pid.x.feedback
net x-output <= pid.x.output

# Step Gen signals/setup

setp hm2_7i96.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i96.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i96.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i96.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i96.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i96.0.stepgen.00.step_type 0
setp hm2_7i96.0.stepgen.00.control-type 1
setp hm2_7i96.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i96.0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd <= joint.0.motor-pos-cmd
net x-vel-cmd <= joint.0.vel-cmd
net x-output <= hm2_7i96.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i96.0.stepgen.00.position-fb
net x-pos-fb => joint.0.motor-pos-fb
net x-enable <= joint.0.amp-enable-out
net x-enable => hm2_7i96.0.stepgen.00.enable

# ---setup home / limit switch signals---

net min-home-x => joint.0.home-sw-in
net min-home-x => joint.0.neg-lim-sw-in
net x-pos-limit => joint.0.pos-lim-sw-in

#*******************
# AXIS Y JOINT 1
#*******************

setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.012700

net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output

# Step Gen signals/setup

setp hm2_7i96.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i96.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i96.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i96.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i96.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i96.0.stepgen.01.step_type 0
setp hm2_7i96.0.stepgen.01.control-type 1
setp hm2_7i96.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i96.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output <= hm2_7i96.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i96.0.stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_7i96.0.stepgen.01.enable

# ---setup home / limit switch signals---

net min-home-y => joint.1.home-sw-in
net min-home-y => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in

# ENTIRE block below copied/pasted from Y to Y2 and Joint 1 to 2
#*******************
# AXIS Y2 JOINT 2
#*******************

setp pid.y2.Pgain [JOINT_2]P
setp pid.y2.Igain [JOINT_2]I
setp pid.y2.Dgain [JOINT_2]D
setp pid.y2.bias [JOINT_2]BIAS
setp pid.y2.FF0 [JOINT_2]FF0
setp pid.y2.FF1 [JOINT_2]FF1
setp pid.y2.FF2 [JOINT_2]FF2
setp pid.y2.deadband [JOINT_2]DEADBAND
setp pid.y2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.y2.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y2.maxerror 0.012700

net y2-index-enable <=> pid.y2.index-enable
net y2-enable => pid.y2.enable
net y2-pos-cmd => pid.y2.command
net y2-pos-fb => pid.y2.feedback
net y2-output <= pid.y2.output

# Step Gen signals/setup

setp hm2_7i96.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i96.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i96.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i96.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i96.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i96.0.stepgen.02.step_type 0
setp hm2_7i96.0.stepgen.02.control-type 1
setp hm2_7i96.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i96.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y2-pos-cmd <= joint.2.motor-pos-cmd
net y2-vel-cmd <= joint.2.vel-cmd
net y2-output <= hm2_7i96.0.stepgen.02.velocity-cmd
net y2-pos-fb <= hm2_7i96.0.stepgen.02.position-fb
net y2-pos-fb => joint.2.motor-pos-fb
net y2-enable <= joint.2.amp-enable-out
net y2-enable => hm2_7i96.0.stepgen.02.enable

# ---setup home / limit switch signals---

net min-home-y2 => joint.2.home-sw-in
net min-home-y2 => joint.2.neg-lim-sw-in
net y2-pos-limit => joint.2.pos-lim-sw-in

# ALL Below updated to Joint 3 for Z
#*******************
# AXIS Z JOINT 3
#*******************

setp pid.z.Pgain [JOINT_3]P
setp pid.z.Igain [JOINT_3]I
setp pid.z.Dgain [JOINT_3]D
setp pid.z.bias [JOINT_3]BIAS
setp pid.z.FF0 [JOINT_3]FF0
setp pid.z.FF1 [JOINT_3]FF1
setp pid.z.FF2 [JOINT_3]FF2
setp pid.z.deadband [JOINT_3]DEADBAND
setp pid.z.maxoutput [JOINT_3]MAX_OUTPUT
setp pid.z.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.z.maxerror 0.012700

net z-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
net z-pos-cmd => pid.z.command
net z-pos-fb => pid.z.feedback
net z-output <= pid.z.output

# Step Gen signals/setup

setp hm2_7i96.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i96.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i96.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i96.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i96.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i96.0.stepgen.03.step_type 0
setp hm2_7i96.0.stepgen.03.control-type 1
setp hm2_7i96.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i96.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd <= joint.3.motor-pos-cmd
net z-vel-cmd <= joint.3.vel-cmd
net z-output <= hm2_7i96.0.stepgen.03.velocity-cmd
net z-pos-fb <= hm2_7i96.0.stepgen.03.position-fb
net z-pos-fb => joint.3.motor-pos-fb
net z-enable <= joint.3.amp-enable-out
net z-enable => hm2_7i96.0.stepgen.03.enable

# ---setup home / limit switch signals---

net max-home-z => joint.3.home-sw-in
net z-neg-limit => joint.3.neg-lim-sw-in
net max-home-z => joint.3.pos-lim-sw-in

#*******************
# SPINDLE
#*******************

setp pid.s.Pgain [SPINDLE_0]P
setp pid.s.Igain [SPINDLE_0]I
setp pid.s.Dgain [SPINDLE_0]D
setp pid.s.bias [SPINDLE_0]BIAS
setp pid.s.FF0 [SPINDLE_0]FF0
setp pid.s.FF1 [SPINDLE_0]FF1
setp pid.s.FF2 [SPINDLE_0]FF2
setp pid.s.deadband [SPINDLE_0]DEADBAND
setp pid.s.maxoutput [SPINDLE_0]MAX_OUTPUT
setp pid.s.error-previous-target true

net spindle-index-enable <=> pid.s.index-enable
net spindle-enable => pid.s.enable
net spindle-vel-cmd-rpm => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output

# ---setup spindle control signals---

net spindle-vel-cmd-rps <= spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs <= spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm <= spindle.0.speed-out
net spindle-vel-cmd-rpm-abs <= spindle.0.speed-out-abs
net spindle-enable <= spindle.0.on
net spindle-cw <= spindle.0.forward
net spindle-ccw <= spindle.0.reverse
net spindle-brake <= spindle.0.brake
net spindle-revs => spindle.0.revs
net spindle-at-speed => spindle.0.at-speed
net spindle-vel-fb-rps => spindle.0.speed-in
net spindle-index-enable <=> spindle.0.index-enable

# ---Setup spindle at speed signals---

sets spindle-at-speed true


#******************************
# connect miscellaneous signals
#******************************

# ---HALUI signals---

net axis-select-x halui.axis.x.select
net jog-x-pos halui.axis.x.plus
net jog-x-neg halui.axis.x.minus
net jog-x-analog halui.axis.x.analog
net x-is-homed halui.joint.0.is-homed
net axis-select-y halui.axis.y.select
net jog-y-pos halui.axis.y.plus
net jog-y-neg halui.axis.y.minus
net jog-y-analog halui.axis.y.analog
net y-is-homed halui.joint.1.is-homed
net axis-select-z halui.axis.z.select
net jog-z-pos halui.axis.z.plus
net jog-z-neg halui.axis.z.minus
net jog-z-analog halui.axis.z.analog
net z-is-homed halui.joint.2.is-homed
net jog-selected-pos halui.axis.selected.plus
net jog-selected-neg halui.axis.selected.minus
net spindle-manual-cw halui.spindle.0.forward
net spindle-manual-ccw halui.spindle.0.reverse
net spindle-manual-stop halui.spindle.0.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.axis.jog-speed
net MDI-mode halui.mode.is-mdi

# ---coolant signals---

net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood

# ---probe signal---

net probe-in => motion.probe-input

# ---motion control signals---

net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled

# ---digital in / out signals---

# ---estop signals---

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

# ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-change-confirmed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

Please Log in or Create an account to join the conversation.

More
5 years 1 month ago #221724 by PCW
What is latency with:

latency-histogram --nobase --sbinsize 1000

Please Log in or Create an account to join the conversation.

More
5 years 1 month ago - 5 years 1 month ago #221748 by mundele
Not really sure what I’m looking at but here y go. One with glxgears, one without.

i.imgur.com/nlgPKPC.jpg

i.imgur.com/8EnHZwQ.jpg
 
Last edit: 5 years 1 month ago by mundele. Reason: Img link

Please Log in or Create an account to join the conversation.

More
5 years 1 month ago #221751 by PCW
Those ave very good numbers but I suspect the test did not run long enough to get realistic numbers.

If you still get real time errors, you can try doubling the servo thread period (to 2000000)
if you do this you should also change all the PID "P" values to 500

Please Log in or Create an account to join the conversation.

More
5 years 1 month ago #221752 by mundele
Does it need to be under load? I'm running a longer test now with GLXGears running.

I had increased servo period before to 2 million... still got errors but that was an eternity ago (at least 3 days :))

I've seen this typed a bunch, standard servo period is 1 million in INI file units (one and 6 zeros?). I've seen 10 mil a couple times and 100K once in various forums.

While I'm nitpicking... Can you please enlighten me on units in the INI? I'm using GMOCCAPY and my gosh the mix of machine units per min and machine units per sec is maddening. Is there a rule of thumb to make sense of it?

Finally, my Z axis is herky-jerky. I was able to tune timing (the step space, step length, dir setup and dir length settings) to get X and Y behaving, I have the same driver and stepper but different pitch thread on my Z (and corresponding step rate) and Z is still awful. Any insight there?

Please Log in or Create an account to join the conversation.

More
5 years 1 month ago - 5 years 1 month ago #221756 by PCW
Almost all low level motion units in the ini file are specified in machine units
(mm or inches) per second except for spindle speed.

User interface and gcode values (like feed rates) are usuall specified/displayed
in per minute units.

If you still get real time errors at a 2 ms servo thread rate, it suggests that there
are either some latency related BIOS settings the have not been disabled or that the
PC is simply not suitable for real time use.

(this is often true of laptops because they have power saving features that
cannot be disabled)

Not sure on you Z axis but would note that step timings don't really
need to be tuned, they should just be set to say 2X the drives
minimum specs. Longer timings never hurt unless they limit your
desired step rate.
Last edit: 5 years 1 month ago by PCW.

Please Log in or Create an account to join the conversation.

Moderators: cmorley
Time to create page: 0.341 seconds
Powered by Kunena Forum