Newb help with 5i25 and Novakon breakout board

More
25 Jul 2015 11:36 - 25 Jul 2015 11:37 #60903 by brianbonedoc
Thank Peter I got the 5i25 flashed with the new firmware and so far I have the "e-stop" responding so I know the BOB and the mesa are communicating. I can't get any motion yet - and I am sure it has to do w/ the charge pump/machine enable.

When I tried it with the parallel port I had to change a line in the hal from:
net estop-out charge-pump.enable iocontrol.0.user-enable-out

TO:
net motion-enabled charge-pump.enable motion.motion-enabled

I am not sure how to do that with the new hal using the mesa.

Here is my .hal file so far as generated by pncconf - hopefully you have some tips:

# Generated by PNCconf at Fri Jul 24 14:30:42 2015
# If you make changes to this file, they will be
# overwritten when you run PNCconf again

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=0 num_pwmgens=0 num_stepgens=14"
setp hm2_5i25.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s

addf hm2_5i25.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_5i25.0.write servo-thread

# ---Chargepump StepGen: 0.25 velocity = 10Khz square wave output---

setp hm2_5i25.0.stepgen.03.dirsetup 100
setp hm2_5i25.0.stepgen.03.dirhold 100
setp hm2_5i25.0.stepgen.03.steplen 100
setp hm2_5i25.0.stepgen.03.stepspace 100
setp hm2_5i25.0.stepgen.03.position-scale 10000
setp hm2_5i25.0.stepgen.03.step_type 2
setp hm2_5i25.0.stepgen.03.control-type 1
setp hm2_5i25.0.stepgen.03.maxaccel 0
setp hm2_5i25.0.stepgen.03.maxvel 0
setp hm2_5i25.0.stepgen.03.velocity-cmd 0.25

net x-enable => hm2_5i25.0.stepgen.03.enable

# external output signals

# --- COOLANT-FLOOD ---
setp hm2_5i25.0.gpio.015.is_output true
net coolant-flood hm2_5i25.0.gpio.015.out

# external input signals

# --- ALL-LIMIT ---
net all-limit <= hm2_5i25.0.gpio.012.in

# --- ESTOP-EXT ---
net estop-ext <= hm2_5i25.0.gpio.013.in_not

#*******************
# 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_5i25.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_5i25.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_5i25.0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_5i25.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_5i25.0.stepgen.00.position-scale [AXIS_0]STEP_SCALE
setp hm2_5i25.0.stepgen.00.step_type 0
setp hm2_5i25.0.stepgen.00.control-type 1
setp hm2_5i25.0.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp hm2_5i25.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_5i25.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_5i25.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_5i25.0.stepgen.00.enable

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

net x-home-sw => axis.0.home-sw-in
net all-limit => axis.0.neg-lim-sw-in
net all-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_5i25.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
setp hm2_5i25.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
setp hm2_5i25.0.stepgen.01.steplen [AXIS_1]STEPLEN
setp hm2_5i25.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
setp hm2_5i25.0.stepgen.01.position-scale [AXIS_1]STEP_SCALE
setp hm2_5i25.0.stepgen.01.step_type 0
setp hm2_5i25.0.stepgen.01.control-type 1
setp hm2_5i25.0.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAXACCEL
setp hm2_5i25.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_5i25.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_5i25.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_5i25.0.stepgen.01.enable

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

net y-home-sw => axis.1.home-sw-in
net all-limit => axis.1.neg-lim-sw-in
net all-limit => 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_5i25.0.stepgen.05.dirsetup [AXIS_2]DIRSETUP
setp hm2_5i25.0.stepgen.05.dirhold [AXIS_2]DIRHOLD
setp hm2_5i25.0.stepgen.05.steplen [AXIS_2]STEPLEN
setp hm2_5i25.0.stepgen.05.stepspace [AXIS_2]STEPSPACE
setp hm2_5i25.0.stepgen.05.position-scale [AXIS_2]STEP_SCALE
setp hm2_5i25.0.stepgen.05.step_type 0
setp hm2_5i25.0.stepgen.05.control-type 1
setp hm2_5i25.0.stepgen.05.maxaccel [AXIS_2]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.05.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_5i25.0.stepgen.05.velocity-cmd
net z-pos-fb <= hm2_5i25.0.stepgen.05.position-fb
net z-pos-fb => axis.2.motor-pos-fb
net z-enable <= axis.2.amp-enable-out
net z-enable => hm2_5i25.0.stepgen.05.enable

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

net z-home-sw => axis.2.home-sw-in
net all-limit => axis.2.neg-lim-sw-in
net all-limit => 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 => pid.s.command
net spindle-vel-fb-rpm => pid.s.feedback
net spindle-output <= pid.s.output

# Step Gen signals/setup

setp hm2_5i25.0.stepgen.02.dirsetup [SPINDLE_9]DIRSETUP
setp hm2_5i25.0.stepgen.02.dirhold [SPINDLE_9]DIRHOLD
setp hm2_5i25.0.stepgen.02.steplen [SPINDLE_9]STEPLEN
setp hm2_5i25.0.stepgen.02.stepspace [SPINDLE_9]STEPSPACE
setp hm2_5i25.0.stepgen.02.position-scale [SPINDLE_9]STEP_SCALE
setp hm2_5i25.0.stepgen.02.step_type 0
setp hm2_5i25.0.stepgen.02.control-type 1
setp hm2_5i25.0.stepgen.02.maxaccel [SPINDLE_9]MAX_ACCELERATION
setp hm2_5i25.0.stepgen.02.maxvel [SPINDLE_9]MAX_VELOCITY

net machine-is-enabled => hm2_5i25.0.stepgen.02.enable
net spindle-vel-cmd-rps => hm2_5i25.0.stepgen.02.velocity-cmd
net spindle-vel-fb-rps <= hm2_5i25.0.stepgen.02.velocity-fb

# ---closedloop stepper signals---

net s-pos-cmd <= axis.9.motor-pos-cmd
net s-vel-cmd <= axis.9.joint-vel-cmd
net s-output <= hm2_5i25.0.stepgen.02.velocity-cmd
net s-pos-fb <= hm2_5i25.0.stepgen.02.position-fb
net s-pos-fb => axis.9.motor-pos-fb
net s-enable <= axis.9.amp-enable-out
net s-enable => hm2_5i25.0.stepgen.02.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


#******************************
# 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
Last edit: 25 Jul 2015 11:37 by brianbonedoc.

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

More
25 Jul 2015 22:29 - 25 Jul 2015 22:29 #60909 by PCW
First take a look at the .pin file and you will see that the chargepump stepgen(on pin 17) is stepgen 6 instead of
stepgen 3 so the chargepump section of the hal file needs to be changed to reflect this

(you will also note that I made a mistake and skipped stepgen 4 in my numbering. I can make a new confg on Monday
but the current config should work )

Also the spindle is stepgen 5 and PNCConf doesnt know how to set up a step/dir driven spindle

(When I fix the config, the chargpump will be stepgen 5 and the spindle will be stepgen 4)
Last edit: 25 Jul 2015 22:29 by PCW.

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

More
25 Jul 2015 23:34 #60916 by brianbonedoc
thanks Peter - I can be bone headed sometimes. The pncconf threw me off as it looks a little crazy with the numbering.

I will try your suggestions.

Thanks again!

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

More
26 Jul 2015 00:07 #60919 by brianbonedoc
Woohoo! It works!!

I did have to change this line in the hal:

setp hm2_5i25.0.stepgen.06.velocity-cmd 0.25

to

setp hm2_5i25.0.stepgen.06.velocity-cmd 1

and that seemed to get the charge pump to work.

Now off to get the spindle moving.

Thanks again!!

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

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