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

Reply via email to