how to configure MESA7I76E board in LINUXCNC ?
05 Oct 2017 14:08 #99960
by nngohel
how to configure MESA7I76E board in LINUXCNC ? was created by nngohel
We have mesa7I76e ART REV.B (Ethernet) board.
All jumper (W1 to W13) was connected to DEFAULT position.
linuxmint is installed in computer
computer IP is 192.168.1.120 and board IP is 192.168.1.121
PING response
ping 192.168.1.121
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_seq=1 ttl=64 time=0.186 ms
64 bytes from 192.168.1.121: icmp_seq=2 ttl=64 time=0.161 ms
64 bytes from 192.168.1.121: icmp_seq=3 ttl=64 time=0.121 ms
64 bytes from 192.168.1.121: icmp_seq=4 ttl=64 time=0.121 ms
64 bytes from 192.168.1.121: icmp_seq=5 ttl=64 time=0.123 ms
^C
--- 192.168.1.121 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4001ms
rtt min/avg/max/mdev = 0.121/0.142/0.186/0.028 ms
RELOAD command run successfully
mesaflash --device 7i76e --reload
verbose reply
mesaflash --device 7i76e --verbose
ETH device 7I76E-16 at ip=192.168.1.121
Communication:
transport layer: ethernet IPv4 UDP
ip address: 192.168.1.121
mac address: 00:60:1B:10:41:4D
protocol: LBP16 version 3
Board info:
Flash size: 16Mb (id: 0x14)
Connectors count: 3
Pins per connector: 17
Connectors names: on-card P1 P2
FPGA type: 6slx16ftg256
Number of leds: 4
Board firmware info:
memory spaces:
0: HostMot2 (registers, RW, 32-bit) [size=64K]
1: KSZ8851 (registers, RW, 16-bit)
2: EtherEEP (EEPROM, RW, 16-bit) , page size: 1, erase size: 1
3: FPGAFlsh (flash, RW, 32-bit) [size=16M], page size: 256, erase size: 65536
4: Timers (memory, RW, 16-bit)
6: LBP16RW (memory, RW, 16-bit)
7: LBP16RO (memory, RO, 16-bit)
[space 0] HostMot2
[space 2] Ethernet eeprom:
mac address: 00:60:1B:10:41:4D
ip address: 192.168.0.121
board name: 7I76E-16
user leds: eth debug
[space 3] FPGA flash eeprom:
flash size: 16Mb (id: 0x14)
[space 4] timers:
uSTimeStampReg: 0xDE03
WaituSReg: 0x0000
HM2Timeout: 0x0000
[space 6] LBP16 control/status:
packets received: all 317, UDP 4, bad 0
packets sended: all 4, UDP 4, bad 0
parse errors: 0, mem errors 0, write errors 0
error flags: 0x0000
debug LED ptr: 0x0008
scratch: 0x0000
[space 7] LBP16 info:
board name: 7I76E-16
LBP16 protocol version 3
board firmware version 15
IP address jumpers at boot: fixed 192.168.1.121
how to configure MESA7I76E board in LINUXCNC ?
All jumper (W1 to W13) was connected to DEFAULT position.
linuxmint is installed in computer
computer IP is 192.168.1.120 and board IP is 192.168.1.121
PING response
ping 192.168.1.121
PING 192.168.1.121 (192.168.1.121) 56(84) bytes of data.
64 bytes from 192.168.1.121: icmp_seq=1 ttl=64 time=0.186 ms
64 bytes from 192.168.1.121: icmp_seq=2 ttl=64 time=0.161 ms
64 bytes from 192.168.1.121: icmp_seq=3 ttl=64 time=0.121 ms
64 bytes from 192.168.1.121: icmp_seq=4 ttl=64 time=0.121 ms
64 bytes from 192.168.1.121: icmp_seq=5 ttl=64 time=0.123 ms
^C
--- 192.168.1.121 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4001ms
rtt min/avg/max/mdev = 0.121/0.142/0.186/0.028 ms
RELOAD command run successfully
mesaflash --device 7i76e --reload
verbose reply
mesaflash --device 7i76e --verbose
ETH device 7I76E-16 at ip=192.168.1.121
Communication:
transport layer: ethernet IPv4 UDP
ip address: 192.168.1.121
mac address: 00:60:1B:10:41:4D
protocol: LBP16 version 3
Board info:
Flash size: 16Mb (id: 0x14)
Connectors count: 3
Pins per connector: 17
Connectors names: on-card P1 P2
FPGA type: 6slx16ftg256
Number of leds: 4
Board firmware info:
memory spaces:
0: HostMot2 (registers, RW, 32-bit) [size=64K]
1: KSZ8851 (registers, RW, 16-bit)
2: EtherEEP (EEPROM, RW, 16-bit) , page size: 1, erase size: 1
3: FPGAFlsh (flash, RW, 32-bit) [size=16M], page size: 256, erase size: 65536
4: Timers (memory, RW, 16-bit)
6: LBP16RW (memory, RW, 16-bit)
7: LBP16RO (memory, RO, 16-bit)
[space 0] HostMot2
[space 2] Ethernet eeprom:
mac address: 00:60:1B:10:41:4D
ip address: 192.168.0.121
board name: 7I76E-16
user leds: eth debug
[space 3] FPGA flash eeprom:
flash size: 16Mb (id: 0x14)
[space 4] timers:
uSTimeStampReg: 0xDE03
WaituSReg: 0x0000
HM2Timeout: 0x0000
[space 6] LBP16 control/status:
packets received: all 317, UDP 4, bad 0
packets sended: all 4, UDP 4, bad 0
parse errors: 0, mem errors 0, write errors 0
error flags: 0x0000
debug LED ptr: 0x0008
scratch: 0x0000
[space 7] LBP16 info:
board name: 7I76E-16
LBP16 protocol version 3
board firmware version 15
IP address jumpers at boot: fixed 192.168.1.121
how to configure MESA7I76E board in LINUXCNC ?
Please Log in or Create an account to join the conversation.
05 Oct 2017 14:16 #99961
by andypugh
Replied by andypugh on topic how to configure MESA7I76E board in LINUXCNC ?
Start with Pnccconf and tell it you have a 7i76.
Then you (probably) need to edit the HAL file that is created to use hm2_eth rather than hm2_pci.
loadrt hostmot2
loadrt hm2_eth board_ip=192.168.1.121
Then you (probably) need to edit the HAL file that is created to use hm2_eth rather than hm2_pci.
loadrt hostmot2
loadrt hm2_eth board_ip=192.168.1.121
The following user(s) said Thank You: nngohel
Please Log in or Create an account to join the conversation.
05 Oct 2017 15:04 - 05 Oct 2017 15:11 #99964
by PCW
Replied by PCW on topic how to configure MESA7I76E board in LINUXCNC ?
pncconf does have a 7I76e option (at least in 2.8, 2.7 may also)
Last edit: 05 Oct 2017 15:11 by PCW.
The following user(s) said Thank You: nngohel
Please Log in or Create an account to join the conversation.
06 Oct 2017 06:31 #99977
by nngohel
Replied by nngohel on topic how to configure MESA7I76E board in LINUXCNC ?
at the starting of PNCconf i got this warning ?
You have no hostmot2 firmware downloaded in folder:
/lib/firmware/hm2/
PNCconf will use internal firmware data
Anything wrong ???
You have no hostmot2 firmware downloaded in folder:
/lib/firmware/hm2/
PNCconf will use internal firmware data
Anything wrong ???
Please Log in or Create an account to join the conversation.
06 Oct 2017 08:21 #99979
by rodw
Replied by rodw on topic how to configure MESA7I76E board in LINUXCNC ?
No thats normal. Generally you do not need to download any firmware to the 7i76e so the message can be safely ignored.
The following user(s) said Thank You: nngohel
Please Log in or Create an account to join the conversation.
06 Oct 2017 10:41 #99985
by nngohel
Replied by nngohel on topic how to configure MESA7I76E board in LINUXCNC ?
i try to configure MESA 7I76e using PNCconf.
i select only 3 axis x,y,x
i attached .hal / .ini file
After configure linuxcnc do not shows any error and window is open but still stepper motor do not rotate.
i select only 3 axis x,y,x
i attached .hal / .ini file
After configure linuxcnc do not shows any error and window is open but still stepper motor do not rotate.
Attachment not found
Attachment not found
Please Log in or Create an account to join the conversation.
06 Oct 2017 10:45 #99987
by nngohel
Replied by nngohel on topic how to configure MESA7I76E board in LINUXCNC ?
# Generated by PNCconf at Fri Oct 6 11:02:20 2017
# 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_eth board_ip="192.168.1.121" config="firmware=hm2/7i76/7i76e.BIT num_encoders=1 num_pwmgens=0 num_stepgens=3 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
#*******************
# 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_7i76e.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_7i76e.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_7i76e.0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_7i76e.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_7i76e.0.stepgen.00.position-scale [AXIS_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 [AXIS_0]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i76e.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_7i76e.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_7i76e.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
setp hm2_7i76e.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
setp hm2_7i76e.0.stepgen.01.steplen [AXIS_1]STEPLEN
setp hm2_7i76e.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
setp hm2_7i76e.0.stepgen.01.position-scale [AXIS_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 [AXIS_1]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => axis.1.home-sw-in
net y-neg-limit => axis.1.neg-lim-sw-in
net y-pos-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_7i76e.0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
setp hm2_7i76e.0.stepgen.02.dirhold [AXIS_2]DIRHOLD
setp hm2_7i76e.0.stepgen.02.steplen [AXIS_2]STEPLEN
setp hm2_7i76e.0.stepgen.02.stepspace [AXIS_2]STEPSPACE
setp hm2_7i76e.0.stepgen.02.position-scale [AXIS_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 [AXIS_2]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.02.enable
# ---setup home / limit switch signals---
net z-home-sw => axis.2.home-sw-in
net z-neg-limit => axis.2.neg-lim-sw-in
net z-pos-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
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 <= 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-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
# 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_eth board_ip="192.168.1.121" config="firmware=hm2/7i76/7i76e.BIT num_encoders=1 num_pwmgens=0 num_stepgens=3 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
#*******************
# 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_7i76e.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_7i76e.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_7i76e.0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_7i76e.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_7i76e.0.stepgen.00.position-scale [AXIS_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 [AXIS_0]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i76e.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_7i76e.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_7i76e.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
setp hm2_7i76e.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
setp hm2_7i76e.0.stepgen.01.steplen [AXIS_1]STEPLEN
setp hm2_7i76e.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
setp hm2_7i76e.0.stepgen.01.position-scale [AXIS_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 [AXIS_1]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.01.enable
# ---setup home / limit switch signals---
net y-home-sw => axis.1.home-sw-in
net y-neg-limit => axis.1.neg-lim-sw-in
net y-pos-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_7i76e.0.stepgen.02.dirsetup [AXIS_2]DIRSETUP
setp hm2_7i76e.0.stepgen.02.dirhold [AXIS_2]DIRHOLD
setp hm2_7i76e.0.stepgen.02.steplen [AXIS_2]STEPLEN
setp hm2_7i76e.0.stepgen.02.stepspace [AXIS_2]STEPSPACE
setp hm2_7i76e.0.stepgen.02.position-scale [AXIS_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 [AXIS_2]STEPGEN_MAXACCEL
setp hm2_7i76e.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_7i76e.0.stepgen.02.velocity-cmd
net z-pos-fb <= hm2_7i76e.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_7i76e.0.stepgen.02.enable
# ---setup home / limit switch signals---
net z-home-sw => axis.2.home-sw-in
net z-neg-limit => axis.2.neg-lim-sw-in
net z-pos-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
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 <= 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-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.
06 Oct 2017 10:45 #99988
by nngohel
Replied by nngohel on topic how to configure MESA7I76E board in LINUXCNC ?
# Generated by PNCconf at Fri Oct 6 11:02:20 2017
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = nk_machine
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/emc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
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_eth
# BOARD0=7i76e
[HAL]
HALUI = halui
HALFILE = nk_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
[HALUI]
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
#********************
# Spindle
#********************
[SPINDLE_9]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = nk_machine
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/emc/linuxcnc/nc_files
INCREMENTS = .1in .05in .01in .005in .001in .0005in .0001in
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 1.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
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_eth
# BOARD0=7i76e
[HAL]
HALUI = halui
HALFILE = nk_machine.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
[HALUI]
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.10
MAX_LINEAR_VELOCITY = 1.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -0.001
MAX_LIMIT = 8.0
HOME_OFFSET = 0.0
#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.05
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.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 = 1.25
STEPGEN_MAXACCEL = 37.50
P = 1000.0
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
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = 0.001
HOME_OFFSET = 0.0
#********************
# Spindle
#********************
[SPINDLE_9]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000
Please Log in or Create an account to join the conversation.
06 Oct 2017 12:14 - 06 Oct 2017 12:14 #99997
by rodw
Replied by rodw on topic how to configure MESA7I76E board in LINUXCNC ?
I just posted my (maybe complex) 7i763 config on this thread. Maybe have a browse and see what you can work out.'
forum.linuxcnc.org/39-pncconf/33376-addi...is-to-gantry-machine
I also recently created a new basic config with PNCCONFIG and it worked first time.
forum.linuxcnc.org/39-pncconf/33376-addi...is-to-gantry-machine
I also recently created a new basic config with PNCCONFIG and it worked first time.
Last edit: 06 Oct 2017 12:14 by rodw.
The following user(s) said Thank You: nngohel
Please Log in or Create an account to join the conversation.
06 Oct 2017 13:32 - 06 Oct 2017 13:33 #100004
by PCW
Replied by PCW on topic how to configure MESA7I76E board in LINUXCNC ?
A common reason that step/dir drives don't work is that
step timing has been set to the drives minimum numbers
(Minimum meaning its on the edge of not working)
Next most common problem probably wiring errors
As first step try setting the step time to 5000
step timing has been set to the drives minimum numbers
(Minimum meaning its on the edge of not working)
Next most common problem probably wiring errors
As first step try setting the step time to 5000
Last edit: 06 Oct 2017 13:33 by PCW.
Please Log in or Create an account to join the conversation.
Time to create page: 0.089 seconds