rendered paste body# core HAL config file for steppers
# first load the core RT modules that will be needed
# kinematics
loadrt trivkins
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD traj_period_nsec=[EMCMOT]TRAJ_PERIOD key=[EMCMOT]SHMEM_KEY num_joints=[TRAJ]AXES
# stepper module, three step generators, all three using step/dir
loadrt stepgen step_type=11,11
# hook functions to base thread (high speed thread for step generation)
addf stepgen.make-pulses base-thread
# hook functions to servo thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
# connect position commands from motion module to step generator
newsig Xpos-cmd float
linksp Xpos-cmd <= axis.0.motor-pos-cmd
linksp Xpos-cmd => stepgen.0.position-cmd
newsig Ypos-cmd float
linksp Ypos-cmd <= axis.1.motor-pos-cmd
linksp Ypos-cmd => stepgen.1.position-cmd
#newsig Zpos-cmd float
#linksp Zpos-cmd <= axis.2.motor-pos-cmd
#linksp Zpos-cmd => stepgen.2.position-cmd
# connect position feedback from step generators
# to motion module
newsig Xpos-fb float
linksp Xpos-fb <= stepgen.0.position-fb
linksp Xpos-fb => axis.0.motor-pos-fb
newsig Ypos-fb float
linksp Ypos-fb <= stepgen.1.position-fb
linksp Ypos-fb => axis.1.motor-pos-fb
#newsig Zpos-fb float
#linksp Zpos-fb <= stepgen.2.position-fb
#linksp Zpos-fb => axis.2.motor-pos-fb
# connect enable signals for step generators
newsig Xen bit
linksp Xen <= axis.0.amp-enable-out
linksp Xen => stepgen.0.enable
newsig Yen bit
linksp Yen <= axis.1.amp-enable-out
linksp Yen => stepgen.1.enable
#ewsig Zen bit
#linksp Zen <= axis.2.amp-enable-out
#linksp Zen => stepgen.2.enable
# connect signals to step pulse generator outputs
newsig XA bit
newsig XB bit
newsig XC bit
newsig XD bit
newsig YA bit
newsig YB bit
newsig YC bit
newsig YD bit
#newsig Zstep bit
#newsig Zdir bit
linkps stepgen.0.phase-A XA
linkps stepgen.0.phase-B XB
linkps stepgen.0.phase-C XC
linkps stepgen.0.phase-D XD
linkps stepgen.1.phase-A YA
linkps stepgen.1.phase-B YB
linkps stepgen.1.phase-C YC
linkps stepgen.1.phase-D YD
#linkps stepgen.2.step Zstep
#linkps stepgen.2.dir Zdir
# set stepgen module scaling - get values from ini file
setp stepgen.0.position-scale [AXIS_0]INPUT_SCALE
setp stepgen.1.position-scale [AXIS_1]INPUT_SCALE
#setp stepgen.2.position-scale [AXIS_2]INPUT_SCALE
# set stepgen module velocity limits - get values from ini file
setp stepgen.0.maxvel [AXIS_0]STEPGEN_MAXVEL
setp stepgen.1.maxvel [AXIS_1]STEPGEN_MAXVEL
#setp stepgen.2.maxvel [AXIS_2]STEPGEN_MAXVEL
# set stepgen module accel limits - get values from ini file
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
#setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL