torch moving UP when it should be moving DOWN
- distro88
- Offline
- New Member
-
Less
More
- Posts: 1
- Thank you received: 0
23 Oct 2025 18:32 - 23 Oct 2025 18:33 #336980
by distro88
torch moving UP when it should be moving DOWN was created by distro88
Hello everyone,
I’m having a strange issue with QtPlasmaC (version 2.9.238 / LinuxCNC 2.9.2) and my PROMA THC 150 connected to a Mesa 7i92 card.
Everything on my machine moves correctly — all axes jog fine, torch on/off works, ARC OK is detected correctly, and the THC UP and DOWN inputs show properly in HAL meter.
However, during cutting:
When the THC UP signal is active, the torch moves up
When the THC DOWN signal is active, the torch moves up instead of down
Both UP and DOWN signals appear normally in HAL meter as true/false.
Here’s my setup:
Controller: Mesa 7i92 + db25 bib (raw pins)
Plasma: PROMA THC 150
QtPlasmaC version: 2.9.238 (LinuxCNC 2.9.2)
QtPlasmaC Mode: External THC (UP/DOWN/ARC OK)
THC wiring: optocoupled to Mesa inputs
Firmware: 7i92_7i76x1D.
I’ll attach my .hal and .ini files below.
.hal[/code]
I’m having a strange issue with QtPlasmaC (version 2.9.238 / LinuxCNC 2.9.2) and my PROMA THC 150 connected to a Mesa 7i92 card.
Everything on my machine moves correctly — all axes jog fine, torch on/off works, ARC OK is detected correctly, and the THC UP and DOWN inputs show properly in HAL meter.
However, during cutting:
When the THC UP signal is active, the torch moves up
When the THC DOWN signal is active, the torch moves up instead of down
Both UP and DOWN signals appear normally in HAL meter as true/false.
Here’s my setup:
Controller: Mesa 7i92 + db25 bib (raw pins)
Plasma: PROMA THC 150
QtPlasmaC version: 2.9.238 (LinuxCNC 2.9.2)
QtPlasmaC Mode: External THC (UP/DOWN/ARC OK)
THC wiring: optocoupled to Mesa inputs
Firmware: 7i92_7i76x1D.
I’ll attach my .hal and .ini files below.
.hal
# Generated by PNCconf at Wed Oct 22 23:20:44 2025
# Using LinuxCNC version: Master (2.9)
# 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 num_spindles=[TRAJ]SPINDLES
loadrt hostmot2
loadrt hm2_eth board_ip="10.10.10.10" config="num_encoders=1 num_pwmgens=0 num_stepgens=5 sserial_port_0=00xxxxxx"
setp hm2_7i92.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.y2,pid.z,pid.s
loadrt plasmac
addf hm2_7i92.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.y2.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf plasmac servo-thread
addf hm2_7i92.0.write servo-thread
setp hm2_7i92.0.dpll.01.timer-us -50
setp hm2_7i92.0.stepgen.timer-number 1
# ---PLASMA INPUT DEBOUNCE---
#values for these are in custom.hal
loadrt dbounce names=db_breakaway,db_float,db_ohmic,db_arc-ok
addf db_float servo-thread
addf db_ohmic servo-thread
addf db_breakaway servo-thread
addf db_arc-ok servo-thread
# ---JOINT ASSOCIATED WITH THE Z AXIS---
net plasmac:axis-position joint.3.pos-fb => plasmac.axis-z-position
# ---PLASMA INPUTS---
# ---all modes---
net plasmac:float-switch => db_float.in
net plasmac:breakaway => db_breakaway.in
net plasmac:ohmic-probe => db_ohmic.in
net plasmac:ohmic-sense-in => plasmac.ohmic-sense-in
# ---modes 0 & 1
net plasmac:arc-voltage-in => plasmac.arc-voltage-in
# ---modes 1 & 2
net plasmac:arc-ok-in => db_arc-ok.in
# ---mode 2
net plasmac:move-up <= plasmac.move-up
net plasmac:move-down <= plasmac.move-down
# ---PLASMA OUTPUTS---
# ---all modes---
net plasmac:ohmic-enable <= plasmac.ohmic-enable
net plasmac:scribe-arm <= plasmac.scribe-arm
net plasmac:scribe-on <= plasmac.scribe-on
# external output signals
# --- PLASMAC:TORCH-ON ---
setp hm2_7i92.0.gpio.030.is_output true
net plasmac:torch-on => hm2_7i92.0.gpio.030.out
setp hm2_7i92.0.gpio.030.invert_output true
# --- PLASMAC:LASER-ON ---
setp hm2_7i92.0.gpio.031.is_output true
net plasmac:laser-on => hm2_7i92.0.gpio.031.out
# --- DOUT-00 ---
setp hm2_7i92.0.gpio.032.is_output true
net dout-00 => hm2_7i92.0.gpio.032.out
# --- DOUT-01 ---
setp hm2_7i92.0.gpio.033.is_output true
#qtplasmac uses digital output dout-01:
#net dout-01 => hm2_7i92.0.gpio.033.out
# external input signals
# --- MIN-HOME-X ---
net min-home-x <= hm2_7i92.0.gpio.018.in
# --- MIN-HOME-Y ---
net min-home-y <= hm2_7i92.0.gpio.019.in
# --- MIN-HOME-Y2 ---
net min-home-y2 <= hm2_7i92.0.gpio.020.in
# --- MAX-HOME-Z ---
net max-home-z <= hm2_7i92.0.gpio.021.in
# --- PLASMAC:FLOAT-SWITCH ---
net plasmac:float-switch <= hm2_7i92.0.gpio.022.in
# --- PLASMAC:BREAKAWAY ---
net plasmac:breakaway <= hm2_7i92.0.gpio.023.in
# --- PLASMAC:ARC-OK-IN ---
net plasmac:arc-ok-in <= hm2_7i92.0.gpio.024.in
# --- PLASMAC:MOVE-UP ---
net plasmac:move-up <= hm2_7i92.0.gpio.025.in
# --- PLASMAC:MOVE-DOWN ---
net plasmac:move-down <= hm2_7i92.0.gpio.026.in
# --- ESTOP-EXT ---
net estop-ext <= hm2_7i92.0.gpio.027.in_not
#*******************
# 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.012700
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_7i92.0.stepgen.00.dirsetup [JOINT_0]DIRSETUP
setp hm2_7i92.0.stepgen.00.dirhold [JOINT_0]DIRHOLD
setp hm2_7i92.0.stepgen.00.steplen [JOINT_0]STEPLEN
setp hm2_7i92.0.stepgen.00.stepspace [JOINT_0]STEPSPACE
setp hm2_7i92.0.stepgen.00.position-scale [JOINT_0]STEP_SCALE
setp hm2_7i92.0.stepgen.00.step_type 0
setp hm2_7i92.0.stepgen.00.control-type 1
setp hm2_7i92.0.stepgen.00.maxaccel [JOINT_0]STEPGEN_MAXACCEL
setp hm2_7i92.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_7i92.0.stepgen.00.velocity-cmd
net x-pos-fb <= hm2_7i92.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_7i92.0.stepgen.00.enable
# ---setup home / limit switch signals---
net min-home-x => joint.0.home-sw-in
net min-home-x => 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.012700
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_7i92.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_7i92.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_7i92.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_7i92.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_7i92.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_7i92.0.stepgen.01.step_type 0
setp hm2_7i92.0.stepgen.01.control-type 1
setp hm2_7i92.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_7i92.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_7i92.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_7i92.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_7i92.0.stepgen.01.enable
# ---setup home / limit switch signals---
net min-home-y => joint.1.home-sw-in
net min-home-y => joint.1.neg-lim-sw-in
net y-pos-limit => joint.1.pos-lim-sw-in
#*******************
# Tandem AXIS Y2 JOINT 2
#*******************
setp pid.y2.Pgain [JOINT_2]P
setp pid.y2.Igain [JOINT_2]I
setp pid.y2.Dgain [JOINT_2]D
setp pid.y2.bias [JOINT_2]BIAS
setp pid.y2.FF0 [JOINT_2]FF0
setp pid.y2.FF1 [JOINT_2]FF1
setp pid.y2.FF2 [JOINT_2]FF2
setp pid.y2.deadband [JOINT_2]DEADBAND
setp pid.y2.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.y2.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y2.maxerror 0.012700
net y2-index-enable => pid.y2.index-enable
net y2-enable => pid.y2.enable
net y2-pos-cmd => pid.y2.command
net y2-pos-fb => pid.y2.feedback
net y2-output <= pid.y2.output
# Step Gen signals/setup for tandem axis
setp hm2_7i92.0.stepgen.04.dirsetup [JOINT_2]DIRSETUP
setp hm2_7i92.0.stepgen.04.dirhold [JOINT_2]DIRHOLD
setp hm2_7i92.0.stepgen.04.steplen [JOINT_2]STEPLEN
setp hm2_7i92.0.stepgen.04.stepspace [JOINT_2]STEPSPACE
setp hm2_7i92.0.stepgen.04.position-scale [JOINT_2]STEP_SCALE
setp hm2_7i92.0.stepgen.04.step_type 0
setp hm2_7i92.0.stepgen.04.control-type 1
setp hm2_7i92.0.stepgen.04.maxaccel [JOINT_2]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.04.maxvel [JOINT_2]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net y2-pos-cmd <= joint.2.motor-pos-cmd
net y2-vel-cmd <= joint.2.vel-cmd
net y2-output => hm2_7i92.0.stepgen.04.velocity-cmd
net y2-pos-fb <= hm2_7i92.0.stepgen.04.position-fb
net y2-pos-fb => joint.2.motor-pos-fb
net y2-enable <= joint.2.amp-enable-out
net y2-enable => hm2_7i92.0.stepgen.04.enable
# ---setup home / limit switch signals---
net min-home-y2 => joint.2.home-sw-in
net min-home-y2 => joint.2.neg-lim-sw-in
net y2-pos-limit => joint.2.pos-lim-sw-in
#*******************
# AXIS Z JOINT 3
#*******************
setp pid.z.Pgain [JOINT_3]P
setp pid.z.Igain [JOINT_3]I
setp pid.z.Dgain [JOINT_3]D
setp pid.z.bias [JOINT_3]BIAS
setp pid.z.FF0 [JOINT_3]FF0
setp pid.z.FF1 [JOINT_3]FF1
setp pid.z.FF2 [JOINT_3]FF2
setp pid.z.deadband [JOINT_3]DEADBAND
setp pid.z.maxoutput [JOINT_3]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.012700
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_7i92.0.stepgen.03.dirsetup [JOINT_3]DIRSETUP
setp hm2_7i92.0.stepgen.03.dirhold [JOINT_3]DIRHOLD
setp hm2_7i92.0.stepgen.03.steplen [JOINT_3]STEPLEN
setp hm2_7i92.0.stepgen.03.stepspace [JOINT_3]STEPSPACE
setp hm2_7i92.0.stepgen.03.position-scale [JOINT_3]STEP_SCALE
setp hm2_7i92.0.stepgen.03.step_type 0
setp hm2_7i92.0.stepgen.03.control-type 1
setp hm2_7i92.0.stepgen.03.maxaccel [JOINT_3]STEPGEN_MAXACCEL
setp hm2_7i92.0.stepgen.03.maxvel [JOINT_3]STEPGEN_MAXVEL
# ---closedloop stepper signals---
net z-pos-cmd <= joint.3.motor-pos-cmd
net z-vel-cmd <= joint.3.vel-cmd
net z-output => hm2_7i92.0.stepgen.03.velocity-cmd
net z-pos-fb <= hm2_7i92.0.stepgen.03.position-fb
net z-pos-fb => joint.3.motor-pos-fb
net z-enable <= joint.3.amp-enable-out
net z-enable => hm2_7i92.0.stepgen.03.enable
# ---setup home / limit switch signals---
net max-home-z => joint.3.home-sw-in
net z-neg-limit => joint.3.neg-lim-sw-in
net max-home-z => joint.3.pos-lim-sw-in
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
net dout-00 <= motion.digital-out-00
#qtplasmac uses digital output dout-01:
#net dout-01 <= motion.digital-out-01
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
# ---QTPLASMAC TOOLCHANGE PASSTHROUGH---
net tool:change iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool:prep iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
.ini
[code]# Generated by PNCconf at Wed Oct 22 23:20:44 2025
# Using LinuxCNC version: Master (2.9)
# If you make changes to this file, they will be
# overwritten when you run PNCconf again
[EMC]
MACHINE = test-2
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = qtvcp qtplasmac
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/x/linuxcnc/nc_files
INCREMENTS = 10mm 1mm .1mm .01mm .001mm
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 6.000000
MAX_LINEAR_VELOCITY = 25.000000
MIN_LINEAR_VELOCITY = 0.500000
DEFAULT_ANGULAR_VELOCITY = 12.000000
MAX_ANGULAR_VELOCITY = 180.000000
MIN_ANGULAR_VELOCITY = 1.666667
GEOMETRY = xyz
CYCLE_TIME = 100
[FILTER]
PROGRAM_EXTENSION = .ngc,.nc,.tap GCode File (*.ngc, *.nc, *.tap)
ngc = qtplasmac_gcode
nc = qtplasmac_gcode
tap = qtplasmac_gcode
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G21 G40 G49 G80 G90 G92.1 G94 G97 M52P1
SUBROUTINE_PATH = ./:../../nc_files
USER_M_PATH = ./:../../nc_files
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_7i92.0
[HAL]
HALUI = halui
HALFILE = test-2.hal
HALFILE = qtplasmac_comp.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
[KINS]
JOINTS = 4
KINEMATICS = trivkins coordinates=XYYZ
[TRAJ]
SPINDLES = 3
COORDINATES = XYYZ
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 2.50
MAX_LINEAR_VELOCITY = 25.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
#******************************************
[AXIS_X]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.01
MAX_LIMIT = 2000.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 2000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2
#******************************************
#******************************************
[AXIS_Y]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -0.01
MAX_LIMIT = 3000.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = -3
#******************************************
#******************************************
[AXIS_Z]
# MAX_VEL & MAX_ACC need to be twice the corresponding joint value
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 1500.0
OFFSET_AV_RATIO = 0.5
MIN_LIMIT = -200.0
MAX_LIMIT = 0.01
[JOINT_3]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 1.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 750.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 = 31.25
STEPGEN_MAXACCEL = 937.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 = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -200.0
MAX_LIMIT = 0.01
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -1.000000
HOME_LATCH_VEL = 0.500000
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1
#******************************************
Any help or working HAL example with PROMA 150 + Mesa hardware would be greatly appreciated!
Thank you in advance
Last edit: 23 Oct 2025 18:33 by distro88.
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 20805
- Thank you received: 7089
23 Oct 2025 19:52 #336985
by tommylight
Replied by tommylight on topic torch moving UP when it should be moving DOWN
Moved to "PlasmaC" section.
I am sure this same thing was posted before here, so what happened?
-
Checked your files twice, seems OK, so check the wiring although from your description should be OK.
Since i can not find anything wrong and there is an issue, the quickest solution would be to make a new config.
I am sure this same thing was posted before here, so what happened?
-
Checked your files twice, seems OK, so check the wiring although from your description should be OK.
Since i can not find anything wrong and there is an issue, the quickest solution would be to make a new config.
The following user(s) said Thank You: distro88
Please Log in or Create an account to join the conversation.
- distro88
- Offline
- New Member
-
Less
More
- Posts: 1
- Thank you received: 0
23 Oct 2025 20:34 #336988
by distro88
Replied by distro88 on topic torch moving UP when it should be moving DOWN
I tried that too. I even reinstalled LinuxCNC and changed all the pins — same problem
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 20805
- Thank you received: 7089
23 Oct 2025 21:14 #336990
by tommylight
Replied by tommylight on topic torch moving UP when it should be moving DOWN
-Turn OFF the plasma
-draw a circle in the wizard, some 10cm diameter
-set the Proma THC150 to test mode with at least 5 seconds of time between changes
-put something about 3-5cm above the plate for the probing and remove after probe
-run the circle with the torch ON in QtPlasmaC
Do not turn the plasma ON while testing this.
-draw a circle in the wizard, some 10cm diameter
-set the Proma THC150 to test mode with at least 5 seconds of time between changes
-put something about 3-5cm above the plate for the probing and remove after probe
-run the circle with the torch ON in QtPlasmaC
Do not turn the plasma ON while testing this.
Please Log in or Create an account to join the conversation.
- Hakan
- Offline
- Platinum Member
-
Less
More
- Posts: 936
- Thank you received: 330
23 Oct 2025 21:32 - 23 Oct 2025 21:33 #336991
by Hakan
Replied by Hakan on topic torch moving UP when it should be moving DOWN
You can also follow the signal into the plasmac component.
plasmac.move_up and plasmac.move_down should be the same as your digital inputs.
If you want to see what the plasmac component does, it is only some 20 lines of code
github.com/LinuxCNC/linuxcnc/blob/master...s/plasmac.comp#L1911
the led up and led down reflect the move_up and move_down input to plasmac.
Can help to isolate the problem.
plasmac.move_up and plasmac.move_down should be the same as your digital inputs.
If you want to see what the plasmac component does, it is only some 20 lines of code
github.com/LinuxCNC/linuxcnc/blob/master...s/plasmac.comp#L1911
the led up and led down reflect the move_up and move_down input to plasmac.
Can help to isolate the problem.
Last edit: 23 Oct 2025 21:33 by Hakan.
Please Log in or Create an account to join the conversation.
Moderators: snowgoer540
Time to create page: 0.109 seconds