7i96 Configuration Tool
23 Dec 2018 18:03 #122786
by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Yes of course
The ini file is below :
The Hal file is below
Thanks for your help
The ini file is below :
# This file was created with the 7i96 Wizard on Dec 23 2018 15:02:21
# Changes to most things are ok and will be read by the wizard
[EMC]
VERSION = 1.1
MACHINE = schugart_LinuxCNC
DEBUG = 0x00000000
[HOSTMOT2]
DRIVER = hm2_eth
IPADDRESS = "10.10.10.10"
BOARD = 7i96
STEPGENS = 3
ENCODERS = 1
SSERIAL_PORT = 1
[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
CYCLE_TIME = 0.1
INTRO_GRAPHIC = emc2.gif
INTRO_TIME = 0
OPEN_FILE = ""
[KINS]
KINEMATICS = trivkins
JOINTS = 3
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = schugart_LinuxCNC.tbl
[RS274NGC]
PARAMETER_FILE = schugart_LinuxCNC.var
[EMCMOT]
EMCMOT = motmod
SERVO_PERIOD = 1000000
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = metric
ANGULAR_UNITS = degree
MAX_LINEAR_VELOCITY = 50.00
[HAL]
HALFILE = schugart_LinuxCNC.hal
HALFILE = io.hal
HALFILE = custom.hal
HALFILE = postgui.hal
[HALUI]
[AXIS_X]
MIN_LIMIT = -0.01
MAX_LIMIT = 345.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
[AXIS_Y]
MIN_LIMIT = -0.01
MAX_LIMIT = 250.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
[AXIS_Z]
MIN_LIMIT = -10.01
MAX_LIMIT = 35.0
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
[JOINT_0]
AXIS = X
MIN_LIMIT = -0.01
MAX_LIMIT = 345.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
TYPE = LINEAR
SCALE = 1
STEPGEN_MAX_VEL = 60.0
STEPGEN_MAX_ACC = 900.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 4000
STEPSPACE = 1000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0.0
HOME_OFFSET = 0.0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
[JOINT_1]
AXIS = Y
MIN_LIMIT = -0.01
MAX_LIMIT = 250.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
TYPE = LINEAR
SCALE = 1
STEPGEN_MAX_VEL = 60.0
STEPGEN_MAX_ACC = 900.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 4000
STEPSPACE = 1000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0.0
HOME_OFFSET = 0.0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
[JOINT_2]
AXIS = Z
MIN_LIMIT = -10.01
MAX_LIMIT = 35.0
MAX_VELOCITY = 15.0
MAX_ACCELERATION = 500.0
TYPE = LINEAR
SCALE = 1
STEPGEN_MAX_VEL = 18.0
STEPGEN_MAX_ACC = 600.0
FERROR = 0.0002
MIN_FERROR = 0.0001
DIRSETUP = 20000
DIRHOLD = 20000
STEPLEN = 4000
STEPSPACE = 1000
DEADBAND = 0
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0.00013
BIAS = 0
MAX_OUTPUT = 0
MAX_ERROR = 0.0127
HOME = 0.0
HOME_OFFSET = 0.0
HOME_USE_INDEX = False
HOME_IGNORE_LIMITS = False
[INPUTS]
# DO NOT change the input text
INPUT_0 = None
INPUT_JOINT_0 = False
INPUT_1 = None
INPUT_JOINT_1 = False
INPUT_2 = None
INPUT_JOINT_2 = False
INPUT_3 = None
INPUT_JOINT_3 = False
INPUT_4 = None
INPUT_JOINT_4 = False
INPUT_5 = None
INPUT_JOINT_5 = False
INPUT_6 = None
INPUT_JOINT_6 = False
INPUT_7 = None
INPUT_JOINT_7 = False
INPUT_8 = None
INPUT_JOINT_8 = False
INPUT_9 = None
INPUT_JOINT_9 = False
INPUT_10 = None
INPUT_JOINT_10 = False
[OUTPUTS]
# DO NOT change the output text
OUTPUT_0 = None
OUTPUT_1 = None
OUTPUT_2 = None
OUTPUT_3 = None
OUTPUT_4 = None
[OPTIONS]
MANUAL_TOOL_CHANGE = False
HALUI = False
PYVCP = False
GLADEVCP = False
LADDER = False
The Hal file is below
# This file was created with the 7i96 Wizard on Dec 23 2018 15:02:21
# If you make changes to this file your screwed
# kinematics
loadrt [KINS]KINEMATICS
# motion controller
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
# standard components
loadrt pid num_chan=3
# hostmot2 driver
loadrt hostmot2
loadrt [HOSTMOT2](DRIVER) board_ip=[HOSTMOT2](IPADDRESS) config="num_encoders=[HOSTMOT2](ENCODERS)num_stepgens=[HOSTMOT2](STEPGENS)"sserial_port_0=[HOSTMOT2](SSERIAL_PORT)
setp hm2_[HOSTMOT2](BOARD).0.watchdog.timeout_ns 25000000
# THREADS
addf hm2_[HOSTMOT2](BOARD).0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.0.do-pid-calcs servo-thread
addf pid.1.do-pid-calcs servo-thread
addf pid.2.do-pid-calcs servo-thread
addf hm2_[HOSTMOT2](BOARD).0.write servo-thread
# Joint 0
# axis enable chain
newsig emcmot.0.enable bit
sets emcmot.0.enable FALSE
net emcmot.0.enable <= joint.0.amp-enable-out
net emcmot.0.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.00.enable pid.0.enable
# position command and feedback
net emcmot.0.pos-cmd joint.0.motor-pos-cmd => pid.0.command
net motor.0.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-fb joint.0.motor-pos-fb pid.0.feedback
net motor.0.command pid.0.output hm2_[HOSTMOT2](BOARD).0.stepgen.00.velocity-cmd
setp pid.0.error-previous-target true
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.position-scale [JOINT_0]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxvel [JOINT_0]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.00.control-type 1
setp pid.0.Pgain [JOINT_0]P
setp pid.0.Igain [JOINT_0]I
setp pid.0.Dgain [JOINT_0]D
setp pid.0.bias [JOINT_0]BIAS
setp pid.0.FF0 [JOINT_0]FF0
setp pid.0.FF1 [JOINT_0]FF1
setp pid.0.FF2 [JOINT_0]FF2
setp pid.0.deadband [JOINT_0]DEADBAND
setp pid.0.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.0.maxerror [JOINT_0]MAX_ERROR
# Joint 1
# axis enable chain
newsig emcmot.1.enable bit
sets emcmot.1.enable FALSE
net emcmot.1.enable <= joint.1.amp-enable-out
net emcmot.1.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.01.enable pid.1.enable
# position command and feedback
net emcmot.1.pos-cmd joint.1.motor-pos-cmd => pid.1.command
net motor.1.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-fb joint.1.motor-pos-fb pid.1.feedback
net motor.1.command pid.1.output hm2_[HOSTMOT2](BOARD).0.stepgen.01.velocity-cmd
setp pid.1.error-previous-target true
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.position-scale [JOINT_1]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.01.control-type 1
setp pid.1.Pgain [JOINT_1]P
setp pid.1.Igain [JOINT_1]I
setp pid.1.Dgain [JOINT_1]D
setp pid.1.bias [JOINT_1]BIAS
setp pid.1.FF0 [JOINT_1]FF0
setp pid.1.FF1 [JOINT_1]FF1
setp pid.1.FF2 [JOINT_1]FF2
setp pid.1.deadband [JOINT_1]DEADBAND
setp pid.1.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.1.maxerror [JOINT_1]MAX_ERROR
# Joint 2
# axis enable chain
newsig emcmot.2.enable bit
sets emcmot.2.enable FALSE
net emcmot.2.enable <= joint.2.amp-enable-out
net emcmot.2.enable => hm2_[HOSTMOT2](BOARD).0.stepgen.02.enable pid.2.enable
# position command and feedback
net emcmot.2.pos-cmd joint.2.motor-pos-cmd => pid.2.command
net motor.2.pos-fb <= hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-fb joint.2.motor-pos-fb pid.2.feedback
net motor.2.command pid.2.output hm2_[HOSTMOT2](BOARD).0.stepgen.02.velocity-cmd
setp pid.2.error-previous-target true
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirsetup [JOINT_2]DIRSETUP
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.dirhold [JOINT_2]DIRHOLD
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.steplen [JOINT_2]STEPLEN
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.stepspace [JOINT_2]STEPSPACE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.position-scale [JOINT_2]SCALE
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxvel [JOINT_2]STEPGEN_MAX_VEL
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.maxaccel [JOINT_2]STEPGEN_MAX_ACC
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.step_type 0
setp hm2_[HOSTMOT2](BOARD).0.stepgen.02.control-type 1
setp pid.2.Pgain [JOINT_2]P
setp pid.2.Igain [JOINT_2]I
setp pid.2.Dgain [JOINT_2]D
setp pid.2.bias [JOINT_2]BIAS
setp pid.2.FF0 [JOINT_2]FF0
setp pid.2.FF1 [JOINT_2]FF1
setp pid.2.FF2 [JOINT_2]FF2
setp pid.2.deadband [JOINT_2]DEADBAND
setp pid.2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.2.maxerror [JOINT_2]MAX_ERROR
# Standard I/O Block - EStop, Etc
# create a signal for the estop loopback
net estop-loop iocontrol.0.user-enable-out => iocontrol.0.emc-enable-in
Thanks for your help
Please Log in or Create an account to join the conversation.
23 Dec 2018 18:30 - 23 Dec 2018 18:35 #122787
by PCW
Replied by PCW on topic 7i96 Configuration Tool
These are likely the problem:
FERROR = 0.0002
MIN_FERROR = 0.0001
These numbers make sense for inch machines but not for mm.
I would scale them up by 25X and see how you do
In addition, for minimum following error I would enable the DPLL:
# latch stepgen position 100 usec before nominal read time (- means before):
setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -100
setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1
FERROR = 0.0002
MIN_FERROR = 0.0001
These numbers make sense for inch machines but not for mm.
I would scale them up by 25X and see how you do
In addition, for minimum following error I would enable the DPLL:
# latch stepgen position 100 usec before nominal read time (- means before):
setp hm2_[HOSTMOT2](BOARD).0.dpll.01.timer-us -100
setp hm2_[HOSTMOT2](BOARD).0.stepgen.timer-number 1
Last edit: 23 Dec 2018 18:35 by PCW.
Please Log in or Create an account to join the conversation.
23 Dec 2018 19:42 #122792
by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Thanks, no more error but It should be something else with inches constant.
The motor make noise but does not move
The motor make noise but does not move
Please Log in or Create an account to join the conversation.
23 Dec 2018 19:57 - 23 Dec 2018 19:59 #122795
by PCW
Replied by PCW on topic 7i96 Configuration Tool
That may be an indication that your acceleration or velocity is too high and the step motors are stalling
(With you current acceleration settings, you get to full speed in 66.6 ms, this sounds a bit aggressive to me)
(With you current acceleration settings, you get to full speed in 66.6 ms, this sounds a bit aggressive to me)
Last edit: 23 Dec 2018 19:59 by PCW.
The following user(s) said Thank You: Ewok2
Please Log in or Create an account to join the conversation.
23 Dec 2018 20:17 #122796
by Ewok2
Replied by Ewok2 on topic 7i96 Configuration Tool
Wonderful it work again
In fact with the 7i96 tools my STEP_SCALE of 400 as disapear, but by putting manualy the SCALE in the GUI to 400 it works again
Many thanks ! PCW
For resuming of what to change in the tools for metrics :
- import of servo Period remove one zero
- FERROR ans MIN_FERROR still in inches and not in metrics
- STEP_SCALE not imported and replace by SCALE (not sure the CW or CCW works => the sign befor SCALE is not modified)
In fact with the 7i96 tools my STEP_SCALE of 400 as disapear, but by putting manualy the SCALE in the GUI to 400 it works again
Many thanks ! PCW
For resuming of what to change in the tools for metrics :
- import of servo Period remove one zero
- FERROR ans MIN_FERROR still in inches and not in metrics
- STEP_SCALE not imported and replace by SCALE (not sure the CW or CCW works => the sign befor SCALE is not modified)
Please Log in or Create an account to join the conversation.
29 Dec 2018 18:13 #123107
by BigJohnT
Thanks for the report, I'll look into the metric conversion as I'm sure it's just an oversight for me as I use inch.
Ahh I see an error I need to fix for tMax.
JT
Replied by BigJohnT on topic 7i96 Configuration Tool
Wonderful tools !!!
Thanks
Just 2 comments :
- In the Axis tab / Joint in the joint information, I get a distance to accelerate to max speed in inches despite the fact I select the Metric system in the First Tab
- In the PC Tab, when I select the Read tMax I did not get a value in return ?
Thanks for the report, I'll look into the metric conversion as I'm sure it's just an oversight for me as I use inch.
Ahh I see an error I need to fix for tMax.
JT
Please Log in or Create an account to join the conversation.
29 Dec 2018 18:15 - 29 Dec 2018 23:21 #123108
by BigJohnT
I'll fix that as well...
JT
Replied by BigJohnT on topic 7i96 Configuration Tool
Yes you are right with 1000000 it is better.
It seem's that the tools 7i96 put it again to 100000 even if previous ini file had 1000000.
I'll fix that as well...
JT
Last edit: 29 Dec 2018 23:21 by BigJohnT.
The following user(s) said Thank You: tommylight
Please Log in or Create an account to join the conversation.
29 Dec 2018 22:48 #123118
by BigJohnT
I have one started but not complete enough to use yet. Been busy programming chicken door and lights lol.
JT
Replied by BigJohnT on topic 7i96 Configuration Tool
Is someone doing simultaneity to 7i92 ?
I have one started but not complete enough to use yet. Been busy programming chicken door and lights lol.
JT
Please Log in or Create an account to join the conversation.
29 Dec 2018 23:19 #123119
by BigJohnT
Did you have the 7i96 connected to the PC and had the configuration up and running?
JT
Replied by BigJohnT on topic 7i96 Configuration Tool
- In the PC Tab, when I select the Read tMax I did not get a value in return ?
Did you have the 7i96 connected to the PC and had the configuration up and running?
JT
Please Log in or Create an account to join the conversation.
- LinfieldGarage
- Offline
- Junior Member
Less
More
- Posts: 37
- Thank you received: 11
03 Jan 2019 01:55 - 03 Jan 2019 02:55 #123383
by LinfieldGarage
Replied by LinfieldGarage on topic 7i96 Configuration Tool
Hey John,
new Linuxcnc user here. First of all, thank you for developing the config tool and contributing so much to the community. I have already learned a ton from your posts. I started setting up my 7i96 today and ran into a few issues with the 7i96 config tool that I wanted to run by you.
My setup:
Mesa 7i96 board
preempt RT kernel:
Linux Linuxcnc 3.2.0-6-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.102-1 i686 GNU/Linux
Linuxcnc uspace 2.8 master branch
Python3 installed per your instructions
Observations:
-Sometimes the utility will create an empty folder with no HAL or INI files. It seems related to filling in certain fields but I cant identify which ones make this happen. Have you seen this?
-No configs that the utility creates will load in Linuxcnc. Even if I open gantry.ini, save it as a different name, and build a config with no changes, I get the error, see attached report.
Please let me know if you would like to see more details. Any help is appreciated.
Thanks,
Jamie
new Linuxcnc user here. First of all, thank you for developing the config tool and contributing so much to the community. I have already learned a ton from your posts. I started setting up my 7i96 today and ran into a few issues with the 7i96 config tool that I wanted to run by you.
My setup:
Mesa 7i96 board
preempt RT kernel:
Linux Linuxcnc 3.2.0-6-rt-686-pae #1 SMP PREEMPT RT Debian 3.2.102-1 i686 GNU/Linux
Linuxcnc uspace 2.8 master branch
Python3 installed per your instructions
Observations:
-Sometimes the utility will create an empty folder with no HAL or INI files. It seems related to filling in certain fields but I cant identify which ones make this happen. Have you seen this?
-No configs that the utility creates will load in Linuxcnc. Even if I open gantry.ini, save it as a different name, and build a config with no changes, I get the error, see attached report.
Please let me know if you would like to see more details. Any help is appreciated.
Thanks,
Jamie
Last edit: 03 Jan 2019 02:55 by LinfieldGarage.
Please Log in or Create an account to join the conversation.
Time to create page: 0.108 seconds