Is there a trick to attach .hal and .ini files? I'll try changing them to .txt I guess.
On Monday, January 25, 2021 at 10:01:23 PM UTC-6 Pete McKenna wrote: > OK seems that firefox works, lets try the files.[image: > Axis_screen_shot.png][image: Halconfig_pwm_pins.png] > > > -- website: http://www.machinekit.io blog: http://blog.machinekit.io github: https://github.com/machinekit --- You received this message because you are subscribed to the Google Groups "Machinekit" group. To unsubscribe from this group and stop receiving emails from it, send an email to machinekit+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/machinekit/fc7c3b7c-3109-44f5-816a-9efea9aaddfan%40googlegroups.com.
# ####################################### # # HAL file for BeagleBone + CRAMPS cape with 4 steppers # # Derived from example hm2-stepper config # # ######################################## # Launch the setup script to make sure hardware setup looks good #loadusr -w /home/machinekit/machinekit/configs/ARM.BeagleBone.CRAMPS/setup.sh loadusr -w ./setup.sh loadusr -w config-pin -f ./CRAMPS.bbio # ################################### # Core EMC/HAL Loads # ################################### # kinematics loadrt trivkins #loadrt core_xy_kins # 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 tp=tp kins=trivkins #loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES tp=tp kins=core_xy_kins # load low-level drivers loadrt hal_bb_gpio output_pins=816,822,823,824,825,826,914,923,925 input_pins=807,808,809,810,817,911,913 loadrt [PRUCONF](DRIVER) prucode=$(HAL_RTMOD_DIR)/[PRUCONF](PRUBIN) [PRUCONF](CONFIG) loadrt pid count=2 loadrt limit1 count=2 # Limit switch debounce setup # # # newinst debounce db1 pincount=4 # loadrt debounce # cfg=3 # addf db1 servo-thread # setp db1.delay 10 # Sets number of thread cycles the input has to be true before the output changes. (Has to be 2 or more to actually do anything.) # these are the actual pin mappings, but I dont have paraport pins, so find the current limit pins # moved down to where the limit switches were already setup # Python user-mode HAL module to read ADC value and generate a thermostat output for PWM # t = Thermistor table (only epcos_B57560G1104 or 1 supported for now) # a = analog input channel #loadusr -Wn Therm ./ReadTemp.py -n Therm --num_chan 2 -t 1 1 -a 4 5 loadusr -Wn Therm hal_temp_bbb -n Therm -c 04:epcos_B57560G1104,05:epcos_B57560G1104 -b CRAMPS # ################################################ # THREADS # ################################################ # hpg = [PRUCONF](DRIVER) addf hpg.capture-position servo-thread addf bb_gpio.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf pid.0.do-pid-calcs servo-thread addf pid.1.do-pid-calcs servo-thread addf limit1.0 servo-thread addf limit1.1 servo-thread addf hpg.update servo-thread addf bb_gpio.write servo-thread # ###################################################### # Axis-of-motion Specific Configs (not the GUI) # ###################################################### # ################ # X [0] Axis # ################ # axis enable chain newsig emcmot.00.enable bit sets emcmot.00.enable FALSE net emcmot.00.enable <= axis.0.amp-enable-out net emcmot.00.enable => hpg.stepgen.00.enable # position command and feedback net emcmot.00.pos-cmd <= axis.0.motor-pos-cmd net emcmot.00.pos-cmd => hpg.stepgen.00.position-cmd net motor.00.pos-fb <= hpg.stepgen.00.position-fb net motor.00.pos-fb => axis.0.motor-pos-fb # timing parameters setp hpg.stepgen.00.dirsetup [AXIS_0]DIRSETUP setp hpg.stepgen.00.dirhold [AXIS_0]DIRHOLD setp hpg.stepgen.00.steplen [AXIS_0]STEPLEN setp hpg.stepgen.00.stepspace [AXIS_0]STEPSPACE setp hpg.stepgen.00.position-scale [AXIS_0]SCALE setp hpg.stepgen.00.maxvel [AXIS_0]STEPGEN_MAX_VEL setp hpg.stepgen.00.maxaccel [AXIS_0]STEPGEN_MAX_ACC #setp hpg.stepgen.00.step_type 0 # P8.43 PRU1.out2 setp hpg.stepgen.00.steppin 813 # P8.44 PRU1.out4 setp hpg.stepgen.00.dirpin 812 # ################ # Y [1] Axis # ################ # axis enable chain newsig emcmot.01.enable bit sets emcmot.01.enable FALSE net emcmot.01.enable <= axis.1.amp-enable-out net emcmot.01.enable => hpg.stepgen.01.enable # position command and feedback net emcmot.01.pos-cmd <= axis.1.motor-pos-cmd net emcmot.01.pos-cmd => hpg.stepgen.01.position-cmd net motor.01.pos-fb <= hpg.stepgen.01.position-fb net motor.01.pos-fb => axis.1.motor-pos-fb # timing parameters setp hpg.stepgen.01.dirsetup [AXIS_1]DIRSETUP setp hpg.stepgen.01.dirhold [AXIS_1]DIRHOLD setp hpg.stepgen.01.steplen [AXIS_1]STEPLEN setp hpg.stepgen.01.stepspace [AXIS_1]STEPSPACE setp hpg.stepgen.01.position-scale [AXIS_1]SCALE setp hpg.stepgen.01.maxvel [AXIS_1]STEPGEN_MAX_VEL setp hpg.stepgen.01.maxaccel [AXIS_1]STEPGEN_MAX_ACC #setp hpg.stepgen.01.step_type 0 # P8.42 PRU1.out5 setp hpg.stepgen.01.steppin 815 # P8.39 PRU1.out6 setp hpg.stepgen.01.dirpin 814 # ################ # Z [2] Axis # ################ # axis enable chain newsig emcmot.02.enable bit sets emcmot.02.enable FALSE net emcmot.02.enable <= axis.2.amp-enable-out net emcmot.02.enable => hpg.stepgen.02.enable # position command and feedback net emcmot.02.pos-cmd <= axis.2.motor-pos-cmd net emcmot.02.pos-cmd => hpg.stepgen.02.position-cmd net motor.02.pos-fb <= hpg.stepgen.02.position-fb net motor.02.pos-fb => axis.2.motor-pos-fb # timing parameters setp hpg.stepgen.02.dirsetup [AXIS_2]DIRSETUP setp hpg.stepgen.02.dirhold [AXIS_2]DIRHOLD setp hpg.stepgen.02.steplen [AXIS_2]STEPLEN setp hpg.stepgen.02.stepspace [AXIS_2]STEPSPACE setp hpg.stepgen.02.position-scale [AXIS_2]SCALE setp hpg.stepgen.02.maxvel [AXIS_2]STEPGEN_MAX_VEL setp hpg.stepgen.02.maxaccel [AXIS_2]STEPGEN_MAX_ACC #setp hpg.stepgen.02.step_type 0 # P8.27 PRU1.out8 setp hpg.stepgen.02.steppin 819 # P8.29 PRU1.out9 setp hpg.stepgen.02.dirpin 818 # ################ # A [3] Axis (Extruder) # ################ # axis enable chain newsig emcmot.03.enable bit sets emcmot.03.enable FALSE net emcmot.03.enable <= axis.3.amp-enable-out net emcmot.03.enable => hpg.stepgen.03.enable # position command and feedback net emcmot.03.pos-cmd <= axis.3.motor-pos-cmd net emcmot.03.pos-cmd => hpg.stepgen.03.position-cmd net motor.03.pos-fb <= hpg.stepgen.03.position-fb net motor.03.pos-fb => axis.3.motor-pos-fb # timing parameters setp hpg.stepgen.03.dirsetup [AXIS_3]DIRSETUP setp hpg.stepgen.03.dirhold [AXIS_3]DIRHOLD setp hpg.stepgen.03.steplen [AXIS_3]STEPLEN setp hpg.stepgen.03.stepspace [AXIS_3]STEPSPACE setp hpg.stepgen.03.position-scale [AXIS_3]SCALE setp hpg.stepgen.03.maxvel [AXIS_3]STEPGEN_MAX_VEL setp hpg.stepgen.03.maxaccel [AXIS_3]STEPGEN_MAX_ACC #setp hpg.stepgen.03.step_type 0 # P8.30 GPIO2.25 setp hpg.stepgen.03.steppin 916 # P8.21 GPIO1.30 setp hpg.stepgen.03.dirpin 912 # ################################################## # Standard I/O - EStop, Enables, Limit Switches, Etc # ################################################## # Create estop signal chain # Drive software estop to hardware net estop-out iocontrol.0.user-enable-out => bb_gpio.p8.out-26 setp bb_gpio.p8.out-26.invert 1 # Monitor estop input from hardware net estop-loop bb_gpio.p8.in-17 => iocontrol.0.emc-enable-in setp bb_gpio.p8.in-17.invert 1 # create signals for tool loading loopback net tool-prep-loop iocontrol.0.tool-prepare => iocontrol.0.tool-prepared net tool-change-loop iocontrol.0.tool-change => iocontrol.0.tool-changed # Axis enable signal (active low) net emcmot.00.enable => bb_gpio.p9.out-14 setp bb_gpio.p9.out-14.invert 1 # Machine power # Use halui.machine.is-on instead? net emcmot.00.enable => bb_gpio.p9.out-23 # Tie machine power signal to the CRAMPS LED # Feel free to tie any other signal you like to the LED #net emcmot.00.enable => bb_gpio.p9.out-25 # ################ # Limit Switches # ################ newsig limit-x-min bit newsig limit-x-max bit newsig limit-y-min bit newsig limit-y-max bit newsig limit-z-min bit newsig limit-z-max bit # net limit-x-min db1 bb_gpio.p8.in-08 net limit-x-min <= bb_gpio.p8.in-08 net limit-x-max <= bb_gpio.p8.in-07 net limit-y-min <= bb_gpio.p8.in-10 net limit-y-max <= bb_gpio.p8.in-09 net limit-z-min <= bb_gpio.p9.in-13 net limit-z-max <= bb_gpio.p9.in-11 # Adjust as needed for your switch polarity setp bb_gpio.p8.in-08.invert 1 setp bb_gpio.p8.in-07.invert 1 setp bb_gpio.p8.in-10.invert 1 setp bb_gpio.p8.in-09.invert 1 setp bb_gpio.p9.in-11.invert 1 setp bb_gpio.p9.in-13.invert 1 # Add the debouncing here for the 3 min pins 08, 10, 13 #net debounce-in <= limit-x-min => db1.0.0.in #net debounce-out <= db1.0.0.out => limit-x-min #net debounce-in <= bb_gpio.p8.in-10 => db1.0.1.in #net debounce-out <= db1.0.1.out => bb_gpio.p8.in-10 #net debounce-in <= bb_gpio.p9.in-13 => db1.0.2.in #net debounce-out <= db1.0.2.out => bb_gpio.p9.in-13 # Uncomment if you actually have limit switches setup # You probably want to setup homing in the INI file, as well # net limit-x-min => axis.0.home-sw-in # net limit-x-min => axis.0.neg-lim-sw-in #net limit-x-max => axis.0.pos-lim-sw-in # net limit-y-min => axis.1.home-sw-in # net limit-y-min => axis.1.neg-lim-sw-in #net limit-y-max => axis.1.pos-lim-sw-in # net limit-z-min => axis.2.home-sw-in # net limit-z-min => axis.2.neg-lim-sw-in #net limit-z-max => axis.2.pos-lim-sw-in # ################ # Servo signals # ################ # There is currently no driver to generate pulses for actual # radio-control style servos, but the buffered 5V output # signals can be used as GPIO # !!! WARNING !!! # BBB on-board eMMC *MUST* be disabled in order to use these! # Drive eMMC-disabled signal high to enable signals that overlap # with the eMMC pins on P8, otherwise they are tri-stated # # You also need to edit the setup.sh file to enable the GPIO pins # Signal the hardware that eMMC has been disabled and it is safe # to drive the signals connected to eMMC lines (active low) newsig eMMC-disabled bit sets eMMC-disabled 0 net eMMC-disabled bb_gpio.p8.out-16 setp bb_gpio.p8.out-16.invert 1 # Servo signals, output only, driven by an 'ACT125 newsig servo.1 bit newsig servo.2 bit newsig servo.3 bit newsig servo.4 bit sets servo.1 0 sets servo.2 0 sets servo.3 0 sets servo.4 0 net servo.1 bb_gpio.p8.out-25 net servo.2 bb_gpio.p8.out-24 net servo.3 bb_gpio.p8.out-23 net servo.4 bb_gpio.p8.out-22 # ################################################## # PWM and Temperature Signals # ################################################## # Define signals to use elsewhere (ie: M1xx codes) # If you change any names here, lots of things will break! newsig e0.temp.set float newsig e0.temp.meas float newsig bed.temp.set float newsig bed.temp.meas float setp hpg.pwmgen.00.pwm_period 10000000 # Bed Heater FET 1 setp hpg.pwmgen.00.out.00.pin 811 setp hpg.pwmgen.00.out.00.enable 1 setp hpg.pwmgen.00.out.00.value 0.0 # E0 Heater FET 2 setp hpg.pwmgen.00.out.01.pin 915 setp hpg.pwmgen.00.out.01.enable 1 # was zero tryitg this to hack it into heating a bit # This never worked setp hpg.pwmgen.00.out.01.value 0.0 # E1 Heater FET 3 setp hpg.pwmgen.00.out.02.pin 927 setp hpg.pwmgen.00.out.02.enable 1 # see if this gets E1 out 2 going. yes setting it to 5 drives the output to 24V setp hpg.pwmgen.00.out.02.value 0.0 # E2 Heater FET 4 setp hpg.pwmgen.00.out.03.pin 921 setp hpg.pwmgen.00.out.03.enable 1 setp hpg.pwmgen.00.out.03.value 0.0 # FET 5 - Fan / LED setp hpg.pwmgen.00.out.04.pin 941 setp hpg.pwmgen.00.out.04.enable 1 #setp hpg.pwmgen.00.out.04.value 0.0 # This seems to have an effect, I cooked my fan, .2 pwms out to about 5 volts .1 is 2ish, fyi # Could kind of light the LED flashlight, but not reall at .15 setp hpg.pwmgen.00.out.04.value 0.0 # FET 6 - Fan / LED setp hpg.pwmgen.00.out.05.pin 922 setp hpg.pwmgen.00.out.05.enable 1 setp hpg.pwmgen.00.out.05.value 0.0 # PID for Extruder 0 temperature control net e0.temp.meas <= Therm.ch-04.value net e0.temp.meas => pid.0.feedback sets e0.temp.set 0 # sets e0.temp.set .2 # this doesn't seem to do anything lets try above like the fan. net e0.temp.set => pid.0.command net e0.heater <= pid.0.output net e0.heater => limit1.0.in net e0.heaterl <= limit1.0.out net e0.heaterl => hpg.pwmgen.00.out.01.value # Limit heater PWM to positive values # PWM mimics hm2 implementation, which generates output for negative values setp limit1.0.min 0 # PID for Bed temperature control net bed.temp.meas <= Therm.ch-05.value net bed.temp.meas => pid.1.feedback sets bed.temp.set 0 net bed.temp.set => pid.1.command net bed.heater <= pid.1.output net bed.heater => limit1.1.in net bed.heaterl <= limit1.1.out net bed.heaterl => hpg.pwmgen.00.out.00.value # Limit heater PWM to positive values # PWM mimics hm2 implementation, which generates output for negative values setp limit1.1.min 0 # PID Parameters for adjusting temperature control # Extruder #setp pid.0.FF0 0 #setp pid.0.FF1 0 #setp pid.0.FF2 0 #setp pid.0.Pgain 0.30 #setp pid.0.Igain 0.00001 #setp pid.0.Dgain 0.9375 #setp pid.0.maxerrorI 1.0 #setp pid.0.bias 0.5 #setp pid.0.enable 1 # match the bed profile and see if this changes setp pid.0.Pgain 1 setp pid.0.Igain 0 setp pid.0.Dgain 0 setp pid.0.maxerrorI 1.0 setp pid.0.bias 0.5 setp pid.0.enable 1 # Bed #setp pid.1.FF0 0 #setp pid.1.FF1 0 #setp pid.1.FF2 0 setp pid.1.Pgain 1 setp pid.1.Igain 0.0 setp pid.1.Dgain 0.0 setp pid.1.maxerrorI 1.0 setp pid.1.bias 0.5 setp pid.1.enable 1
[PRUCONF] DRIVER=hal_pru_generic #PRUCODE=/usr/lib/linuxcnc/rt-preempt/pru_generic.bin pru=0 halname=hpg num_stepgens=4 num_pwmgens=6 #PRUBIN=xenomai/pru_generic.bin PRUBIN=rt-preempt/pru_generic.bin CONFIG=pru=0 halname=hpg num_stepgens=4 num_pwmgens=6 ############################################################################### # Hardware Abstraction Layer section ############################################################################### [EMC] # Name of machine, for use with display, etc. MACHINE = CRAMPS # Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others # DEBUG = 0x00000003 DEBUG = 0x0003E100 #debug = 0x00000003 #DEBUG = 0x00000007 ############################################################################### # Sections for display options ############################################################################### [DISPLAY] # Name of display program, e.g., tkemc DISPLAY = axis #DISPLAY = tkemc #DISPLAY = gscreen # Touchy currently won't work without some hardware buttons/jog-wheel #DISPLAY = touchy # Cycle time, in seconds, that display will sleep between polls CYCLE_TIME = 0.200 # Path to help file HELP_FILE = tklinucnc.txt # EDITOR = xedit # Initial display setting for position, RELATIVE or MACHINE POSITION_OFFSET = RELATIVE # Initial display setting for position, COMMANDED or ACTUAL POSITION_FEEDBACK = ACTUAL # Highest value that will be allowed for feed override, 1.0 = 100% MAX_FEED_OVERRIDE = 1.5 # Prefix to be used #PROGRAM_PREFIX = /home/machinekit/machinekit/nc_files/ #PROGRAM_PREFIX = ../../../nc_files/ PROGRAM_PREFIX = /home/machinekit/machinekit/nc_files # Introductory graphic INTRO_GRAPHIC = machinekit.gif INTRO_TIME = 5 # Increments for the JOG section INCREMENTS = 10 1 0.1 0.01 PYVCP = 3D.Temps.panel.xml [FILTER] PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image PROGRAM_EXTENSION = .py Python Script png = image-to-gcode gif = image-to-gcode jpg = image-to-gcode py = python PROGRAM_EXTENSION = .gcode RepRap Flavour GCode gcode = gcode-to-ngc ############################################################################### # Task controller section ############################################################################### [TASK] # Name of task controller program, e.g., milltask TASK = milltask # Cycle time, in seconds, that task controller will sleep between polls CYCLE_TIME = 0.010 ############################################################################### # Part program interpreter section ############################################################################### [RS274NGC] # File containing interpreter variables PARAMETER_FILE = pru-stepper.var # RS274NGC_STARTUP_CODE = M104 P100 # remaping Rep Rap Gcode to machinekit, lets try it. # Machinekit fdm subroutines path SUBROUTINE_PATH = /usr/share/linuxcnc/ncfiles/remap-subroutines/fdm # alternatively you can copy the subroutines a local subroutines folder # SUBROUTINE_PATH = subroutines # may go back to this - SUBROUTINE_PATH = nc_subs # REMAP=M104 argspec=iPt ngc=m104 modalgroup=10 # REMAP=M140 argspec=iPt ngc=m140 modalgroup=10 # REMAP=M106 argspec=iPt ngc=m106 modalgroup=10 # REMAP=M109 argspec=iPt ngc=m109 modalgroup=10 #USER_M_PATH = /home/machinekit/Desktop/MFILES # subroutine path for the custom FDM printing .ngc files used for remapping # use directory in config path until more suitable location. this w.r.t the # fact that not every machine will have an extruder and/or fan SUBROUTINE_PATH = /usr/share/linuxcnc/ncfiles/remap-subroutines/fdm #SUBROUTINE_PATH = subroutines # remapping Machinekit FDM GCodes REMAP=G22 modalgroup=1 ngc=g22 REMAP=G23 modalgroup=1 ngc=g23 REMAP=G28 modalgroup=1 argspec=xyza ngc=g28 REMAP=G29 modalgroup=1 ngc=g29 REMAP=G29.1 modalgroup=1 argspec=xyz ngc=g29_1 REMAP=G29.2 modalgroup=1 argspec=xyz ngc=g29_2 REMAP=G30 modalgroup=1 argspec=pxy ngc=g30 REMAP=M104 modalgroup=10 argspec=iPt ngc=m104 REMAP=M106 modalgroup=10 argspec=iPt ngc=m106 REMAP=M107 modalgroup=10 argspec=it ngc=m107 REMAP=M109 modalgroup=10 argspec=tP ngc=m109 REMAP=M140 modalgroup=10 argspec=iP ngc=m140 REMAP=M141 modalgroup=10 argspec=iP ngc=m141 REMAP=M190 modalgroup=10 argspec=P ngc=m190 REMAP=M191 modalgroup=10 argspec=P ngc=m191 REMAP=M200 modalgroup=10 argspec=D ngc=m200 REMAP=M207 modalgroup=10 argspec=PQ ngc=m207 REMAP=M221 modalgroup=10 argspec=P ngc=m221 REMAP=M226 modalgroup=10 ngc=m226 REMAP=M280 modalgroup=10 argspec=itP ngc=m280 REMAP=M300 modalgroup=10 argspec=iqP ngc=m300 REMAP=M400 modalgroup=10 ngc=m400 REMAP=M420 modalgroup=10 argspec=itredp ngc=m420 REMAP=M700 modalgroup=10 argspec=iP ngc=m700 REMAP=M701 modalgroup=10 argspec=iP ngc=m701 REMAP=M702 modalgroup=10 argspec=iP ngc=m702 REMAP=M710 modalgroup=10 argspec=epq ngc=m710 # enable ini parameter passing FEATURES = 4 # End remap ############################################################################### # Motion control section ############################################################################### [EMCMOT] EMCMOT = motmod # Timeout for comm to emcmot, in seconds COMM_TIMEOUT = 1.0 # Interval between tries to emcmot, in seconds COMM_WAIT = 0.010 # Servo task period, in nanoseconds SERVO_PERIOD = 1000000 ############################################################################### # Hardware Abstraction Layer section ############################################################################### [HAL] # The run script first uses halcmd to execute any HALFILE # files, and then to execute any individual HALCMD commands. # list of hal config files to run through halcmd # files are executed in the order in which they appear HALFILE = CRAMPS.hal # list of halcmd commands to execute # commands are executed in the order in which they appear #HALCMD = save neta # not sure if I need this # HALUI = halui POSTGUI_HALFILE = 3D.postgui.hal ############################################################################### # Trajectory planner section ############################################################################### [TRAJ] AXES = 4 COORDINATES = X Y Z A MAX_ANGULAR_VELOCITY = 45.00 DEFAULT_ANGULAR_VELOCITY = 4.50 LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 20.00 MAX_LINEAR_VELOCITY = 200.00 ############################################################################### # Axes sections ############################################################################### [AXIS_0] # X TYPE = LINEAR MAX_VELOCITY = 200.0 MAX_ACCELERATION = 3000.0 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 240.0 STEPGEN_MAX_ACC = 3600.0 BACKLASH = 0.000 # scale is 200 steps/rev * 5 revs/inch # we are doing this is metric so stil 200 steps per rev, but how far does that go? about 40mm at 1/8 stepping # 200 * 1/40 = 5 then because of 1/8 stepping * 8 so 40 # SCALE = -160 SCALE = -40 # for a wild guess that is surprisingly close MIN_LIMIT = -1.0 MAX_LIMIT = 220.0 FERROR = 1.0 MIN_FERROR = 0.25 HOME = 0.000 HOME_OFFSET = 0.00 HOME_IGNORE_LIMITS = YES HOME_USE_INDEX = NO HOME_SEQUENCE = 0 # Set to zero if you don't have physical home/limit switches # Set to the desired homing and latch velocity if you have switches # See: https://github.com/machinekit/machinekit-docs HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 1000 STEPSPACE = 1000 ################################################################ # assuming this is Y # so 200 * 8 / 40mm moved per revolution = 40 [AXIS_1] # Y TYPE = LINEAR MAX_VELOCITY = 200.0 MAX_ACCELERATION = 3000.0 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 240.0 STEPGEN_MAX_ACC = 3600.0 BACKLASH = 0.000 # SCALE = 160.0 SCALE = -40.0 MIN_LIMIT = -1.0 MAX_LIMIT = 250.0 FERROR = 1.0 MIN_FERROR = 0.25 HOME = 0.000 HOME_OFFSET = 0.00 HOME_IGNORE_LIMITS = YES HOME_USE_INDEX = NO HOME_SEQUENCE = 1 # Set to zero if you don't have physical home/limit switches # Set to the desired homing and latch velocity if you have switches # See: https://github.com/machinekit/machinekit-docs HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 1000 STEPSPACE = 1000 ################################################################ [AXIS_2] # 200 * 1 * 8 = 1600 ? # Z paralleled up 1:1 ratio it seems # may want to move this to 1/4 stepping it does not need to be fast # lets go with 1/4 stepping 200 * 1 * 4 = 800 TYPE = LINEAR MAX_VELOCITY = 3.0 MAX_ACCELERATION = 100.0 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 5.0 STEPGEN_MAX_ACC = 125.0 BACKLASH = 0.000 #SCALE = 1511.81102362 SCALE = -800 MIN_LIMIT = -10.0 MAX_LIMIT = 200.0 FERROR = 1.0 MIN_FERROR = 0.25 HOME = 0.000 HOME_OFFSET = 0.00 HOME_IGNORE_LIMITS = YES HOME_USE_INDEX = NO HOME_SEQUENCE = 2 # Set to zero if you don't have physical home/limit switches # Set to the desired homing and latch velocity if you have switches # See: https://github.com/machinekit/machinekit-docs HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 1000 STEPSPACE = 1000 # [EXTRUDER_0] # RETRACT_LEN = 5 # RETRACT_VEL = 1.5 ################################################################ # The extruder [AXIS_3] # I think it is 1:1 direct drive so 200 * 8 * 1 / 7 * 3.14 TYPE = ANGULAR MAX_VELOCITY = 32.0 MAX_ACCELERATION = 3000.0 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 37.0 STEPGEN_MAX_ACC = 3750.0 BACKLASH = 0.000 #SCALE = -1489.06 SCALE = 72.72 MIN_LIMIT = -9999.0 MAX_LIMIT = 999999999.0 FERROR = 1.0 MIN_FERROR = .25 HOME = 0.000 HOME_OFFSET = 0.00 HOME_IGNORE_LIMITS = YES HOME_USE_INDEX = NO HOME_SEQUENCE = 0 # Set to zero if you don't have physical home/limit switches # Set to the desired homing and latch velocity if you have switches # See: https://github.com/machinekit/machinekit-docs HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 1000 STEPSPACE = 1000 [FDM] VELOCITY_EXTRUSION_ENABLE = 0 NUM_EXTRUDERS = 1 NUM_FANS = 1 NUM_LIGHTS = 1 [EXTRUDER_0] PID_PGAIN = 0.05 PID_IGAIN = 0.0002 PID_DGAIN = 0.0016 PID_MAXERRORI = 1.0 PID_BIAS = 0.0 PWM_MAX = 1.0 TEMP_RANGE_POS_ERROR = 1.0 TEMP_RANGE_NEG_ERROR = -1.0 TEMP_RANGE_LOWPASSGAIN = 0.0008 TEMP_LIMIT_MIN = 0.0 TEMP_LIMIT_MAX = 300.0 TEMP_STANDBY = 200.0 THERMISTOR = 3950-100k # mine is 97K open and cold, so seems like a good value RETRACT_LEN = 0.5 RETRACT_VEL = 30.0 FILAMENT_DIA = 1.75 EXTRUDE_SCALE = 1.00 FAN_BIAS = 0.0 MAX_VELOCITY = 32.0 MAX_ACCELERATION = 3000.0 # Set Stepgen max 20% higher than the axis STEPGEN_MAX_VEL = 37.0 STEPGEN_MAX_ACC = 3750.0 HOME_SEARCH_VEL = 0.0 HOME_LATCH_VEL = 0.0 # it seems odd to duplicate these # these are in nanoseconds DIRSETUP = 200 DIRHOLD = 200 STEPLEN = 1000 STEPSPACE = 1000 [P0] X = 0.0 Y = 0.0 [EMCIO] # Name of IO controller program, e.g., io EMCIO = io # cycle time, in seconds CYCLE_TIME = 0.100 # tool table file TOOL_TABLE = tool.tbl