This commit is contained in:
Thaddeus-Maximus
2026-04-03 15:58:58 -05:00
commit f3953d66ae
1516 changed files with 586639 additions and 0 deletions

View File

@@ -0,0 +1,6 @@
# gmoccapy postgui HAL file for Lagun mill
# These connections are made after the GUI loads so gmoccapy pins exist
# --- Tool offset display ---
net tooloffset-x gmoccapy.tooloffset-x <= motion.tooloffset.x
net tooloffset-z gmoccapy.tooloffset-z <= motion.tooloffset.z

398
configs/lagun_gmoccapy/lagun.hal Executable file
View File

@@ -0,0 +1,398 @@
# Generated by PNCconf at Fri Jul 26 13:18:08 2024
# 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 base_thread_fp=1
loadrt hostmot2
loadrt hm2_pci config="num_encoders=6 num_pwmgens=6"
loadrt mux16 names=jogincr,foincr,mvoincr,soincr
loadrt mux2 count=1
loadrt sum2 count=3
loadrt logic count=1 personality=0x0102
addf logic.0 servo-thread
addf mux2.0 servo-thread
loadrt weighted_sum wsum_sizes=8 #wsum_sizes=[128,64,32,16,8,4,2,1] # default should do conversion??
addf process_wsums servo-thread
addf sum2.0 servo-thread
addf sum2.1 servo-thread
addf sum2.2 servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf mvoincr servo-thread
addf soincr servo-thread
setp hm2_5i24.0.pwmgen.pwm_frequency 15500
setp hm2_5i24.0.pwmgen.pdm_frequency 15500
setp hm2_5i24.0.watchdog.timeout_ns 5000000
loadrt pid names=pid.x,pid.y,pid.s,pid.xl,pid.yl,pid.zl
addf hm2_5i24.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.xl.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.yl.do-pid-calcs servo-thread
addf pid.zl.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i24.0.write servo-thread
# relay outputs
setp hm2_5i24.0.gpio.041.is_output true
setp hm2_5i24.0.gpio.044.is_output true
setp hm2_5i24.0.gpio.046.is_output true
setp hm2_5i24.0.gpio.041.invert_output true
setp hm2_5i24.0.gpio.044.invert_output true
setp hm2_5i24.0.gpio.046.invert_output true
# some inputs
setp hm2_5i24.0.gpio.027.is_output false
setp hm2_5i24.0.gpio.028.is_output false
setp hm2_5i24.0.gpio.029.is_output false # ESTOP
setp hm2_5i24.0.gpio.030.is_output false # START
setp hm2_5i24.0.gpio.031.is_output false # STOP
#net machine_estop_out <= hm2_5i24.0.gpio.029.in_not
#net machine_estop_out => halui.machine.on
# This stuff should work but it seems to be shutting off the machine.
# net btn-estop-out hm2_5i24.0.gpio.029.in_not => halui.machine.on
# net btn-estop-in hm2_5i24.0.gpio.029.in => halui.machine.off
# net btn-pause hm2_5i24.0.gpio.031.in_not => halui.program.pause
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.run
# net btn-start hm2_5i24.0.gpio.030.in_not => halui.program.resume
# first ADC
#setp hm2_5i24.0.gpio.032.is_output false
#setp hm2_5i24.0.gpio.033.is_output false
#setp hm2_5i24.0.gpio.034.is_output false
#setp hm2_5i24.0.gpio.035.is_output false
#setp hm2_5i24.0.gpio.036.is_output false
#setp hm2_5i24.0.gpio.037.is_output false
#setp hm2_5i24.0.gpio.038.is_output false
#setp hm2_5i24.0.gpio.039.is_output false
# second ADC
#setp hm2_5i24.0.gpio.040.is_output false
#setp hm2_5i24.0.gpio.041.is_output false
#setp hm2_5i24.0.gpio.042.is_output false
#setp hm2_5i24.0.gpio.043.is_output false
#setp hm2_5i24.0.gpio.044.is_output false
#setp hm2_5i24.0.gpio.045.is_output false
#setp hm2_5i24.0.gpio.046.is_output false
#setp hm2_5i24.0.gpio.047.is_output false
#net hm2_5i24.0.gpio.032 <= wsum.0.bit.0.in
#net hm2_5i24.0.gpio.033 <= wsum.0.bit.1.in
#net hm2_5i24.0.gpio.034 <= wsum.0.bit.2.in
#net hm2_5i24.0.gpio.035 <= wsum.0.bit.3.in
#net hm2_5i24.0.gpio.036 <= wsum.0.bit.4.in
#net hm2_5i24.0.gpio.037 <= wsum.0.bit.5.in
#net hm2_5i24.0.gpio.038 <= wsum.0.bit.6.in
#net hm2_5i24.0.gpio.039 <= wsum.0.bit.7.in
# ******************
# AXIS X JOINT 0
# ******************
setp pid.x.Pgain [JOINT_0]P
setp pid.x.Igain 0
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
net x-enable => pid.x.enable
net x-pos-mtr => pid.x.feedback
net x-output-mtr <= pid.x.output
setp pid.xl.Pgain [JOINT_0]P_LIN
setp pid.xl.Igain [JOINT_0]I_LIN
setp pid.xl.Dgain [JOINT_0]D_LIN
setp pid.xl.bias 0
setp pid.xl.FF0 0
setp pid.xl.FF1 0
setp pid.xl.FF2 0
setp pid.xl.deadband [JOINT_0]DEADBAND
setp pid.xl.maxoutput [JOINT_0]MAX_OUTPUT
setp pid.xl.error-previous-target true
net x-enable => pid.xl.enable
net x-pos-lin => pid.xl.feedback
net x-output-lin <= pid.xl.output
net x-output-lin => sum2.0.in0
net x-output-mtr => sum2.0.in1
net x-output <= sum2.0.out
net x-pos-cmd <= joint.0.motor-pos-cmd
net x-pos-cmd => pid.xl.command
net x-pos-cmd => pid.x.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.00.output-type 1
setp hm2_5i24.0.pwmgen.00.scale [JOINT_0]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.00.offset-mode 1
net x-output => hm2_5i24.0.pwmgen.00.value
net x-enable joint.0.amp-enable-out => hm2_5i24.0.pwmgen.00.enable
net x-enable => hm2_5i24.0.gpio.046.out
net x-pos-rawcounts <= hm2_5i24.0.encoder.00.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.03.counter-mode 0
setp hm2_5i24.0.encoder.03.filter 1
setp hm2_5i24.0.encoder.03.index-invert 0
setp hm2_5i24.0.encoder.03.index-mask 0
setp hm2_5i24.0.encoder.03.index-mask-invert 0
setp hm2_5i24.0.encoder.03.scale [JOINT_0]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.00.counter-mode 0
setp hm2_5i24.0.encoder.00.filter 1
setp hm2_5i24.0.encoder.00.index-invert 0
setp hm2_5i24.0.encoder.00.index-mask 0
setp hm2_5i24.0.encoder.00.index-mask-invert 0
setp hm2_5i24.0.encoder.00.scale [JOINT_0]ENCODER_LIN_SCALE
net x-pos-mtr <= hm2_5i24.0.encoder.03.position
net x-vel-mtr <= hm2_5i24.0.encoder.03.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.03.index-enable
#net x-pos-mtr => joint.0.motor-pos-fb
net x-pos-lin <= hm2_5i24.0.encoder.00.position
net x-vel-lin <= hm2_5i24.0.encoder.00.velocity
net x-index-enable joint.0.index-enable <=> hm2_5i24.0.encoder.00.index-enable
net x-pos-lin => joint.0.motor-pos-fb
# ******************
# AXIS Y JOINT 1
# ******************
setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain 0
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
net y-enable => pid.y.enable
net y-pos-mtr => pid.y.feedback
net y-output-mtr <= pid.y.output
setp pid.yl.Pgain [JOINT_1]P_LIN
setp pid.yl.Igain [JOINT_1]I_LIN
setp pid.yl.Dgain [JOINT_1]D_LIN
setp pid.yl.bias 0
setp pid.yl.FF0 0
setp pid.yl.FF1 0
setp pid.yl.FF2 0
setp pid.yl.deadband [JOINT_1]DEADBAND
setp pid.yl.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.yl.error-previous-target true
net y-enable => pid.yl.enable
net y-pos-lin => pid.yl.feedback
net y-output-lin <= pid.yl.output
net y-output-lin => sum2.1.in0
net y-output-mtr => sum2.1.in1
net y-output <= sum2.1.out
net y-pos-cmd <= joint.1.motor-pos-cmd
net y-pos-cmd => pid.yl.command
net y-pos-cmd => pid.y.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.02.output-type 1
setp hm2_5i24.0.pwmgen.02.scale [JOINT_1]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.02.offset-mode 1
net y-output => hm2_5i24.0.pwmgen.02.value
net y-enable joint.1.amp-enable-out => hm2_5i24.0.pwmgen.02.enable
# net y-enable => hm2_5i24.0.gpio.044.out # commented out because duplicates x axis
net y-pos-rawcounts <= hm2_5i24.0.encoder.01.rawcounts
# ---Encoder feedback signals/setup---
setp hm2_5i24.0.encoder.04.counter-mode 0
setp hm2_5i24.0.encoder.04.filter 1
setp hm2_5i24.0.encoder.04.index-invert 0
setp hm2_5i24.0.encoder.04.index-mask 0
setp hm2_5i24.0.encoder.04.index-mask-invert 0
setp hm2_5i24.0.encoder.04.scale [JOINT_1]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.01.counter-mode 0
setp hm2_5i24.0.encoder.01.filter 1
setp hm2_5i24.0.encoder.01.index-invert 0
setp hm2_5i24.0.encoder.01.index-mask 0
setp hm2_5i24.0.encoder.01.index-mask-invert 0
setp hm2_5i24.0.encoder.01.scale [JOINT_1]ENCODER_LIN_SCALE
net y-pos-mtr <= hm2_5i24.0.encoder.04.position
net y-vel-mtr <= hm2_5i24.0.encoder.04.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.04.index-enable
#net y-pos-mtr => joint.1.motor-pos-fb
net y-pos-lin <= hm2_5i24.0.encoder.01.position
net y-vel-lin <= hm2_5i24.0.encoder.01.velocity
net y-index-enable joint.1.index-enable <=> hm2_5i24.0.encoder.01.index-enable
net y-pos-lin => joint.1.motor-pos-fb
#*******************
# AXIS Z JOINT 2
#*******************
#setp pid.z.Pgain [JOINT_2]P
#setp pid.z.Igain 0
#setp pid.z.Dgain [JOINT_2]D
#setp pid.z.bias [JOINT_2]BIAS
#setp pid.z.FF0 [JOINT_2]FF0
#setp pid.z.FF1 [JOINT_2]FF1
#setp pid.z.FF2 [JOINT_2]FF2
#setp pid.z.deadband [JOINT_2]DEADBAND
#setp pid.z.maxoutput [JOINT_2]MAX_OUTPUT
#setp pid.z.error-previous-target true
#net z-enable => pid.z.enable
#net z-pos-mtr => pid.z.feedback
#net z-output-mtr <= pid.z.output
setp pid.zl.Pgain [JOINT_2]P
setp pid.zl.Igain [JOINT_2]I
setp pid.zl.Dgain [JOINT_2]D
setp pid.zl.bias 0
setp pid.zl.FF0 0
setp pid.zl.FF1 0
setp pid.zl.FF2 0
setp pid.zl.deadband [JOINT_2]DEADBAND
setp pid.zl.maxoutput [JOINT_2]MAX_OUTPUT
setp pid.zl.error-previous-target true
net z-override => logic.0.in-00
net z-enable => logic.0.in-01
net z-enable-comb <= logic.0.and
sets z-override TRUE
# this section about ferror doesnt work
net z-enable-comb => mux2.0.sel
setp mux2.0.in0 100
setp mux2.0.in1 0.2
net z-ferror <= mux2.0.out
#net z-ferror => ini.2.min_ferror #joint.2.f-error #ini.2.ferror
net z-enable-comb => pid.zl.enable
net z-pos-lin => pid.zl.feedback
net z-output-lin <= pid.zl.output
net z-output-lin => sum2.2.in0
#net z-output-mtr => sum2.2.in1
net z-output <= sum2.2.out
net z-pos-cmd <= joint.2.motor-pos-cmd
net z-pos-cmd => pid.zl.command
#net z-pos-cmd => pid.z.command
# ---PWM Generator signals/setup---
setp hm2_5i24.0.pwmgen.04.output-type 1
setp hm2_5i24.0.pwmgen.04.scale [JOINT_2]OUTPUT_SCALE
setp hm2_5i24.0.pwmgen.04.offset-mode 1
net z-output => hm2_5i24.0.pwmgen.04.value
net z-enable joint.2.amp-enable-out => hm2_5i24.0.pwmgen.04.enable
net z-enable-comb => hm2_5i24.0.gpio.044.out
net z-pos-rawcounts <= hm2_5i24.0.encoder.02.rawcounts
# ---Encoder feedback signals/setup---
#setp hm2_5i24.0.encoder.05.counter-mode 0
#setp hm2_5i24.0.encoder.05.filter 1
#setp hm2_5i24.0.encoder.05.index-invert 0
#setp hm2_5i24.0.encoder.05.index-mask 0
#setp hm2_5i24.0.encoder.05.index-mask-invert 0
#setp hm2_5i24.0.encoder.05.scale [JOINT_2]ENCODER_MTR_SCALE
setp hm2_5i24.0.encoder.02.counter-mode 0
setp hm2_5i24.0.encoder.02.filter 1
setp hm2_5i24.0.encoder.02.index-invert 0
setp hm2_5i24.0.encoder.02.index-mask 0
setp hm2_5i24.0.encoder.02.index-mask-invert 0
setp hm2_5i24.0.encoder.02.scale [JOINT_2]ENCODER_LIN_SCALE
#net z-pos-mtr <= hm2_5i24.0.encoder.05.position
#net z-vel-mtr <= hm2_5i24.0.encoder.05.velocity
#net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.05.index-enable
#net z-pos-mtr => joint.2.motor-pos-fb
net z-pos-lin <= hm2_5i24.0.encoder.02.position
net z-vel-lin <= hm2_5i24.0.encoder.02.velocity
net z-index-enable joint.2.index-enable <=> hm2_5i24.0.encoder.02.index-enable
net z-pos-lin => joint.2.motor-pos-fb
#### SPINDLE ####
#net spindle.0.on spindle-enable
net spindle-enable spindle.0.on => hm2_5i24.0.gpio.041.out
#******************************
# connect miscellaneous signals
#******************************
# ---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---
net tool-change-request <= iocontrol.0.tool-change
net tool-change-confirmed => iocontrol.0.tool-changed
net tool-number <= iocontrol.0.tool-prep-number
# ---Use external manual tool change dialog---
loadusr -W hal_manualtoolchange
net tool-change-request => hal_manualtoolchange.change
net tool-change-confirmed <= hal_manualtoolchange.changed
net tool-number => hal_manualtoolchange.number
# ---ignore tool prepare requests---
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

View File

@@ -0,0 +1,255 @@
# Based on lagun config (PNCconf Fri Jul 26 13:18:08 2024)
# Modified to use GMOCCAPY instead of AXIS
# Using LinuxCNC version: Master (2.9)
[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0
VERSION = 1.1
[DISPLAY]
DISPLAY = gmoccapy
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/linuxcnc/linuxcnc/nc_files
INCREMENTS = 0.1000 0.0500 0.0100 0.0050 0.0010 0.0005 0.0001
DEFAULT_LINEAR_VELOCITY = 3.0
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
CYCLE_TIME = 100
DEFAULT_SPINDLE_SPEED = 500
[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 = python3
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
RS274NGC_STARTUP_CODE = G20 G40 G90 G94 G97 G64 P0.001
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000
[HMOT]
# **** This is for info only ****
CARD0=hm2_5i24.0
[HAL]
HALUI = halui
HALFILE = lagun.hal
HALFILE = xhc-whb04b-6.hal
POSTGUI_HALFILE = gmoccapy_postgui.hal
SHUTDOWN = shutdown.hal
[HALUI]
MDI_COMMAND=(DEBUG,<1>)
MDI_COMMAND=G10 L20 P0 X[#<_x>/2.0]
MDI_COMMAND=G10 L20 P0 Y[#<_y>/2.0]
MDI_COMMAND=(DEBUG,<4>)
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=G10 L20 P0 X0
MDI_COMMAND=G10 L20 P0 Y0
MDI_COMMAND=G10 L20 P0 Z0
MDI_COMMAND=(DEBUG,<5>)
MDI_COMMAND=(DEBUG,<9>)
MDI_COMMAND=(DEBUG,<10>)
MDI_COMMAND=(DEBUG,<2>)
MDI_COMMAND=(DEBUG,<12>)
MDI_COMMAND=(DEBUG,<13>)
MDI_COMMAND=(DEBUG,<14>)
[KINS]
JOINTS = 3
KINEMATICS = trivkins coordinates=XYZ
[TRAJ]
COORDINATES = XYZ
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 3.0
MAX_LINEAR_VELOCITY = 1.00
NO_FORCE_HOMING = 1
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_QUILL_UP = 1
#******************************************
[AXIS_X]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.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.
P = 0
I = 0
D = 4
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 300
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0.0005
MAX_OUTPUT = 0
ENCODER_LIN_SCALE = 5085.5
ENCODER_MTR_SCALE = -27939.6
# 5.4 is the ratio between linear and motor scales, roughly
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -24.0
MAX_LIMIT = +24.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 2
OUTPUT_SCALE = 1
OUTPUT_OFFSET = 0
[AXIS_Y]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -12.0
MAX_LIMIT = +12.0
[JOINT_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
MIN_FERROR = 0.2
MAX_VELOCITY = 100.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.
P = 0
I = 0
D = 5
FF0 = 0
FF1 = 0.6
FF2 = 0
P_LIN = 350
I_LIN = 500
D_LIN = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 1
ENCODER_LIN_SCALE = 5085.4
ENCODER_MTR_SCALE = 27453.6
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -12
MAX_LIMIT = +12
HOME_OFFSET = 0.0
HOME_SEQUENCE = 3
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
#******************************************
#******************************************
[AXIS_Z]
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 30.0
MIN_LIMIT = -4.0
MAX_LIMIT = 1.0
[JOINT_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.5
# SETTING MIN_FERROR TO 100 ALLOWS Z AXIS TO DO WHATEVER. IDEALLY ITS 0.2
MIN_FERROR = 100
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 = 200
I = 300
D = 2
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 10000
DIRHOLD = 10000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 200.0
MIN_LIMIT = -4.0
MAX_LIMIT = +1.0
HOME_OFFSET = 0.0
HOME_SEQUENCE = 1
OUTPUT_SCALE = -1
OUTPUT_OFFSET = 0
ENCODER_LIN_SCALE = -10075
#******************************************
[SPINDLE_0]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.488159
5222 -0.501329
5223 -1.515298
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,119 @@
5161 0.000000
5162 0.000000
5163 0.000000
5164 0.000000
5165 0.000000
5166 0.000000
5167 0.000000
5168 0.000000
5169 0.000000
5181 0.000000
5182 0.000000
5183 0.000000
5184 0.000000
5185 0.000000
5186 0.000000
5187 0.000000
5188 0.000000
5189 0.000000
5210 0.000000
5211 0.000000
5212 0.000000
5213 0.000000
5214 0.000000
5215 0.000000
5216 0.000000
5217 0.000000
5218 0.000000
5219 0.000000
5220 1.000000
5221 0.488159
5222 -0.501329
5223 -1.515298
5224 0.000000
5225 0.000000
5226 0.000000
5227 0.000000
5228 0.000000
5229 0.000000
5230 0.000000
5241 0.000000
5242 0.000000
5243 0.080900
5244 0.000000
5245 0.000000
5246 0.000000
5247 0.000000
5248 0.000000
5249 0.000000
5250 0.000000
5261 0.000000
5262 0.000000
5263 0.000000
5264 0.000000
5265 0.000000
5266 0.000000
5267 0.000000
5268 0.000000
5269 0.000000
5270 0.000000
5281 0.000000
5282 0.000000
5283 0.000000
5284 0.000000
5285 0.000000
5286 0.000000
5287 0.000000
5288 0.000000
5289 0.000000
5290 0.000000
5301 0.000000
5302 0.000000
5303 0.000000
5304 0.000000
5305 0.000000
5306 0.000000
5307 0.000000
5308 0.000000
5309 0.000000
5310 0.000000
5321 0.000000
5322 0.000000
5323 0.000000
5324 0.000000
5325 0.000000
5326 0.000000
5327 0.000000
5328 0.000000
5329 0.000000
5330 0.000000
5341 0.000000
5342 0.000000
5343 0.000000
5344 0.000000
5345 0.000000
5346 0.000000
5347 0.000000
5348 0.000000
5349 0.000000
5350 0.000000
5361 0.000000
5362 0.000000
5363 0.000000
5364 0.000000
5365 0.000000
5366 0.000000
5367 0.000000
5368 0.000000
5369 0.000000
5370 0.000000
5381 0.000000
5382 0.000000
5383 0.000000
5384 0.000000
5385 0.000000
5386 0.000000
5387 0.000000
5388 0.000000
5389 0.000000
5390 0.000000

View File

@@ -0,0 +1,80 @@
[DEFAULT]
dro_digits = 4
dro_size = 28
abs_color = #0000FF
rel_color = #000000
dtg_color = #FFFF00
homed_color = #00FF00
unhomed_color = #FF0000
enable_dro = False
scale_jog_vel = 1.0
scale_spindle_override = 1
scale_feed_override = 1
scale_rapid_override = 1
spindle_bar_min = 0.0
spindle_bar_max = 6000.0
turtle_jog_factor = 20
hide_turtle_jog_button = False
unlock_code = 123
toggle_readout = True
spindle_start_rpm = 500.0
kbd_height = 250
blockheight = 0.0
reload_tool = False
open_file =
screen1 = window
hide_titlebar = False
x_pos = 40
y_pos = 30
width = 979
height = 750
use_toolmeasurement = False
gtk_theme = Follow System Theme
icon_theme = classic
audio_enabled = True
audio_alert = /usr/share/sounds/freedesktop/stereo/dialog-warning.oga
audio_error = /usr/share/sounds/freedesktop/stereo/dialog-error.oga
grid_size = 1.0
view = z
mouse_btn_mode = 4
hide_cursor = False
hide_tooltips = False
system_name_tool = Tool
system_name_g5x = G5x
system_name_rot = Rot
system_name_g92 = G92
system_name_g54 = G54
system_name_g55 = G55
system_name_g56 = G56
system_name_g57 = G57
system_name_g58 = G58
system_name_g59 = G59
system_name_g59.1 = G59.1
system_name_g59.2 = G59.2
system_name_g59.3 = G59.3
jump_to_dir = /home/linuxcnc
show_keyboard_on_offset = False
show_keyboard_on_tooledit = False
show_keyboard_on_edit = True
show_keyboard_on_mdi = True
show_keyboard_on_file_selection = False
x_pos_popup = 45.0
y_pos_popup = 55
width_popup = 250.0
max_messages = 10
message_font = sans 10
use_frames = True
blockdel = False
show_offsets = True
show_dtg = False
view_tool_path = False
view_dimension = False
run_from_line = no_run
unlock_way = use
show_preview_on_offset = False
use_keyboard_shortcuts = True
offset_axis_y = -0.1
offset_axis_x = -0.1875
offset_axis_z = 0.0
tool_in_spindle = 3

View File

@@ -0,0 +1,2 @@
# Include your shutdown HAL commands here
# This file will not be overwritten when you run PNCconf again

View File

@@ -0,0 +1,6 @@
T3 P3 D+0.187500 ;3/16in flat
T1 P1 D+0.187500 I+7.000000 ;0.201in DrillBit
T5 P5 D+0.250000 ;1/4
T2 P2 D+0.437500 ;7/16in MillBit
T4 P4 D+2.000000 ;2 inch mill Sample Tool
T0 P0 ;comment

View File

@@ -0,0 +1,170 @@
# ######################################################################
# load pendant components
# ######################################################################
loadusr -W xhc-whb04b-6 -HsfB
# ######################################################################
# pendant signal configuration
# ######################################################################
# On/Off signals
net machine.is-on halui.machine.is-on whb.halui.machine.is-on
# net pdnt.machine.on whb.halui.machine.on halui.machine.on
# net pdnt.machine.off whb.halui.machine.off halui.machine.off
# program related signals
net pdnt.program.is-idle whb.halui.program.is-idle halui.program.is-idle
net pdnt.program.is-paused whb.halui.program.is-paused halui.program.is-paused
net pdnt.program-is-running whb.halui.program.is-running halui.program.is-running
#net pdnt.program.resume whb.halui.program.resume halui.program.resume
#net pdnt.program.pause whb.halui.program.pause halui.program.pause
#net pdnt.program.run whb.halui.program.run halui.program.run
#net pdnt.program.stop whb.halui.program.stop halui.program.stop
# machine mode related signals
net pdnt.mode.auto whb.halui.mode.auto halui.mode.auto
net pdnt.mode.manual whb.halui.mode.manual halui.mode.manual
net pdnt.mode.mdi whb.halui.mode.mdi halui.mode.mdi
net pdnt.mode.joint whb.halui.mode.joint halui.mode.joint
net pdnt.mode.teleop whb.halui.mode.teleop halui.mode.teleop
net pdnt.mode.is-auto halui.mode.is-auto whb.halui.mode.is-auto
net pdnt.mode.is-manual halui.mode.is-manual whb.halui.mode.is-manual
net pdnt.mode.is-mdi halui.mode.is-mdi whb.halui.mode.is-mdi
net pdnt.mode.is-joint halui.mode.is-joint whb.halui.mode.is-joint
net pdnt.mode.is-teleop halui.mode.is-teleop whb.halui.mode.is-teleop
# "is-homed" axis signal for allowing pendant when machine is not homed
net pdnt.axis.X.is-homed halui.joint.0.is-homed whb.halui.joint.x.is-homed
net pdnt.axis.Y.is-homed halui.joint.1.is-homed whb.halui.joint.y.is-homed
net pdnt.axis.Z.is-homed halui.joint.2.is-homed whb.halui.joint.z.is-homed
# "selected axis" signals
net pdnt.axis.X.select whb.halui.axis.x.select halui.axis.x.select
net pdnt.axis.y.select whb.halui.axis.y.select halui.axis.y.select
net pdnt.axis.Z.select whb.halui.axis.z.select halui.axis.z.select
# --- Jog signals ---
# GMOCCAPY does not create axis.x.jog-* pins like AXIS does.
# Use joint.N.jog-* pins instead (provided by the motion module).
net pdnt.axis.x.jog-scale whb.axis.x.jog-scale joint.0.jog-scale
net pdnt.axis.y.jog-scale whb.axis.y.jog-scale joint.1.jog-scale
net pdnt.axis.z.jog-scale whb.axis.z.jog-scale joint.2.jog-scale
net pdnt.axis.x.jog-counts whb.axis.x.jog-counts joint.0.jog-counts
net pdnt.axis.y.jog-counts whb.axis.y.jog-counts joint.1.jog-counts
net pdnt.axis.z.jog-counts whb.axis.z.jog-counts joint.2.jog-counts
net pdnt.axis.x.jog-enable whb.axis.x.jog-enable joint.0.jog-enable
net pdnt.axis.y.jog-enable whb.axis.y.jog-enable joint.1.jog-enable
net pdnt.axis.z.jog-enable whb.axis.z.jog-enable joint.2.jog-enable
net pdnt.axis.x.jog-vel-mode whb.axis.x.jog-vel-mode joint.0.jog-vel-mode
net pdnt.axis.y.jog-vel-mode whb.axis.y.jog-vel-mode joint.1.jog-vel-mode
net pdnt.axis.z.jog-vel-mode whb.axis.z.jog-vel-mode joint.2.jog-vel-mode
# macro buttons to MDI commands
net pdnt.macro-1 whb.button.macro-1 halui.mdi-command-01 # use MDI command from main.ini
net pdnt.macro-2 whb.button.macro-2 halui.mdi-command-02 # use MDI command from main.ini or used for Hardcoded lube on/off
#net pdnt.reserved.for.spindle+ whb.button.macro-3 # Hardcoded for spindle+ whb.halui.spindle.increase
#net pdnt.reserved.for.spindle- whb.button.macro-4 # Hardcoded for spindle- whb.halui.spindle.decrease
net pdnt.macro-5 whb.button.macro-5 halui.mdi-command-05 # use MDI command from main.ini
net pdnt.macro-6 whb.button.macro-6 halui.mdi-command-06 # use MDI command from main.ini
net pdnt.macro-7 whb.button.macro-7 halui.mdi-command-07 # use MDI command from main.ini
#net pdnt.reserved.for.spindle.dir whb.button.macro-8 # Hardcoded for spindle direction inside pendant
net pdnt.macro-9 whb.button.macro-9 halui.mdi-command-09 # use MDI command from main.ini
net pdnt.reserved.for.ABS-REL whb.button.macro-10 # Hardcoded for swap Dro Relative/Absolue
net pdnt.macro-14 whb.button.macro-14 halui.mdi-command-14 # use MDI command from main.ini
net pdnt.reserved.for.flood whb.button.macro-15 # Hardcoded for halui.flood on/off
net pdnt.reserved.for.mist whb.button.macro-16 # Hardcoded for halui.mist on/off
net pdnt.macro.11 whb.button.macro-11 halui.mdi-command-11 # use MDI command from main.ini
net pdnt.macro.12 whb.button.macro-12 halui.mdi-command-12 # use MDI command from main.ini
net pdnt.macro.13 whb.button.macro-13 halui.mdi-command-13 # use MDI command from main.ini
# flood and mist toggle signals
net pdnt.flood.is-on whb.halui.flood.is-on halui.flood.is-on #return signal is on or off
net pdnt.flood.off whb.halui.flood.off halui.flood.off #reserved whb.button.macro-15
net pdnt.flood.on whb.halui.flood.on halui.flood.on #reserved whb.button.macro-15
net pdnt.mist.is-on whb.halui.mist.is-on halui.mist.is-on #return signal is on or off
net pdnt.mist.off whb.halui.mist.off halui.mist.off #reserved whb.button.macro-16
net pdnt.mist.on whb.halui.mist.on halui.mist.on #reserved whb.button.macro-16
#net pdnt.lube.is-on whb.halui.lube.is-on halui.lube.is-on #return signal is on or off
#net pdnt.lube.off whb.halui.lube.off halui.lube.off #reserved whb.button.macro-2
#net pdnt.lube.on whb.halui.lube.on halui.lube.on #reserved whb.button.macro-2
# default function button signals
net pdnt.button.m-home whb.button.m-home halui.home-all # Homing use built-in halui home all
net pdnt.button.safe-z whb.button.safe-z halui.mdi-command-03 # Safe-z use MDI command from main.ini
net pdnt.button.w-home whb.button.w-home halui.mdi-command-04 # Unpark use MDI command from main.ini
net pdnt.button.probe-z whb.button.probe-z halui.mdi-command-08 # Probe-Z use MDI command from main.ini
# unused, just exposes pendant internal status or as basic button
#net pdnt.mode-lead whb.halui.feed.selected-lead
#net pdnt.mode-mpg-feed whb.halui.feed.selected-mpg-feed
#net pdnt.mode-continuous whb.halui.feed.selected-continuous
#net pdnt.mode-step whb.halui.feed.selected-step
#net pdnt.button.mode-mpg whb.button.mode-continuous
#net pdnt.button.mode-step whb.button.mode-step
#net pdnt.button.fn whb.button.fn
#net pdnt.button.reset whb.button.reset
#net pdnt.button.stop whb.button.stop
#net pdnt.button.start-pause whb.button.start-pause
#net pdnt.button.s-on-off whb.button.s-on-off
#net pdnt.button.spindle-plus whb.button.spindle-plus
#net pdnt.button.spindle-minus whb.button.spindle-minus
#net pdnt.button.feed-plus whb.button.feed-plus
#net pdnt.button.feed-minus whb.button.feed-minus
# spindle related signals
#net pdnt.spindle.is-on whb.halui.spindle.is-on spindle.0.on
#net pdnt.spindle.start whb.halui.spindle.start halui.spindle.0.start
#net pdnt.spindle.stop whb.halui.spindle.stop halui.spindle.0.stop
#net pdnt.spindle.forward whb.halui.spindle.forward halui.spindle.0.forward
#net pdnt.spindle.reverse whb.halui.spindle.reverse halui.spindle.0.reverse
#net pdnt.spindle.increase whb.halui.spindle.increase halui.spindle.0.increase # reserved whb.button.macro-3
#net pdnt.spindle.decrease whb.halui.spindle.decrease halui.spindle.0.decrease # reserved whb.button.macro-4
#net pdnt.spindle-speed-abs whb.halui.spindle-speed-cmd spindle.0.speed-out-abs # speed cmd from motion in rpm absolue
# spindle speed override signals
#net pdnt.spindle-override.scale whb.halui.spindle-override.scale halui.spindle.0.override.scale # needed for both spindle+/- and spindleoverride+/- button
#net pdnt.spindle.override.value halui.spindle.0.override.value whb.halui.spindle-override.value # GUI feed rate related signals
#net pdnt.spindle.override.increase whb.halui.spindle-override.increase halui.spindle.0.override.increase
#net pdnt.spindle.override.decrease whb.halui.spindle-override.decrease halui.spindle.0.override.decrease
# GUI feed rate related signals can be used when program is running moving GUI slider
net pdnt.feed-override.scale whb.halui.feed-override.scale halui.feed-override.scale # needed for both FeedOverride+/- and rotary knob button
net pdnt.max-velocity.value whb.halui.max-velocity.value halui.max-velocity.value # needed for Mpg mode : button feed position% * max-velocity = Mpg feedrate
# take feed override min/max values from/to the GUI
net pdnt.feed-override.value halui.feed-override.value whb.halui.feed-override.value # GUI feed rate related signals
net pdnt.feed-override.increase whb.halui.feed-override.increase halui.feed-override.increase
net pdnt.feed-override.decrease whb.halui.feed-override.decrease halui.feed-override.decrease
# axis position related signals feedback
net pdnt.axis.x.pos-feedback halui.axis.x.pos-feedback whb.halui.axis.x.pos-feedback
net pdnt.axis.y.pos-feedback halui.axis.y.pos-feedback whb.halui.axis.y.pos-feedback
net pdnt.axis.z.pos-feedback halui.axis.z.pos-feedback whb.halui.axis.z.pos-feedback
# axis position related signals relative
net pdnt.axis.x.pos-relative halui.axis.x.pos-relative whb.halui.axis.x.pos-relative
net pdnt.axis.y.pos-relative halui.axis.y.pos-relative whb.halui.axis.y.pos-relative
net pdnt.axis.z.pos-relative halui.axis.z.pos-relative whb.halui.axis.z.pos-relative