Skip to content

Instantly share code, notes, and snippets.

@flyingoctopus
Forked from kinsamanka/MF70.hal
Created May 1, 2025 08:33
Show Gist options
  • Save flyingoctopus/412f66f1bf102cc14413a532e19afabb to your computer and use it in GitHub Desktop.
Save flyingoctopus/412f66f1bf102cc14413a532e19afabb to your computer and use it in GitHub Desktop.
# kinematics
loadrt trivkins
# trajectory planner
loadrt tp
# motion controller, get name and thread periods from ini file
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES kins=trivkins tp=tp
loadrt picnc
addf picnc.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf picnc.update servo-thread
addf picnc.write servo-thread
net spindle-cmd <= motion.spindle-speed-out
setp picnc.axis.0.scale [AXIS_0]SCALE
setp picnc.axis.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => picnc.axis.0.position-cmd
net xpos-fb picnc.axis.0.position-fb => axis.0.motor-pos-fb
setp picnc.axis.1.scale [AXIS_1]SCALE
setp picnc.axis.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => picnc.axis.1.position-cmd
net ypos-fb picnc.axis.1.position-fb => axis.1.motor-pos-fb
setp picnc.axis.2.scale [AXIS_2]SCALE
setp picnc.axis.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => picnc.axis.2.position-cmd
net zpos-fb picnc.axis.2.position-fb => axis.2.motor-pos-fb
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
setp picnc.out.enable 1
[EMC]
MACHINE = MF70
DEBUG = 0
[DISPLAY]
DISPLAY = mini
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/pi/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
[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 = python
[TASK]
TASK = milltask
CYCLE_TIME = 0.010
[RS274NGC]
PARAMETER_FILE = linuxcnc.var
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
[HAL]
HALFILE = MF70.hal
[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.44
MAX_LINEAR_VELOCITY = 4.40
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 4.35416666667
MAX_ACCELERATION = 6.0
STEPGEN_MAXACCEL = 7.5
SCALE = 1200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 150.0
HOME_OFFSET = 0.0
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 3.95833333333
MAX_ACCELERATION = 6.0
STEPGEN_MAXACCEL = 7.5
SCALE = 1200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 46.0
HOME_OFFSET = 0.0
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 3.95833333333
MAX_ACCELERATION = 6.0
STEPGEN_MAXACCEL = 7.5
SCALE = 1200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -10.001
MAX_LIMIT = 70.0
HOME_OFFSET = 0.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment