7i80-DB + 7I76 - Example to edit or method to create config

More
08 Jul 2019 04:36 #138838 by mjoconr
Hi All

I'm looking to create a config for a MESA combination of 7i80-DB + 7I76 with XYZ stepper, touch probe, tool probe, X+Y+Z limits on both directions, 0-10 volt spindle and a spindle encoder.
The encoder might be a single pulse per rev or a proper quadrature 4000 pulse.

I'm looking for help to create this config, I just can not seem to work out how to start the process.

Thanks
Mike

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

More
08 Jul 2019 07:48 #138842 by pl7i92
you shoudt have better gone with the 7i96
or the 7i92 +7i76 combination

there are realy many configs on the forum

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

More
08 Jul 2019 09:30 #138849 by mjoconr
I know that now, but this is what I have. I had planned to use the cards on a different project which was going to need more step and direction ports.

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

More
08 Jul 2019 13:33 - 08 Jul 2019 13:34 #138860 by PCW
You should be able to use a 7I76E configuration created by pncconf and
just globally change the "7i76e" text in the hal file to "7i80db-16" or "7i80db-25"
Last edit: 08 Jul 2019 13:34 by PCW.

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

More
08 Jul 2019 13:33 #138861 by tommylight
Use pncconfig to create a config for 5i25/7i76 or 7i76E with the stepgens and I/O you need, then edit it with a text editor to point to 7i80.
Use the "search and replace" function so it takes about 1 minute to edit.

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

More
10 Jul 2019 00:57 #138983 by mjoconr
Does this look correct, I'm not near the machine today and wanted to move forward.
It was generated with the pncconfig and 5i25/7i76

I assume I need something to indicate the ip address of the control board ?

HM-135.ini
[EMC]
MACHINE = my_LinuxCNC_step
DEBUG = 0

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/cnc/linuxcnc/
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.000000
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = xyz

[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

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

[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i25

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

[HALUI]

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.25
MAX_LINEAR_VELOCITY = 22.50

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

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.0
MIN_FERROR = 0.01
MAX_VELOCITY = 22.5
MAX_ACCELERATION = 750.0
# 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 = 28.12
STEPGEN_MAXACCEL = 937.50
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 28.125
# these are in nanoseconds
DIRSETUP   = 200
DIRHOLD    = 200
STEPLEN    = 1000
STEPSPACE  = 2000
STEP_SCALE = 500.0
MIN_LIMIT = -0.01
MAX_LIMIT = 200.0
HOME_OFFSET = 0.0

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.0
MIN_FERROR = 0.01
MAX_VELOCITY = 22.5
MAX_ACCELERATION = 750.0
# 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 = 28.12
STEPGEN_MAXACCEL = 937.50
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 28.125
# these are in nanoseconds
DIRSETUP   = 200
DIRHOLD    = 200
STEPLEN    = 1000
STEPSPACE  = 2000
STEP_SCALE = 500.0
MIN_LIMIT = -0.01
MAX_LIMIT = 150.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = -0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.0
MIN_FERROR = 0.01
MAX_VELOCITY = 16.6666666667
MAX_ACCELERATION = 100.0
# 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 = 20.83
STEPGEN_MAXACCEL = 125.00
P = 50.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 20.8333333333
# these are in nanoseconds
DIRSETUP   = 200
DIRHOLD    = 200
STEPLEN    = 1000
STEPSPACE  = 2000
STEP_SCALE = 2000.0
MIN_LIMIT = -270.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES

#********************
# Spindle 
#********************
[SPINDLE_9]
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 5000.0
ENCODER_SCALE = 1.0
OUTPUT_SCALE = 10000.0
OUTPUT_MIN_LIMIT = 0.0
OUTPUT_MAX_LIMIT = 5000.0

HM-135.hal
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx" 
setp   hm2_7i80db-16.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s

addf hm2_7i80db-16.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.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf hm2_7i80db-16.0.write         servo-thread

# external output signals


# --- ESTOP-OUT ---
net estop-out hm2_7i80db-16.0.7i76.0.0.output-00

# --- COOLANT-MIST ---
net coolant-mist hm2_7i80db-16.0.7i76.0.0.output-01

# --- COOLANT-FLOOD ---
net coolant-flood hm2_7i80db-16.0.7i76.0.0.output-02

# --- MACHINE-IS-ENABLED ---
net machine-is-enabled hm2_7i80db-16.0.7i76.0.0.output-03

# external input signals


# --- BOTH-HOME-Y ---
net both-home-y     <=  hm2_7i80db-16.0.7i76.0.0.input-04

# --- BOTH-HOME-Z ---
net both-home-z     <=  hm2_7i80db-16.0.7i76.0.0.input-05

# --- BOTH-HOME-A ---
net both-home-a     <=  hm2_7i80db-16.0.7i76.0.0.input-06

# --- ESTOP-EXT ---
net estop-ext     <=  hm2_7i80db-16.0.7i76.0.0.input-08

# --- PROBE-IN ---
net probe-in     <=  hm2_7i80db-16.0.7i76.0.0.input-09-not

# --- PROBE_IN_UP ---
net Probe_In_Up     <=  hm2_7i80db-16.0.7i76.0.0.input-10

#*******************
#  AXIS X
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

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

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

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

#*******************
#  AXIS Y
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

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

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

net both-home-y     =>  axis.1.home-sw-in
net both-home-y     =>  axis.1.neg-lim-sw-in
net both-home-y     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

net z-pos-cmd    <= axis.2.motor-pos-cmd
net z-vel-cmd    <= axis.2.joint-vel-cmd
net z-output     <= hm2_7i80db-16.0.stepgen.02.velocity-cmd
net z-pos-fb     <= hm2_7i80db-16.0.stepgen.02.position-fb
net z-pos-fb     => axis.2.motor-pos-fb
net z-enable     <= axis.2.amp-enable-out
net z-enable     => hm2_7i80db-16.0.stepgen.02.enable

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

net both-home-z     =>  axis.2.home-sw-in
net both-home-z     =>  axis.2.neg-lim-sw-in
net both-home-z     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

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

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

# ---digital potentionmeter output signals/setup---

setp   hm2_7i80db-16.0.7i76.0.0.spinout-minlim    [SPINDLE_9]OUTPUT_MIN_LIMIT
setp   hm2_7i80db-16.0.7i76.0.0.spinout-maxlim    [SPINDLE_9]OUTPUT_MAX_LIMIT
setp   hm2_7i80db-16.0.7i76.0.0.spinout-scalemax  [SPINDLE_9]OUTPUT_SCALE

net spindle-vel-cmd-abs     => hm2_7i80db-16.0.7i76.0.0.spinout
net machine-is-enabled      => hm2_7i80db-16.0.7i76.0.0.spinena
net spindle-ccw         => hm2_7i80db-16.0.7i76.0.0.spindir

# ---Encoder feedback signals/setup---

setp    hm2_7i80db-16.0.encoder.00.counter-mode 1
setp    hm2_7i80db-16.0.encoder.00.filter 1
setp    hm2_7i80db-16.0.encoder.00.index-invert 0
setp    hm2_7i80db-16.0.encoder.00.index-mask 0
setp    hm2_7i80db-16.0.encoder.00.index-mask-invert 0
setp    hm2_7i80db-16.0.encoder.00.scale  [SPINDLE_9]ENCODER_SCALE

net spindle-revs             <=   hm2_7i80db-16.0.encoder.00.position
net spindle-vel-fb-rps       <=   hm2_7i80db-16.0.encoder.00.velocity
net spindle-index-enable     <=>  hm2_7i80db-16.0.encoder.00.index-enable

# ---setup spindle control signals---

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

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

sets spindle-at-speed true

#  Use ACTUAL spindle velocity from spindle encoder
#  spindle-velocity bounces around so we filter it with lowpass
#  spindle-velocity is signed so we use absolute component to remove sign
#  ACTUAL velocity is in RPS not RPM so we scale it.

setp     scale.spindle.gain 60
setp     lowpass.spindle.gain 1.000000
net spindle-vel-fb-rps        =>     scale.spindle.in
net spindle-fb-rpm               scale.spindle.out       =>   abs.spindle.in
net spindle-fb-rpm-abs           abs.spindle.out         =>   lowpass.spindle.in
net spindle-fb-rpm-abs-filtered  lowpass.spindle.out  

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

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.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-ext     =>  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
10 Jul 2019 04:25 #138988 by PCW
You would need to change:

loadrt hm2_pci config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx"

to

loadrt hm2_eth board_ip="10.10.10.10" config=" num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxx"

Assuming you are using the 10.10.10.10 IP address option on the 7I80

Also I think I was wrong on the card name, I think it is always "7i80" regardless of the FPGA size/connector options

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

More
11 Jul 2019 01:48 #139044 by mjoconr
Hi All

Still not working but have progress.

So I had to comment out a section for the spindle, I'll need help to get this config adjusted once the other issues are fixed.
#setp     scale.spindle.gain 60
#setp     lowpass.spindle.gain 1.000000
#net spindle-vel-fb-rps        =>     scale.spindle.in
#net spindle-fb-rpm               scale.spindle.out       =>   abs.spindle.in
#net spindle-fb-rpm-abs           abs.spindle.out         =>   lowpass.spindle.in
#net spindle-fb-rpm-abs-filtered  lowpass.spindle.out

But I'm also getting an error 'error finishing read! iter=7'
cnc@minimill:~/src/linuxcnc-dev$ linuxcnc ~/linuxcnc/configs/HM-135.ini
LINUXCNC - 2.7.9
Machine configuration directory is '/home/cnc/linuxcnc/configs'
Machine configuration file is 'HM-135.ini'
Starting LinuxCNC...
Found file(REL): ./HM-135.hal
Note: Using POSIX realtime
hm2: loading Mesa HostMot2 driver version 0.15
hm2_eth: loading Mesa AnyIO HostMot2 ethernet driver version 0.2
iptables v1.6.1: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
hm2_eth: ERROR: Failed to create iptables chain hm2-eth-rules-outputhm2_eth: WARNING: Unable to restrict other access to the hm2-eth device.
This means that other software using the same network interface can violate
realtime guarantees.  See hm2_eth(9) for more information.
hm2_eth: 10.10.10.10: Hardware address: 00:60:1b:10:00:50
hm2_eth: discovered 7I80DB-16
hm2/hm2_7i80.0: Smart Serial Firmware Version 43
Board hm2_7i80.0.7i76.0.0 Hardware Mode 0 = standard
Board hm2_7i80.0.7i76.0.0 Software Mode 0 = io_spin
Board hm2_7i80.0.7i76.0.0 Software Mode 1 = io_ana_spin
Board hm2_7i80.0.7i76.0.0 Software Mode 2 = io_enc_ana_spin_fv
hm2/hm2_7i80.0: 68 I/O Pins used:
hm2/hm2_7i80.0:     IO Pin 000 (J2-01): StepGen #0, pin Direction (Output)
hm2/hm2_7i80.0:     IO Pin 001 (J2-14): StepGen #0, pin Step (Output)
hm2/hm2_7i80.0:     IO Pin 002 (J2-02): StepGen #1, pin Direction (Output)
hm2/hm2_7i80.0:     IO Pin 003 (J2-15): StepGen #1, pin Step (Output)
hm2/hm2_7i80.0:     IO Pin 004 (J2-03): StepGen #2, pin Direction (Output)
hm2/hm2_7i80.0:     IO Pin 005 (J2-16): StepGen #2, pin Step (Output)
hm2/hm2_7i80.0:     IO Pin 006 (J2-04): StepGen #3, pin Direction (Output)
hm2/hm2_7i80.0:     IO Pin 007 (J2-17): StepGen #3, pin Step (Output)
hm2/hm2_7i80.0:     IO Pin 008 (J2-05): StepGen #4, pin Direction (Output)
hm2/hm2_7i80.0:     IO Pin 009 (J2-06): StepGen #4, pin Step (Output)
hm2/hm2_7i80.0:     IO Pin 010 (J2-07): Smart Serial Interface #0, pin TxData0 (Output)
hm2/hm2_7i80.0:     IO Pin 011 (J2-08): Smart Serial Interface #0, pin RxData0 (Input)
hm2/hm2_7i80.0:     IO Pin 012 (J2-09): IOPort
hm2/hm2_7i80.0:     IO Pin 013 (J2-10): IOPort
hm2/hm2_7i80.0:     IO Pin 014 (J2-11): Encoder #0, pin Index (Input)
hm2/hm2_7i80.0:     IO Pin 015 (J2-12): Encoder #0, pin B (Input)
hm2/hm2_7i80.0:     IO Pin 016 (J2-13): Encoder #0, pin A (Input)
hm2/hm2_7i80.0:     IO Pin 017 (J3-01): IOPort
hm2/hm2_7i80.0:     IO Pin 018 (J3-14): IOPort
hm2/hm2_7i80.0:     IO Pin 019 (J3-02): IOPort
hm2/hm2_7i80.0:     IO Pin 020 (J3-15): IOPort
hm2/hm2_7i80.0:     IO Pin 021 (J3-03): IOPort
hm2/hm2_7i80.0:     IO Pin 022 (J3-16): IOPort
hm2/hm2_7i80.0:     IO Pin 023 (J3-04): IOPort
hm2/hm2_7i80.0:     IO Pin 024 (J3-17): IOPort
hm2/hm2_7i80.0:     IO Pin 025 (J3-05): IOPort
hm2/hm2_7i80.0:     IO Pin 026 (J3-06): IOPort
hm2/hm2_7i80.0:     IO Pin 027 (J3-07): IOPort
hm2/hm2_7i80.0:     IO Pin 028 (J3-08): IOPort
hm2/hm2_7i80.0:     IO Pin 029 (J3-09): IOPort
hm2/hm2_7i80.0:     IO Pin 030 (J3-10): IOPort
hm2/hm2_7i80.0:     IO Pin 031 (J3-11): IOPort
hm2/hm2_7i80.0:     IO Pin 032 (J3-12): IOPort
hm2/hm2_7i80.0:     IO Pin 033 (J3-13): IOPort
hm2/hm2_7i80.0:     IO Pin 034 (J4-01): IOPort
hm2/hm2_7i80.0:     IO Pin 035 (J4-14): IOPort
hm2/hm2_7i80.0:     IO Pin 036 (J4-02): IOPort
hm2/hm2_7i80.0:     IO Pin 037 (J4-15): IOPort
hm2/hm2_7i80.0:     IO Pin 038 (J4-03): IOPort
hm2/hm2_7i80.0:     IO Pin 039 (J4-16): IOPort
hm2/hm2_7i80.0:     IO Pin 040 (J4-04): IOPort
hm2/hm2_7i80.0:     IO Pin 041 (J4-17): IOPort
hm2/hm2_7i80.0:     IO Pin 042 (J4-05): IOPort
hm2/hm2_7i80.0:     IO Pin 043 (J4-06): IOPort
hm2/hm2_7i80.0:     IO Pin 044 (J4-07): IOPort
hm2/hm2_7i80.0:     IO Pin 045 (J4-08): IOPort
hm2/hm2_7i80.0:     IO Pin 046 (J4-09): IOPort
hm2/hm2_7i80.0:     IO Pin 047 (J4-10): IOPort
hm2/hm2_7i80.0:     IO Pin 048 (J4-11): IOPort
hm2/hm2_7i80.0:     IO Pin 049 (J4-12): IOPort
hm2/hm2_7i80.0:     IO Pin 050 (J4-13): IOPort
hm2/hm2_7i80.0:     IO Pin 051 (J5-01): IOPort
hm2/hm2_7i80.0:     IO Pin 052 (J5-14): IOPort
hm2/hm2_7i80.0:     IO Pin 053 (J5-02): IOPort
hm2/hm2_7i80.0:     IO Pin 054 (J5-15): IOPort
hm2/hm2_7i80.0:     IO Pin 055 (J5-03): IOPort
hm2/hm2_7i80.0:     IO Pin 056 (J5-16): IOPort
hm2/hm2_7i80.0:     IO Pin 057 (J5-04): IOPort
hm2/hm2_7i80.0:     IO Pin 058 (J5-17): IOPort
hm2/hm2_7i80.0:     IO Pin 059 (J5-05): IOPort
hm2/hm2_7i80.0:     IO Pin 060 (J5-06): IOPort
hm2/hm2_7i80.0:     IO Pin 061 (J5-07): IOPort
hm2/hm2_7i80.0:     IO Pin 062 (J5-08): IOPort
hm2/hm2_7i80.0:     IO Pin 063 (J5-09): IOPort
hm2/hm2_7i80.0:     IO Pin 064 (J5-10): IOPort
hm2/hm2_7i80.0:     IO Pin 065 (J5-11): IOPort
hm2/hm2_7i80.0:     IO Pin 066 (J5-12): IOPort
hm2/hm2_7i80.0:     IO Pin 067 (J5-13): IOPort
hm2/hm2_7i80.0: registered
iptables v1.6.1: can't initialize iptables table `filter': Permission denied (you must be root)
Perhaps iptables or your kernel needs to be upgraded.
hm2_eth: ERROR: Failed to execute '/sbin/iptables -A hm2-eth-rules-output -o enp2s0 -p icmp -j DROP'
hm2/hm2_7i80.0: error finishing read! iter=7
hm2/hm2_7i80.0: error finishing read! iter=7

I wonder if the issue is the firmware in the card (does this need to be loaded each time ?)


Current config below
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
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_7i80.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s

addf hm2_7i80.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.z.do-pid-calcs       servo-thread
addf pid.s.do-pid-calcs       servo-thread
addf hm2_7i80.0.write         servo-thread

# external output signals


# --- ESTOP-OUT ---
net estop-out hm2_7i80.0.7i76.0.0.output-00

# --- COOLANT-MIST ---
net coolant-mist hm2_7i80.0.7i76.0.0.output-01

# --- COOLANT-FLOOD ---
net coolant-flood hm2_7i80.0.7i76.0.0.output-02

# --- MACHINE-IS-ENABLED ---
net machine-is-enabled hm2_7i80.0.7i76.0.0.output-03

# external input signals


# --- BOTH-HOME-Y ---
net both-home-y     <=  hm2_7i80.0.7i76.0.0.input-04

# --- BOTH-HOME-Z ---
net both-home-z     <=  hm2_7i80.0.7i76.0.0.input-05

# --- BOTH-HOME-A ---
net both-home-a     <=  hm2_7i80.0.7i76.0.0.input-06

# --- ESTOP-EXT ---
net estop-ext     <=  hm2_7i80.0.7i76.0.0.input-08

# --- PROBE-IN ---
net probe-in     <=  hm2_7i80.0.7i76.0.0.input-09-not

# --- PROBE_IN_UP ---
net Probe_In_Up     <=  hm2_7i80.0.7i76.0.0.input-10

#*******************
#  AXIS X
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

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

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

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

#*******************
#  AXIS Y
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

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

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

net both-home-y     =>  axis.1.home-sw-in
net both-home-y     =>  axis.1.neg-lim-sw-in
net both-home-y     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

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

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

# Step Gen signals/setup

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

# ---closedloop stepper signals---

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

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

net both-home-z     =>  axis.2.home-sw-in
net both-home-z     =>  axis.2.neg-lim-sw-in
net both-home-z     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

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

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

# ---digital potentionmeter output signals/setup---

setp   hm2_7i80.0.7i76.0.0.spinout-minlim    [SPINDLE_9]OUTPUT_MIN_LIMIT
setp   hm2_7i80.0.7i76.0.0.spinout-maxlim    [SPINDLE_9]OUTPUT_MAX_LIMIT
setp   hm2_7i80.0.7i76.0.0.spinout-scalemax  [SPINDLE_9]OUTPUT_SCALE

net spindle-vel-cmd-abs     => hm2_7i80.0.7i76.0.0.spinout
net machine-is-enabled      => hm2_7i80.0.7i76.0.0.spinena
net spindle-ccw         => hm2_7i80.0.7i76.0.0.spindir

# ---Encoder feedback signals/setup---

setp    hm2_7i80.0.encoder.00.counter-mode 1
setp    hm2_7i80.0.encoder.00.filter 1
setp    hm2_7i80.0.encoder.00.index-invert 0
setp    hm2_7i80.0.encoder.00.index-mask 0
setp    hm2_7i80.0.encoder.00.index-mask-invert 0
setp    hm2_7i80.0.encoder.00.scale  [SPINDLE_9]ENCODER_SCALE

net spindle-revs             <=   hm2_7i80.0.encoder.00.position
net spindle-vel-fb-rps       <=   hm2_7i80.0.encoder.00.velocity
net spindle-index-enable     <=>  hm2_7i80.0.encoder.00.index-enable

# ---setup spindle control signals---

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

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

sets spindle-at-speed true

#  Use ACTUAL spindle velocity from spindle encoder
#  spindle-velocity bounces around so we filter it with lowpass
#  spindle-velocity is signed so we use absolute component to remove sign
#  ACTUAL velocity is in RPS not RPM so we scale it.

#setp     scale.spindle.gain 60
#setp     lowpass.spindle.gain 1.000000
#net spindle-vel-fb-rps        =>     scale.spindle.in
#net spindle-fb-rpm               scale.spindle.out       =>   abs.spindle.in
#net spindle-fb-rpm-abs           abs.spindle.out         =>   lowpass.spindle.in
#net spindle-fb-rpm-abs-filtered  lowpass.spindle.out

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

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.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-ext     =>  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
11 Jul 2019 02:12 #139045 by PCW
"error finishing read!"
means that you have lost contact with the 7I80

Common reasons are:

Servo thread to fast (suggest 1000000 ns = 1 ms to start)
Not running real time OS
Intel MAC on host and RX IRQ coalesce enabled
Power issues on FPGA card (marginal power so card resets)

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

More
11 Jul 2019 02:48 - 11 Jul 2019 02:49 #139047 by mjoconr
Servo thread was 1000000 ns changed to 2000000 ns
Kernel is 4.19.31-rt18
Its using realtek chips for the ethernet, ran ethtool -c rx-usecs=0 enp2s0
Card is being powered by a 5v 5Amp power supply and voltage at the connect on the board is 5.05V

Image of the latency test attached.

What next ?

Thanks by the way
Attachments:
Last edit: 11 Jul 2019 02:49 by mjoconr.

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

Time to create page: 0.107 seconds
Powered by Kunena Forum