[APPLICATIONS]
#APP = halshow --fformat %12.4f puma560.halshow

[EMC]
VERSION = 1.1
MACHINE = puma560 (switchkins) (inch)
#+ Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
DEBUG = 0

[KINS]
JOINTS= 6
KINEMATICS= genserkins

[HAL]
HALUI   = halui
HALCMD  = loadusr -W puma560gui
HALFILE = LIB:basic_sim.tcl
HALFILE = puma560_dh.hal
HALCMD  = net :kinstype-select <= motion.analog-out-03 => motion.switchkins-type
POSTGUI_HALFILE = puma560_postgui.hal

[RS274NGC]
    USER_M_PATH = ./mcodes
SUBROUTINE_PATH = ./remap_subs
   HAL_PIN_VARS = 1
          REMAP = M428  modalgroup=10  ngc=428remap
          REMAP = M429  modalgroup=10  ngc=429remap
          REMAP = M430  modalgroup=10  ngc=430remap
RS274NGC_STARTUP_CODE = G20 G10L2P0 x19.2 y5.5 z9.4 a90 b0 c90 (debug, ini: startup offsets set)
PARAMETER_FILE  = puma560.var

[HALUI]
# MDI-COMMANDS 00,01,02 (remapped) do not alter limits when switching:
# M428:genserkins    (kinstype==0 startupDEFAULT)
# M429:identity kins (kinstype==1)
# M430:userk kins    (kinstype==2)
MDI_COMMAND = M428
MDI_COMMAND = M429
MDI_COMMAND = M430
# MDI-COMMANDS 03,04,05 ALTER limits when switching
MDI_COMMAND = M128
MDI_COMMAND = M129
MDI_COMMAND = M130

[DISPLAY]
DISPLAY = axis
CYCLE_TIME = 0.200
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.0
PROGRAM_PREFIX = ../../nc_files/
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PYVCP = puma560.xml

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
SERVO_PERIOD = 1000000

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[TRAJ]
COORDINATES = X Y Z A B C
LINEAR_UNITS = inch
ANGULAR_UNITS = deg
DEFAULT_LINEAR_VELOCITY = 1.0
MAX_LINEAR_VELOCITY = 10.0
DEFAULT_LINEAR_ACCELERATION = 10.0
MAX_LINEAR_ACCELERATION = 20.0
MAX_ANGULAR_VELOCITY = 100

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = puma.tbl

[AXIS_X]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -100
MAX_LIMIT =  100

[AXIS_Y]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -100
MAX_LIMIT =  100

[AXIS_Z]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -100
MAX_LIMIT =  100

[AXIS_A]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT =  360.0

[AXIS_B]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT =  360.0

[AXIS_C]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT =  360.0

[JOINT_0]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -180.0
MAX_LIMIT = 180.0
HOME_OFFSET = 0.0
HOME = 0.000
HOME_SEQUENCE = 0

[JOINT_1]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
HOME_OFFSET = 0.0
HOME = 0.000
HOME_SEQUENCE = 0

[JOINT_2]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -215.0
MAX_LIMIT = 35.0
HOME_OFFSET = 0.0
HOME = 0.000
HOME_SEQUENCE = 0

[JOINT_3]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
HOME_OFFSET = 0.0
HOME = 0.000
HOME_SEQUENCE = 0

[JOINT_4]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
HOME_OFFSET = 0.0
# avoid kinematisInverse fail:
HOME = 0.1
HOME_SEQUENCE = 0

[JOINT_5]
TYPE = ANGULAR
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 200.0
MIN_LIMIT = -360.0
MAX_LIMIT = 360.0
HOME_OFFSET = 0.0
HOME = 0.000
HOME_SEQUENCE = 0
