[EMC]
VERSION = 1.1
MACHINE = QtPyVCP - probe_basic Sim
DEBUG = 0

[DISPLAY]
DISPLAY = probe_basic
OPEN_FILE = ~/linuxcnc/nc_files/pb_examples/blank.ngc
CONFIRM_EXIT = False
LOG_FILE = sim.log
LOG_LEVEL = DEBUG
PREFERENCE_FILE = sim.pref
CONFIG_FILE = custom_config.yml
POSITION = 0x0
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 2.000000
MIN_SPINDLE_OVERRIDE = 0.500000
DEFAULT_SPINDLE_SPEED = 300
DEFAULT_LINEAR_VELOCITY = 10.00000
MAX_LINEAR_VELOCITY = 10.000000
MIN_LINEAR_VELOCITY = 0.016670
DEFAULT_ANGULAR_VELOCITY = 36.000000
MAX_ANGULAR_VELOCITY = 360.000000
MIN_ANGULAR_VELOCITY = 1.666667
PROGRAM_PREFIX = ~/linuxcnc/nc_files
INTRO_GRAPHIC = pbsplash.png
INTRO_TIME = 5
INCREMENTS = JOG .01in .001in .0001in
GEOMETRY = xyz
USER_TABS_PATH = user_tabs/
USER_BUTTONS_PATH = user_buttons/
USER_DROS_PATH = user_dro_display/
DRO_DISPLAY = XYZ
GEOMETRY = XYZ
OFFSET_COLUMNS = XYZR
TOOL_TABLE_COLUMNS = TZDR
KEYBOARD_JOG = true
KEYBOARD_JOG_SAFETY_OFF = true
# ATC tab display options, 0 = no atc tab displayed, 1 = Carousel atc display, 2 = rack atc display
ATC_TAB_DISPLAY = 0
#USER_ATC_BUTTONS_PATH = user_atc_buttons/

# File Paths:
#   File paths can be relative to the config dir:
#     LOG_FILE = qtpyvcp.log
#   Or relative to $HOME: (May not be compatible with other GUIs!)
#     LOG_FILE = ~/qtpyvcp.log
#   Or at an absolute location:
#     LOG_FILE = /home/<USER>/qtpyvcp.log
#   Enviroment vars are also expanded:
#     LOG_FILE = $CONFIG_DIR/qtpyvcp.log

[FILTER]
PROGRAM_EXTENSION = .nc,.txt,.tap Other NC files
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
    png = image-to-gcode
    gif = image-to-gcode
    jpg = image-to-gcode

[ATC]
# Carousel images are available for 8, 10, 12, 14, 16, 18, 20, 21, 24 pocket changers
POCKETS = 12
# The Z height your spindle needs to be at to clamp/unclamp a tool from the ATC platter
Z_TOOL_CHANGE_HEIGHT = -3.1900
# The Z clearance height in machine coordinates your spindle needs to be at to clear the tools during carousel rotation 
Z_TOOL_CLEARANCE_HEIGHT = 0.0000
# Step Time should be set to the approximate time it takes your ATC to rotate from one pocket to the next entry is in milliseconds(1 second = 1000ms)
# This just adjust the speed of the ATC tab Carousel GFX rotation (default if omitted is 1000ms)
STEP_TIME = 500

[RS274NGC]
RS274NGC_STARTUP_CODE = F10 S300 G20 G17 G40 G49 G54 G64 P0.001 G80 G90 G91.1 G92.1 G94 G97 G98
PARAMETER_FILE = sim.var
OWORD_NARGS = 1
NO_DOWNCASE_OWORD = 1
SUBROUTINE_PATH = subroutines

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

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[HAL]
HALFILE = hallib/core_sim_3.hal
HALFILE = hallib/spindle_sim.hal
HALFILE = hallib/simulated_home_probe_basic.hal
HALFILE = hallib/sim_cannon.hal
HALFILE = custom_hal.hal
HALUI = halui
POSTGUI_HALFILE = hallib/probe_basic_postgui.hal
TWOPASS = on

[HALUI]

[TRAJ]
AXES = 3
SPINDLES = 1
COORDINATES = X Y Z
HOME = 0 0 0 0 0
LINEAR_UNITS = inch
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 0.50
MAX_LINEAR_VELOCITY = 10.000

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

[KINS]
KINEMATICS = trivkins coordinates=XYZ
JOINTS = 3

#==================
#      X Axis
#==================

[AXIS_X]
MIN_LIMIT = -0.001
MAX_LIMIT = 26.50
MAX_VELOCITY = 10.0
MAX_ACCELERATION = 30.0

[JOINT_0]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 10
MAX_ACCELERATION = 20.0
BACKLASH = 0.003
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -0.001
MAX_LIMIT = 26.5
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 3.0
HOME_LATCH_VEL = 0.2
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

#==================
#      Y Axis
#==================

[AXIS_Y]
MIN_LIMIT = -16.01
MAX_LIMIT = 0.0000

MAX_VELOCITY = 10.0
MAX_ACCELERATION = 20.0

[JOINT_1]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 10
MAX_ACCELERATION = 20.0
BACKLASH = 0.003
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -16.01
MAX_LIMIT = 0.0000
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 0.0
HOME_SEARCH_VEL = 3.0
HOME_LATCH_VEL = 0.2
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

#==================
#      Z Axis
#==================

[AXIS_Z]
MIN_LIMIT = -18.0
MAX_LIMIT = 0.010
MAX_VELOCITY = 10
MAX_ACCELERATION = 20.0

[JOINT_2]
TYPE = LINEAR
HOME = 0.000
MAX_VELOCITY = 10
MAX_ACCELERATION = 20.0
BACKLASH = 0.003
INPUT_SCALE = 4000
OUTPUT_SCALE = 1.000
MIN_LIMIT = -18.00
MAX_LIMIT = 0.010
FERROR = 0.050
MIN_FERROR = 0.010
HOME_OFFSET = 1.0
HOME_SEARCH_VEL = 3.0
HOME_LATCH_VEL = 0.2
HOME_USE_INDEX = NO
HOME_IGNORE_LIMITS = NO
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

#==================
#      A Axis
#==================

#[AXIS_A]
#MIN_LIMIT = -9999.0
#MAX_LIMIT = 9999.0
#MAX_VELOCITY = 360.0
#MAX_ACCELERATION = 1200.0

#[JOINT_3]
#TYPE = ANGULAR
#MIN_LIMIT = -9999.0
#MAX_LIMIT = 9999.0
#MAX_VELOCITY = 360
#MAX_ACCELERATION = 1200.0
#BACKLASH = 0.003
#HOME = 0.000
#HOME_OFFSET = 1.0
#HOME_SEARCH_VEL = 3.0
#HOME_LATCH_VEL = 0.2
#HOME_SEQUENCE = 0
#HOME_IS_SHARED = 1
#HOME_USE_INDEX = NO
#HOME_IGNORE_LIMITS = NO

#==================
#      C Axis
#==================

#[AXIS_C]
#MIN_LIMIT = -9999.0
#MAX_LIMIT = 9999.0
#MAX_VELOCITY = 360.0
#MAX_ACCELERATION = 1200.0

#[JOINT_4]
#TYPE = ANGULAR
#MIN_LIMIT = -9999.0
#MAX_LIMIT = 9999.0
#MAX_VELOCITY = 360
#MAX_ACCELERATION = 1200.0
#BACKLASH = 0.003
#HOME = 0.000
#HOME_OFFSET = 1.0
#HOME_SEARCH_VEL = 3.0
#HOME_LATCH_VEL = 0.2
#HOME_SEQUENCE = 0
#HOME_IS_SHARED = 1
#HOME_USE_INDEX = NO
#HOME_IGNORE_LIMITS = NO

#==================
#     Spindle
#==================

[SPINDLE_9]
P = 0
I = 0
D = 0
FF0 = 1
FF1 = 0
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 2000
