HAL setup for MPG Pendant
16 Oct 2020 05:37 #186249
by Arland
HAL setup for MPG Pendant was created by Arland
Hi All,
I am having a hell of a time configuring my MPG pendant. The only thing that is working is the Estop.
Here is how I wired it up -
It is this pendant www.amazon.com/gp/product/B07CZ7F3Y3/ref...06_s00?ie=UTF8&psc=1
Here is my current config -
I am a complete noob at this stuff so any advice is welcome! I am sure it is super obvious.
I am having a hell of a time configuring my MPG pendant. The only thing that is working is the Estop.
Here is how I wired it up -
It is this pendant www.amazon.com/gp/product/B07CZ7F3Y3/ref...06_s00?ie=UTF8&psc=1
Here is my current config -
# Generated by PNCconf at Thu Oct 15 21:55:59 2020
# Using LinuxCNC version: 2.8
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
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_7i76e.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
addf hm2_7i76e.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_7i76e.0.write servo-thread
setp hm2_7i76e.0.dpll.01.timer-us -50
setp hm2_7i76e.0.stepgen.timer-number 1
# external output signals
# external input signals
# --- JOINT-SELECT-A ---
net joint-select-a <= hm2_7i76e.0.7i76.0.0.input-07
# --- JOINT-SELECT-B ---
net joint-select-b <= hm2_7i76e.0.7i76.0.0.input-08
# --- JOINT-SELECT-C ---
net joint-select-c <= hm2_7i76e.0.7i76.0.0.input-09
# --- JOG-INCR-C ---
net jog-incr-c <= hm2_7i76e.0.7i76.0.0.input-10
# --- JOG-INCR-B ---
net jog-incr-b <= hm2_7i76e.0.7i76.0.0.input-11
# --- JOG-INCR-A ---
net jog-incr-a <= hm2_7i76e.0.7i76.0.0.input-12
# --- ESTOP-EXT ---
net estop-ext <= hm2_7i76e.0.7i76.0.0.input-13
# --- PROBE-IN ---
net probe-in <= hm2_7i76e.0.7i76.0.0.input-20
#*******************
# 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.000500
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_7i76e.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i76e.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i76e.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i76e.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i76e.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i76e.0.stepgen.00.step_type 0
setp hm2_7i76e.0.stepgen.00.control-type 1
setp hm2_7i76e.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.00.enable
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => 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.000500
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_7i76e.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i76e.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i76e.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i76e.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i76e.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i76e.0.stepgen.01.step_type 0
setp hm2_7i76e.0.stepgen.01.control-type 1
setp hm2_7i76e.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]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.000500
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_7i76e.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i76e.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i76e.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i76e.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i76e.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i76e.0.stepgen.02.step_type 0
setp hm2_7i76e.0.stepgen.02.control-type 1
setp hm2_7i76e.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output <= hm2_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_7i76e.0.stepgen.02.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_7i76e.0.stepgen.02.enable
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#******************************
# 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-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
I am a complete noob at this stuff so any advice is welcome! I am sure it is super obvious.
Please Log in or Create an account to join the conversation.
17 Oct 2020 23:55 #186424
by Arland
Replied by Arland on topic HAL setup for MPG Pendant
Update to my code here - made some big changes - Estop now works.
# Generated by PNCconf at Thu Oct 15 21:55:59 2020
# Using LinuxCNC version: 2.8
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
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=2xxxx"
setp hm2_7i76e.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt estop_latch
loadrt or2
loadrt encoder num_chan=1
loadrt mux4 count=1
addf encoder.capture-position servo-thread
addf mux4.0 servo-thread
addf hm2_7i76e.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_7i76e.0.write servo-thread
setp hm2_7i76e.0.dpll.01.timer-us -50
setp hm2_7i76e.0.stepgen.timer-number 1
# external output signals
# external input signals
# --- ESTOP-EXT ---
net estop-ext <= hm2_7i76e.0.7i76.0.0.input-13
# --- PROBE-IN ---
net probe-in <= hm2_7i76e.0.7i76.0.0.input-20
#*******************
# 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.000500
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_7i76e.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i76e.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i76e.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i76e.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i76e.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i76e.0.stepgen.00.step_type 0
setp hm2_7i76e.0.stepgen.00.control-type 1
setp hm2_7i76e.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.00.enable
# ---setup home / limit switch signals---
net x-home-sw => joint.0.home-sw-in
net x-neg-limit => 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.000500
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_7i76e.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i76e.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i76e.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i76e.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i76e.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i76e.0.stepgen.01.step_type 0
setp hm2_7i76e.0.stepgen.01.control-type 1
setp hm2_7i76e.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => joint.1.home-sw-in
net y-neg-limit => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# AXIS Z JOINT 2
#*******************
setp pid.z.Pgain [JOINT_2]P
setp pid.z.Igain [JOINT_2]I
setp pid.z.Dgain [JOINT_2]D
setp pid.z.bias [JOINT_2]BIAS
setp pid.z.FF0 [JOINT_2]FF0
setp pid.z.FF1 [JOINT_2]FF1
setp pid.z.FF2 [JOINT_2]FF2
setp pid.z.deadband [JOINT_2]DEADBAND
setp pid.z.maxoutput [JOINT_2]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.000500
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_7i76e.0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i76e.0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_7i76e.0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_7i76e.0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_7i76e.0.stepgen.02.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i76e.0.stepgen.02.step_type 0
setp hm2_7i76e.0.stepgen.02.control-type 1
setp hm2_7i76e.0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i76e.0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-vel-cmd <= joint.2.vel-cmd
net z-output <= hm2_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_7i76e.0.stepgen.02.position-fb
net z-pos-fb => joint.2.motor-pos-fb
net z-enable <= joint.2.amp-enable-out
net z-enable => hm2_7i76e.0.stepgen.02.enable
# ---setup home / limit switch signals---
net z-home-sw => joint.2.home-sw-in
net z-neg-limit => joint.2.neg-lim-sw-in
net z-pos-limit => joint.2.pos-lim-sw-in
#******************************
# 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-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
# If your MPG outputs a quadrature signal per click set x4 to 1
# If your MPG puts out 1 pulse per click set x4 to 0
setp encoder.0.x4-mode 0
# For velocity mode, set to 1
# In velocity mode the axis stops when the dial is stopped
# even if that means the commanded motion is not completed,
# For position mode (the default), set to 0
# In position mode the axis will move exactly jog-scale
# units for each count, regardless of how long that might take,
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
# This sets the scale that will be used based on the input to the mux4
setp mux4.0.in0 0.1
setp mux4.0.in1 0.01
setp mux4.0.in2 0.001
# The inputs to the mux4 component
net scale1 mux4.0.sel0 <= hm2_7i76e.0.7i76.0.0.input-10
net scale2 mux4.0.sel1 <= hm2_7i76e.0.7i76.0.0.input-11
# The output from the mux4 is sent to each axis jog scale
net mpg-scale <= mux4.0.out
net mpg-scale => axis.x.jog-scale
net mpg-scale => axis.y.jog-scale
net mpg-scale => axis.z.jog-scale
# The MPG inputs
net mpg-a encoder.0.phase-A <= hm2_7i76e.0.7i76.0.0.input-16
net mpg-b encoder.0.phase-B <= hm2_7i76e.0.7i76.0.0.input-17
# The Axis select inputs
net mpg-x axis.x.jog-enable <= hm2_7i76e.0.7i76.0.0.input-07
net mpg-y axis.y.jog-enable <= hm2_7i76e.0.7i76.0.0.input-08
net mpg-z axis.z.jog-enable <= hm2_7i76e.0.7i76.0.0.input-09
# The encoder output counts to the axis. Only the selected axis will move.
net encoder-counts <= encoder.0.counts
net encoder-counts => axis.x.jog-counts
net encoder-counts => axis.y.jog-counts
net encoder-counts => axis.z.jog-counts
Please Log in or Create an account to join the conversation.
05 Nov 2020 09:40 #188382
by Becksvill
Replied by Becksvill on topic HAL setup for MPG Pendant
did you sort this? i got the same mpg working with a 7i76 mesa card and can send you the hal file if you want
regards
Andrew
regards
Andrew
Please Log in or Create an account to join the conversation.
05 Nov 2020 12:08 - 05 Nov 2020 12:10 #188386
by bevins
Replied by bevins on topic HAL setup for MPG Pendant
First, Check and see if your pins are working.
Do you have the correct mode set in the hal file for using the encoder pins? Does your encoder pins show up in"Show Hal Configuration"?
This is a working config for that kind of mpg.
Do you have the correct mode set in the hal file for using the encoder pins? Does your encoder pins show up in"Show Hal Configuration"?
This is a working config for that kind of mpg.
Warning: Spoiler!
#*****************************************
# JOG Velocity Mode
#*****************************************
setp axis.x.jog-vel-mode 0
setp axis.y.jog-vel-mode 0
setp axis.z.jog-vel-mode 0
#*****************************************
#*****************************************
# Jog Scale
#*****************************************
setp mux4.0.in0 0.001
setp mux4.0.in1 0.010
setp mux4.0.in2 0.1
#*****************************************
#********************************************
# Inputs to mux component, scale and counts
#********************************************
net scale1 mux4.0.sel0 <= hm2_7i92.0.7i76.0.0.input-26
net scale2 mux4.0.sel1 <= hm2_7i92.0.7i76.0.0.input-27
net pend-scale axis.x.jog-scale <= mux4.0.out
net pend-scale axis.y.jog-scale
net pend-scale axis.z.jog-scale
net mpg-x axis.x.jog-enable <= hm2_7i92.0.7i76.0.0.input-28
net mpg-y axis.y.jog-enable <= hm2_7i92.0.7i76.0.0.input-29
net mpg-z axis.z.jog-enable <= hm2_7i92.0.7i76.0.0.input-30
net joint-select-count <= hm2_7i92.0.7i76.0.0.enc0.count
net joint-select-count axis.x.jog-counts
net joint-select-count axis.y.jog-counts
net joint-select-count axis.z.jog-counts
Last edit: 05 Nov 2020 12:10 by bevins.
Please Log in or Create an account to join the conversation.
05 Nov 2020 12:19 #188387
by bevins
Replied by bevins on topic HAL setup for MPG Pendant
You may need to install pullups on your encoder pins 16,17.
Please Log in or Create an account to join the conversation.
13 Jun 2022 00:59 - 13 Jun 2022 00:59 #245043
by Hammerbot
Replied by Hammerbot on topic HAL setup for MPG Pendant
Hey Andrew,
I am working through this same setup. Can I get a copy of your HAL?
Thanks, Tim
I am working through this same setup. Can I get a copy of your HAL?
Thanks, Tim
Last edit: 13 Jun 2022 00:59 by Hammerbot.
Please Log in or Create an account to join the conversation.
- FlyingAMortgage
- Offline
- New Member
Less
More
- Posts: 4
- Thank you received: 2
25 Dec 2022 23:34 #260292
by FlyingAMortgage
Replied by FlyingAMortgage on topic HAL setup for MPG Pendant
Not Andrew, but here's a working custom HAL for my install with one of those generic multi-axis pendents.
Attachments:
Please Log in or Create an account to join the conversation.
24 May 2024 20:14 - 24 May 2024 20:15 #301353
by Dragonick
Hi Becksvill
Could you send your hal?
I also have this MPG and 7i76 and I would be happy to run it.
Replied by Dragonick on topic HAL setup for MPG Pendant
did you sort this? i got the same mpg working with a 7i76 mesa card and can send you the hal file if you want
regards
Andrew
Hi Becksvill
Could you send your hal?
I also have this MPG and 7i76 and I would be happy to run it.
Last edit: 24 May 2024 20:15 by Dragonick.
Please Log in or Create an account to join the conversation.
Time to create page: 0.103 seconds