I will resume my issue, maybe my explanations haven't been clear.
The machine worked with Linuxcnc 2.7 for over 4 years but without THC.
Now I have installed debian with 2.8 and the THC150. Stepconf doesn't configure correctly the two motors on the Y axle. I have done the modifications in the ini and hal as explained by RODW and TOMMYLIGHT in the forum.
I have attached a picture of the limit switches of the Z Axis. The torch is mounted floating with the springs and has a separate limit switch.
My issue is that the Z Axis does not react while activating the limit switch during homing prcedure. What result in a crash in the table. I prefer the crash in the table then crashing in the other direction as this could damage my Z axis.
With the linuxcnc 2.7 I removed the torch for homing ( I have too otherwise it crashed), the lower limit switch was hit during homing twice and the machine moved up again on the defined position.
The INI
PAUSED_MOTION_SPEED = 50
TORCH_PULSE_TIME = 1.0
TWOPASS = ON
HALUI = halui
[DISPLAY]
DISPLAY = axis
TOOL_EDITOR = tooledit x y
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 3.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 30.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/jango/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
TOOL_EDITOR = tooledit x y
EMBED_TAB_NAME = Extras
EMBED_TAB_COMMAND = gladevcp -c plasmac_wizards -x {XID} -u ./plasmac/plasmac_wizards.py ./plasmac/plasmac_wizards.glade
EMBED_TAB_NAME = Extras
EMBED_TAB_COMMAND = gladevcp -c plasmac_wizards -x {XID} -u ./plasmac/plasmac_wizards.py ./plasmac/plasmac_wizards.glade
OPEN_FILE = ""
CYCLE_TIME = 0.1
USER_COMMAND_FILE = ./plasmac/plasmac_axis.py
EMBED_TAB_NAME = Statistics
EMBED_TAB_COMMAND = gladevcp -c plasmac_stats -x {XID} -u ./plasmac/plasmac_stats.py -H ./plasmac/plasmac_stats.hal ./plasmac/plasmac_stats.glade
EMBED_TAB_NAME = Run
EMBED_TAB_COMMAND = gladevcp -c plasmac_run -x {XID} -u ./plasmac/plasmac_run.py -H ./plasmac/plasmac_run.hal ./plasmac/plasmac_run_tab.glade
EMBED_TAB_NAME = Config
EMBED_TAB_COMMAND = gladevcp -c plasmac_config -x {XID} -u ./plasmac/plasmac_config.py -H ./plasmac/plasmac_config.hal ./plasmac/plasmac_config.glade
EMBED_TAB_NAME = Extras
EMBED_TAB_COMMAND = gladevcp -c plasmac_wizards -x {XID} -u ./plasmac/plasmac_wizards.py ./plasmac/plasmac_wizards.glade
[EMC]
MACHINE = BurniTHC
DEBUG = 0
VERSION = 1.1
[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ
# kinstype=both
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
[TRAJ]
SPINDLES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 3.00
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_X]
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
MAX_VELOCITY = 240.0
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
MAX_ACCELERATION = 800.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -10.0
MAX_LIMIT = 1010.0
[JOINT_0]
#jb 2 lines
HOME_IS_SHARED = 1
HOME_IGNORE_LIMITS = 1
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -10.0
MAX_LIMIT = 1010.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 100.0
STEPGEN_MAXACCEL = 125.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = -10.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = -5.000000
HOME_SEQUENCE = 1
[AXIS_Y]
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
MAX_VELOCITY = 240.0
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
# set to double the value in the corresponding joint
MAX_ACCELERATION = 800.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -30.0
MAX_LIMIT = 2020.0
[JOINT_1]
HOME_IS_SHARED = 1
HOME_IGNORE_LIMITS = 1
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -30.0
MAX_LIMIT = 2020.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 100.0
STEPGEN_MAXACCEL = 125.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = -30.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = -5.000000
HOME_SEQUENCE = -2
[JOINT_2]
HOME_IS_SHARED = 1
HOME_IGNORE_LIMITS = 1
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -30.0
MAX_LIMIT = 2020.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 100.0
STEPGEN_MAXACCEL = 125.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = -30.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = -5.000000
HOME_SEQUENCE = -2
[AXIS_Z]
# set to double the value in the corresponding joint
MAX_VELOCITY = 60.0
# set to double the value in the corresponding joint
MAX_ACCELERATION = 200.0
# shares the above two equally between the joint and the offset
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -20.0
MAX_LIMIT = 180.0
[JOINT_3]
HOME_IS_SHARED = 1
HOME_IGNORE_LIMITS = 1
TYPE = LINEAR
HOME = 0.0
MIN_LIMIT = -20.0
MAX_LIMIT = 180.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 100.0
STEPGEN_MAXACCEL = 125.0
SCALE = 100.0
FERROR = 1
MIN_FERROR = .25
HOME_OFFSET = -20.000000
HOME_SEARCH_VEL = -15.000000
HOME_LATCH_VEL = -5.000000
HOME_SEQUENCE = 0
And the HAL
# Generated by stepconf 1.1 at Sun Oct 25 17:37:13 2020
loadrt [KINS]KINEMATICS
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS num_spindles=[TRAJ]SPINDLES
loadrt hal_parport cfg="0x378 out"
loadrt stepgen step_type=0,0,0,0
loadrt lut5
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf lut5.0 servo-thread
net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
setp parport.0.pin-02-out-invert 1
net xdir => parport.0.pin-02-out
net xstep => parport.0.pin-03-out
setp parport.0.pin-04-out-invert 1
net ydir => parport.0.pin-04-out
net ystep => parport.0.pin-05-out
net zdir => parport.0.pin-06-out
net zstep => parport.0.pin-07-out
setp parport.0.pin-08-out-invert 1
net adir => parport.0.pin-08-out
net astep => parport.0.pin-09-out
net all-limit-home <= parport.0.pin-10-in-not
setp lut5.0.function 0x10000
net all-limit-home => lut5.0.in-4
net all-limit <= lut5.0.out
net homing-x <= joint.0.homing => lut5.0.in-0
net homing-y <= joint.1.homing => lut5.0.in-1
net homing-z <= joint.3.homing => lut5.0.in-2
setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 1
setp stepgen.0.dirhold 15500
setp stepgen.0.dirsetup 20000
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable joint.0.amp-enable-out => stepgen.0.enable
net all-limit-home => joint.0.home-sw-in
net all-limit => joint.0.neg-lim-sw-in
net all-limit => joint.0.pos-lim-sw-in
setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 1
setp stepgen.1.dirhold 15500
setp stepgen.1.dirsetup 20000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable joint.1.amp-enable-out => stepgen.1.enable
net all-limit-home => joint.1.home-sw-in
net all-limit => joint.1.neg-lim-sw-in
net all-limit => joint.1.pos-lim-sw-in
setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 1
setp stepgen.2.dirhold 15500
setp stepgen.2.dirsetup 20000
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net apos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
net apos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
net astep <= stepgen.2.step
net adir <= stepgen.2.dir
net aenable joint.2.amp-enable-out => stepgen.2.enable
net all-limit-home => joint.2.home-sw-in
net all-limit => joint.2.neg-lim-sw-in
net all-limit => joint.2.pos-lim-sw-in
setp stepgen.3.position-scale [JOINT_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 1
setp stepgen.3.dirhold 15500
setp stepgen.3.dirsetup 20000
setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
net zpos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
net zpos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
net zstep <= stepgen.3.step
net zdir <= stepgen.3.dir
net zenable joint.3.amp-enable-out => stepgen.3.enable
net all-limit-home => joint.2.home-sw-in
net all-limit => joint.3.neg-lim-sw-in
net all-limit => joint.3.pos-lim-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared