Voron 2.4 Build: Difference between revisions
| (11 intermediate revisions by the same user not shown) | |||
| Line 3: | Line 3: | ||
* [https://www.aliexpress.com/item/1005001393141303.html?spm=a2g0s.9042311.0.0.45794c4d48uSKB Funssor MIC-6 8mm Aluminum build plate] | * [https://www.aliexpress.com/item/1005001393141303.html?spm=a2g0s.9042311.0.0.45794c4d48uSKB Funssor MIC-6 8mm Aluminum build plate] | ||
== FYSETC Spider Controller == | |||
=== Reference === | |||
* [https://3dwork.io/en/complete-guide-fysetc-spider/ Good configuration info] | |||
Bootloader | === Bootloader Setup === | ||
Installation of the bootloader/firmware is a little confusing and I initially thought I had a bad board. I haven't been able to install bootloader or firmware without shorting the BOOT0 pins to force DFU mode. Here's the general process: | |||
== | # Install jumper on BT0 pins and power on | ||
# Launch STM32CubeProgrammer, select USB, and Connect | |||
# Click the Erasing and Programming tab, and then: | |||
## Pick the '''Bootloader_FYSETC_SPIDER.hex''' bootloader from the FYSETC Spider GitHub Repo | |||
## Select '''Verify programming''' and '''Full Chip Erase''' | |||
## Click '''Start Programm..''' | |||
# Next install the firmware (previously compiled) | |||
## Uncheck the '''Full chip erase''' checkbox | |||
## Choose the firmware. After compiling, it can generally be found in the '''<<install path>>'''firmware/Marlin/.pio/build/FYSETC_S6_8000 | |||
## '''IMPORTANT:''' Change the Start addr.. to 0x0800'''8000'''. For some reason the bootloader now looks for the firmware at the 8000 location vs the default 0x08000000 | |||
## Click '''Start Programm...''' to write the firmware | |||
# Remove the BT0 pin and restart | |||
== Firmware (Klipper) Configuration == | |||
<pre> | <pre> | ||
# | [include mainsail.cfg] | ||
# | |||
#endif | # This file contains common pin mappings for the Fysetc Spider board. | ||
# To use this config, the firmware should be compiled for the STM32F446. | |||
# When calling "menuconfig", enable "extra low-level configuration setup" | |||
# and select the "12MHz crystal" as clock reference | |||
# For flashing, write the compiled klipper.bin to memory location 0x08000000 | |||
# See docs/Config_Reference.md for a description of parameters. | |||
## Voron Design VORON2 250/300/350mm Spider TMC2209 UART config | |||
## *** THINGS TO CHANGE/CHECK: *** | |||
## MCU paths [mcu] section | |||
## Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file | |||
## Z Endstop Switch location [safe_z_home] section | |||
## Homing end position [gcode_macro G32] section | |||
## Z Endstop Switch offset for Z0 [stepper_z] section | |||
## Probe points [quad_gantry_level] section | |||
## Min & Max gantry corner postions [quad_gantry_level] section | |||
## PID tune [extruder] and [heater_bed] sections | |||
## Fine tune E steps [extruder] section | |||
[mcu] | |||
## Uncomment below if you're using the Raspberry uart0 to communicate with Spider | |||
#restart_method: command | |||
## You need to select 'Communication interface' to USB in 'make menuconfig' | |||
## when you compile Klipper for Spider | |||
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify | |||
##-------------------------------------------------------------------- | |||
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_1E0048001050563046363120-if00 | |||
## If you want to use the Raspberry uart0 to communicate with Spider, | |||
## you need to select 'Communication interface' to 'Serial (on USART1 PA10/PA9)' | |||
## in 'make menuconfig' when you compile klipper and set the serial as below | |||
##-------------------------------------------------------------------- | |||
#serial: /dev/ttyAMA0 | |||
##-------------------------------------------------------------------- | |||
[printer] | |||
kinematics: corexy | |||
max_velocity: 300 | |||
max_accel: 5000 #Max 4000 | |||
max_z_velocity: 30 #Max 15 for 12V TMC Drivers, can increase for 24V | |||
max_z_accel: 350 | |||
square_corner_velocity: 8.0 | |||
##################################################################### | |||
# X/Y Stepper Settings | |||
##################################################################### | |||
[stepper_x] | |||
## Connected to X-MOT (B Motor) | |||
step_pin: PE11 | |||
dir_pin: PE10 | |||
enable_pin: !PE9 | |||
rotation_distance: 40 | |||
microsteps: 16 | |||
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper | |||
endstop_pin: ^PB14 | |||
position_min: 0 | |||
##-------------------------------------------------------------------- | |||
## Uncomment below for 225050mm build | |||
#position_endstop: 250 | |||
#position_max: 250 | |||
## Uncomment for 300mm build | |||
position_endstop: 300 | |||
position_max: 300 | |||
## Uncomment for 350mm build | |||
#position_endstop: 350 | |||
#position_max: 350 | |||
##-------------------------------------------------------------------- | |||
homing_speed: 50 #Max 100 | |||
homing_retract_dist: 5 | |||
homing_positive_dir: true | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 stepper_x] | |||
uart_pin: PE7 | |||
interpolate: True | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
[stepper_y] | |||
## Connected to Y-MOT (A Motor) | |||
step_pin: PD8 | |||
dir_pin: PB12 | |||
enable_pin: !PD9 | |||
rotation_distance: 40 | |||
microsteps: 16 | |||
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper | |||
endstop_pin: ^PB13 | |||
position_min: 0 | |||
##-------------------------------------------------------------------- | |||
## Uncomment for 250mm build | |||
#position_endstop: 250 | |||
#position_max: 250 | |||
## Uncomment for 300mm build | |||
position_endstop: 300 | |||
position_max: 300 | |||
## Uncomment for 350mm build | |||
#position_endstop: 350 | |||
#position_max: 350 | |||
##-------------------------------------------------------------------- | |||
homing_speed: 50 #Max 100 | |||
homing_retract_dist: 5 | |||
homing_positive_dir: true | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 stepper_y] | |||
uart_pin: PE15 | |||
interpolate: True | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
##################################################################### | |||
# Z Stepper Settings | |||
##################################################################### | |||
## In Z-MOT Position | |||
## Z0 Stepper - Front Left | |||
[stepper_z] | |||
step_pin: PD14 | |||
dir_pin: PD13 | |||
enable_pin: !PD15 | |||
rotation_distance: 40 | |||
gear_ratio: 80:16 | |||
microsteps: 16 | |||
## In Z- Position | |||
# pretap | |||
# endstop_pin: ^PA0 (pretap) | |||
endstop_pin: probe:z_virtual_endstop | |||
## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0) | |||
## (+) value = endstop above Z0, (-) value = endstop below | |||
## Increasing position_endstop brings nozzle closer to the bed | |||
## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config | |||
#position_endstop: -0.5 | |||
##-------------------------------------------------------------------- | |||
## Uncomment below for 250mm build | |||
position_max: 170 | |||
## Uncomment below for 300mm build | |||
#position_max: 290 | |||
## Uncomment below for 350mm build | |||
#position_max: 340 | |||
##-------------------------------------------------------------------- | |||
position_min: -5 | |||
homing_speed: 10 | |||
second_homing_speed: 3 | |||
homing_retract_dist: 3 | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 stepper_z] | |||
uart_pin: PD10 | |||
uart_address: 0 | |||
interpolate: True | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
## In E1-MOT Position | |||
## Z1 Stepper - Rear Left | |||
[stepper_z1] | |||
step_pin: PE6 | |||
dir_pin: !PC13 | |||
enable_pin: !PE5 | |||
rotation_distance: 40 | |||
gear_ratio: 80:16 | |||
microsteps: 16 | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 stepper_z1] | |||
uart_pin: PC14 | |||
interpolate: True | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
## In E2-MOT Position | |||
## Z2 Stepper - Rear Right | |||
[stepper_z2] | |||
step_pin: PE2 | |||
dir_pin: PE4 | |||
enable_pin: !PE3 | |||
rotation_distance: 40 | |||
gear_ratio: 80:16 | |||
microsteps: 16 | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 stepper_z2] | |||
uart_pin: PC15 | |||
interpolate: true | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
## In E3-MOT Position | |||
## Z3 Stepper - Front Right | |||
[stepper_z3] | |||
step_pin: PD12 | |||
dir_pin: !PC4 | |||
enable_pin: !PE8 | |||
rotation_distance: 40 | |||
gear_ratio: 80:16 | |||
microsteps: 16 | |||
[tmc2209 stepper_z3] | |||
uart_pin: PA15 | |||
interpolate: true | |||
run_current: 0.7 | |||
hold_current: 0.4 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
##################################################################### | |||
# Extruder | |||
##################################################################### | |||
## In E0-MOT Position | |||
[extruder] | |||
step_pin: PD5 | |||
dir_pin: !PD6 | |||
enable_pin: !PD4 | |||
## Update value below when you perform extruder calibration | |||
## If you ask for 100mm of filament, but in reality it is 98mm: | |||
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100 | |||
## 22.6789511 is a good starting point | |||
rotation_distance: 22.5078095278 #Bondtech 5mm Drive Gears | |||
## Update Gear Ratio depending on your Extruder Type | |||
## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio) | |||
## Use 80:20 for M4, M3.1 | |||
gear_ratio: 50:17 #BMG Gear Ratio | |||
microsteps: 16 | |||
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree | |||
nozzle_diameter: 0.400 | |||
filament_diameter: 1.75 | |||
## In E0 OUT Position | |||
heater_pin: PB15 | |||
## Validate the following thermistor type to make sure it is correct | |||
sensor_type: ATC Semitec 104GT-2 | |||
sensor_pin: PC0 # TE0 Position | |||
min_temp: 10 | |||
max_temp: 270 | |||
max_power: 1.0 | |||
min_extrude_temp: 170 | |||
max_extrude_cross_section: 50.0 | |||
#control = pid | |||
#pid_kp = 26.213 | |||
#pid_ki = 1.304 | |||
#pid_kd = 131.721 | |||
## Try to keep pressure_advance below 1.0 | |||
pressure_advance: 0.05 | |||
## Default is 0.040, leave stock | |||
pressure_advance_smooth_time: 0.040 | |||
## In E0-MOT Position | |||
## Make sure to update below for your relevant driver (2208 or 2209) | |||
[tmc2209 extruder] | |||
uart_pin: PD7 | |||
interpolate: false | |||
run_current: 0.6 | |||
# hold_current: 0.2 | |||
sense_resistor: 0.110 | |||
stealthchop_threshold: 0 | |||
##################################################################### | |||
# Bed Heater | |||
##################################################################### | |||
[heater_bed] | |||
## SSR Pin - In BED OUT position | |||
heater_pin: PB4 | |||
sensor_type: Generic 3950 | |||
sensor_pin: PC3 # TB Position | |||
## Adjust Max Power so your heater doesn't warp your bed | |||
max_power: 0.6 | |||
min_temp: 0 | |||
max_temp: 120 | |||
#control: pid | |||
#pid_kp: 58.437 | |||
#pid_ki: 2.347 | |||
#pid_kd: 363.769 | |||
##################################################################### | |||
# Probe | |||
##################################################################### | |||
[probe] | |||
## Inductive Probe - If you use this section , please comment the [bltouch] section | |||
## This probe is not used for Z height, only Quad Gantry Leveling | |||
## In Z+ position | |||
## If your probe is NC instead of NO, add change pin to ^PA3 | |||
pin: ^PA3 | |||
x_offset: 0 | |||
# pretap | |||
#y_offset: 25.0 | |||
y_offset: 0 | |||
#z_offset: 0 | |||
speed: 20.0 | |||
samples: 2 | |||
samples_result: median | |||
sample_retract_dist: 3.0 | |||
samples_tolerance: 0.01 | |||
samples_tolerance_retries: 4 | |||
activate_gcode: | |||
{% set PROBE_TEMP = 150 %} | |||
{% set MAX_TEMP = PROBE_TEMP + 5 %} | |||
{% set ACTUAL_TEMP = printer.extruder.temperature %} | |||
{% set TARGET_TEMP = printer.extruder.target %} | |||
{% if TARGET_TEMP > PROBE_TEMP %} | |||
{ action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) } | |||
M109 S{ PROBE_TEMP } | |||
{% else %} | |||
# Temperature target is already low enough, but nozzle may still be too hot. | |||
{% if ACTUAL_TEMP > MAX_TEMP %} | |||
{ action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) } | |||
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP } | |||
{% endif %} | |||
{% endif %} | |||
##################################################################### | |||
# Bltouch | |||
##################################################################### | |||
#[bltouch] | |||
## Bltouch - If you use this section , please comment the [probe] section | |||
## More infomation at : https://www.klipper3d.org/BLTouch.html | |||
## This bltouch is not used for Z height, only Quad Gantry Leveling | |||
## In Z+ Position | |||
#sensor_pin: PA0 | |||
## In Y+ Position | |||
#control_pin: PA2 | |||
#x_offset: 0 | |||
#y_offset: 25.0 | |||
#z_offset: 0 | |||
#speed: 10.0 | |||
#samples: 3 | |||
#samples_result: median | |||
#sample_retract_dist: 3.0 | |||
#samples_tolerance: 0.006 | |||
#samples_tolerance_retries: 3 | |||
##################################################################### | |||
# Fan Control | |||
##################################################################### | |||
## bpopp: swapped PB0 for PB3 because I burned up PB0 with short | |||
[heater_fan hotend_fan] | |||
## Hotend Fan - FAN0 Connector | |||
pin: PB3 | |||
max_power: 1.0 | |||
kick_start_time: 0.5 | |||
heater: extruder | |||
heater_temp: 50.0 | |||
## If you are experiencing back flow, you can reduce fan_speed | |||
#fan_speed: 1.0 | |||
[fan] | |||
## Print Cooling Fan - FAN1 Connector | |||
pin: PB1 | |||
max_power: 0.4 | |||
kick_start_time: 0.5 | |||
## Depending on your fan, you may need to increase this value | |||
## if your fan will not start. Can change cycle_time (increase) | |||
## if your fan is not able to slow down effectively | |||
# off_below: 0.10 | |||
[heater_fan controller_fan] | |||
## Controller fan - FAN2 Connector | |||
pin: PB2 | |||
kick_start_time: 0.5 | |||
heater: heater_bed | |||
heater_temp: 45.0 | |||
fan_speed: .3 | |||
#[heater_fan exhaust_fan] | |||
## Exhaust fan - In E2 OUT Positon | |||
#pin: PB3 | |||
#max_power: 1.0 | |||
#shutdown_speed: 0.0 | |||
#kick_start_time: 5.0 | |||
#heater: heater_bed | |||
#heater_temp: 60 | |||
#fan_speed: 1.0 | |||
##################################################################### | |||
# LED Control | |||
##################################################################### | |||
# Chamber Lighting - In 5V-RGB Position | |||
# [neopixel caselight ] | |||
# pin: PD3 | |||
# chain_count: 15 | |||
# color_order: RGB | |||
# initial_RED: 1.0 | |||
# initial_GREEN: 1.0 | |||
# initial_BLUE: 1.0 | |||
[neopixel caselight] | |||
pin: PD3 | |||
chain_count: 35 | |||
color_order: RGB | |||
initial_RED: 1 | |||
initial_GREEN: 1 | |||
initial_BLUE: 1 | |||
#[output_pin caselight ] | |||
# Chamber Lighting - In 5V-RGB Position | |||
#pin: PD3 | |||
#pwm: true | |||
#shutdown_value: 0 | |||
#value: 1.0 | |||
#cycle_time: 0.01 | |||
##################################################################### | |||
# Homing and Gantry Adjustment Routines | |||
##################################################################### | |||
[idle_timeout] | |||
timeout: 1800 | |||
[safe_z_home] | |||
## XY Location of the Z Endstop Switch | |||
## Update -10,-10 to the XY coordinates of your endstop pin | |||
## (such as 157,305) after going through Z Endstop Pin | |||
## Location Definition step. | |||
# pretap | |||
# home_xy_position:205,300 | |||
home_xy_position:150,150 | |||
speed:100 | |||
z_hop:10 | |||
[quad_gantry_level] | |||
## Use QUAD_GANTRY_LEVEL to level a gantry. | |||
## Min & Max gantry corners - measure from nozzle at MIN (0,0) and | |||
## MAX (250, 250), (300,300), or (350,350) depending on your printer size | |||
## to respective belt positions | |||
#-------------------------------------------------------------------- | |||
## Gantry Corners for 250mm Build | |||
## Uncomment for 250mm build | |||
#gantry_corners: | |||
# -60,-10 | |||
# 310, 320 | |||
#points: | |||
# 50,25 | |||
# 50,175 | |||
# 200,175 | |||
# 200,25 | |||
## Gantry Corners for 300mm Build | |||
## Uncomment for 300mm build | |||
gantry_corners: | |||
-60,-10 | |||
360,370 | |||
points: | |||
50,25 | |||
50,275 | |||
250,275 | |||
250,25 | |||
## Gantry Corners for 350mm Build | |||
## Uncomment for 350mm build | |||
#gantry_corners: | |||
# -60,-10 | |||
# 410,420 | |||
## Probe points | |||
#points: | |||
# 50,25 | |||
# 50,275 | |||
# 300,275 | |||
# 300,25 | |||
#-------------------------------------------------------------------- | |||
speed: 150 | |||
horizontal_move_z: 10 | |||
retries: 5 | |||
retry_tolerance: 0.009 | |||
max_adjust: 10 | |||
##################################################################### | |||
# Displays | |||
##################################################################### | |||
#-------------------------------------------------------------------- | |||
[display] | |||
# mini12864 LCD Display | |||
lcd_type: uc1701 | |||
cs_pin: PC11 | |||
a0_pin: PD2 | |||
rst_pin: PC10 | |||
encoder_pins: ^PC6,^PC7 | |||
click_pin: ^!PA8 | |||
contrast: 63 | |||
#spi_bus: spi1 | |||
spi_software_mosi_pin: PA7 | |||
spi_software_miso_pin: PA6 | |||
spi_software_sclk_pin: PA5 | |||
[neopixel fysetc_mini12864] | |||
# To control Neopixel RGB in mini12864 display | |||
pin: PC12 | |||
chain_count: 3 | |||
initial_RED: 0.1 | |||
initial_GREEN: 0.5 | |||
initial_BLUE: 0.0 | |||
color_order: RGB | |||
# Set RGB values on boot up for each Neopixel. | |||
# Index 1 = display, Index 2 and 3 = Knob | |||
[delayed_gcode setdisplayneopixel] | |||
initial_duration: 1 | |||
gcode: | |||
SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0 | |||
SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0 | |||
SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3 | |||
#-------------------------------------------------------------------- | |||
##################################################################### | |||
# Macros | |||
##################################################################### | |||
[verify_heater extruder] | |||
#max_error: 120 | |||
# The maximum "cumulative temperature error" before raising an | |||
# error. Smaller values result in stricter checking and larger | |||
# values allow for more time before an error is reported. | |||
# Specifically, the temperature is inspected once a second and if it | |||
# is close to the target temperature then an internal "error | |||
# counter" is reset; otherwise, if the temperature is below the | |||
# target range then the counter is increased by the amount the | |||
# reported temperature differs from that range. Should the counter | |||
# exceed this "max_error" then an error is raised. The default is | |||
# 120. | |||
#check_gain_time: 40 | |||
# This controls heater verification during initial heating. Smaller | |||
# values result in stricter checking and larger values allow for | |||
# more time before an error is reported. Specifically, during | |||
# initial heating, as long as the heater increases in temperature | |||
# within this time frame (specified in seconds) then the internal | |||
# "error counter" is reset. The default is 20 seconds for extruders | |||
# and 60 seconds for heater_bed. | |||
#hysteresis: 5 | |||
# The maximum temperature difference (in Celsius) to a target | |||
# temperature that is considered in range of the target. This | |||
# controls the max_error range check. It is rare to customize this | |||
# value. The default is 5. | |||
#heating_gain: 2 | |||
# The minimum temperature (in Celsius) that the heater must increase | |||
# by during the check_gain_time check. It is rare to customize this | |||
# value. The default is 2. | |||
##################################################################### | |||
# Macros | |||
##################################################################### | |||
[gcode_macro G32] | |||
gcode: | |||
BED_MESH_CLEAR | |||
G28 | |||
QUAD_GANTRY_LEVEL | |||
G28 | |||
## Uncomment for for your size printer: | |||
#-------------------------------------------------------------------- | |||
## Uncomment for 250mm build | |||
#G0 X125 Y125 Z30 F3600 | |||
## Uncomment for 300 build | |||
# CENTER | |||
## Uncomment for 350mm build | |||
#G0 X175 Y175 Z30 F3600 | |||
#-------------------------------------------------------------------- | |||
[gcode_macro _PRINT_START] | |||
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice | |||
gcode: | |||
{% set BED_TEMP = params.BED|default(70)|float %} | |||
{% set EXTRUDER_TEMP = params.EXTRUDER|default(220)|float %} | |||
CASELIGHT_ON | |||
# M104 S150 | |||
M140 S{BED_TEMP} | |||
CLEAN_NOZZLE | |||
G32 ; home all axes | |||
M109 S{EXTRUDER_TEMP} | |||
M190 S{BED_TEMP} | |||
_PRIME_LINE | |||
[gcode_macro _PRINT_END] | |||
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice | |||
gcode: | |||
M400 ; wait for buffer to clear | |||
G92 E0 ; zero the extruder | |||
G1 E-1.0 F3600 ; retract filament | |||
G91 ; relative positioning | |||
G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing | |||
TURN_OFF_HEATERS | |||
M107 ; turn off fan | |||
G1 Z2 F3000 ; move nozzle up 2mm | |||
G90 ; absolute positioning | |||
G0 X150 Y300 F3600 ; park nozzle at rear | |||
CASELIGHT_OFF | |||
#BED_MESH_CLEAR | |||
[gcode_macro CENTER] | |||
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice | |||
gcode: | |||
G0 X150 Y150 Z50 F5000 | |||
[gcode_macro _PRIME_LINE] | |||
gcode: | |||
M117 Prime Line | |||
G92 E0 ;Reset Extruder | |||
# move z axis | |||
G1 Z2.0 F3000 ;Move Z Axis up | |||
# move to prime position | |||
G1 X20 Y20 Z0.28 F5000.0 ;Move to start position | |||
G1 X20 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line | |||
G1 X22 Y200.0 Z0.28 F5000.0 ;Move to side a little | |||
G1 X22 Y40 Z0.28 F1500.0 E30 ;Draw the second line | |||
G92 E0 ;Reset Extruder | |||
G1 Z2.0 F3000 ;Move Z Axis up | |||
[gcode_macro UNLOAD] | |||
gcode: | |||
G28 | |||
CENTER | |||
M109 S220 T0 ## heat extruder and wait | |||
M83 | |||
G1 E-50 F300 | |||
G1 E-50 F300 | |||
TURN_OFF_HEATERS | |||
G92 E0 ;Reset Extruder | |||
# Filament change | |||
[gcode_macro M600] | |||
gcode: | |||
PAUSE_MACRO | |||
UNLOAD | |||
[gcode_macro CASELIGHT_OFF] | |||
gcode = | |||
_LIGHTS R=0 G=0 B=0 | |||
{action_respond_info("Caselight off")} | |||
[gcode_macro CASELIGHT_ON] | |||
gcode = | |||
_LIGHTS R=1 G=1 B=0.5 | |||
{action_respond_info("Caselight on")} | |||
[gcode_macro CASELIGHT_DIM] | |||
gcode = | |||
_LIGHTS R=0.25 G=0.25 B=0.1 | |||
{action_respond_info("Caselight 50%")} | |||
[gcode_macro _LIGHTS] | |||
gcode: | |||
# Index 1 = display, Index 2 and 3 = Knob | |||
{% set R = params.R|default(1) %} | |||
{% set G = params.R|default(1) %} | |||
{% set B= params.R|default(1) %} | |||
SET_LED LED=caselight RED={R} GREEN={G} BLUE={B} | |||
SET_LED LED=fysetc_mini12864 RED=0 GREEN=0 BLUE=0 INDEX=1 TRANSMIT=0 | |||
SET_LED LED=fysetc_mini12864 RED={R} GREEN={G} BLUE={B} INDEX=2 TRANSMIT=0 | |||
SET_LED LED=fysetc_mini12864 RED={R} GREEN={G} BLUE={B} INDEX=3 | |||
[gcode_macro CLEAN_NOZZLE] | |||
variable_start_x: 280 | |||
variable_start_y: 296 | |||
variable_start_z: 3 | |||
variable_wipe_dist: -50 | |||
variable_wipe_qty: 10 | |||
variable_wipe_spd: 200 | |||
variable_raise_distance: 30 | |||
gcode: | |||
{% if "xyz" not in printer.toolhead.homed_axes %} | |||
G28 | |||
{% endif %} | |||
G90 ; absolute positioning | |||
## Move nozzle to start position | |||
G1 X{start_x} Y{start_y} F6000 | |||
G1 Z{start_z} F1500 | |||
## Wipe nozzle | |||
{% for wipes in range(1, (wipe_qty + 1)) %} | |||
G1 X{start_x + wipe_dist} F{wipe_spd * 60} | |||
G1 X{start_x} F{wipe_spd * 60} | |||
{% endfor %} | |||
## Raise nozzle | |||
G1 Z{raise_distance} | |||
[gcode_macro ZUP] | |||
gcode: | |||
SET_GCODE_OFFSET Z_ADJUST=0.01 MOVE=1 | |||
[gcode_macro ZDOWN] | |||
gcode: | |||
SET_GCODE_OFFSET Z_ADJUST=-0.01 MOVE=1 | |||
##################################################################### | |||
# Display Menu definition # | |||
##################################################################### | |||
[menu __main __control __caselightonoff] | |||
type: input | |||
enable: {'output_pin caselight' in printer} | |||
name: Lights: {'ON ' if menu.input else 'OFF'} | |||
input: {printer['output_pin caselight'].value} | |||
input_min: 0 | |||
input_max: 1 | |||
input_step: 1 | |||
gcode: | |||
{% if menu.input %} | |||
_CASELIGHT_ON | |||
{% else %} | |||
_CASELIGHT_OFF | |||
{% endif %} | |||
## Thermistor Types | |||
## "EPCOS 100K B57560G104F" | |||
## "ATC Semitec 104GT-2" | |||
## "NTC 100K beta 3950" | |||
## "Honeywell 100K 135-104LAG-J01" | |||
## "NTC 100K MGB18-104F39050L32" (Keenovo Heater Pad) | |||
## "AD595" | |||
## "PT100 INA826" | |||
# | #*# <---------------------- SAVE_CONFIG ----------------------> | ||
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. | |||
#*# | |||
#*# [heater_bed] | |||
#*# control = pid | |||
#*# pid_kp = 36.483 | |||
#*# pid_ki = 1.871 | |||
#*# pid_kd = 177.854 | |||
#*# | |||
#*# [extruder] | |||
#*# control = pid | |||
#*# pid_kp = 26.692 | |||
#*# pid_ki = 1.648 | |||
#*# pid_kd = 108.103 | |||
#*# | |||
#*# [probe] | |||
#*# z_offset = -0.970 | |||
</pre> | </pre> | ||
Latest revision as of 03:34, 4 June 2024
Parts
FYSETC Spider Controller
Reference
Bootloader Setup
Installation of the bootloader/firmware is a little confusing and I initially thought I had a bad board. I haven't been able to install bootloader or firmware without shorting the BOOT0 pins to force DFU mode. Here's the general process:
- Install jumper on BT0 pins and power on
- Launch STM32CubeProgrammer, select USB, and Connect
- Click the Erasing and Programming tab, and then:
- Pick the Bootloader_FYSETC_SPIDER.hex bootloader from the FYSETC Spider GitHub Repo
- Select Verify programming and Full Chip Erase
- Click Start Programm..
- Next install the firmware (previously compiled)
- Uncheck the Full chip erase checkbox
- Choose the firmware. After compiling, it can generally be found in the <<install path>>firmware/Marlin/.pio/build/FYSETC_S6_8000
- IMPORTANT: Change the Start addr.. to 0x08008000. For some reason the bootloader now looks for the firmware at the 8000 location vs the default 0x08000000
- Click Start Programm... to write the firmware
- Remove the BT0 pin and restart
Firmware (Klipper) Configuration
[include mainsail.cfg]
# This file contains common pin mappings for the Fysetc Spider board.
# To use this config, the firmware should be compiled for the STM32F446.
# When calling "menuconfig", enable "extra low-level configuration setup"
# and select the "12MHz crystal" as clock reference
# For flashing, write the compiled klipper.bin to memory location 0x08000000
# See docs/Config_Reference.md for a description of parameters.
## Voron Design VORON2 250/300/350mm Spider TMC2209 UART config
## *** THINGS TO CHANGE/CHECK: ***
## MCU paths [mcu] section
## Thermistor types [extruder] and [heater_bed] sections - See 'sensor types' list at end of file
## Z Endstop Switch location [safe_z_home] section
## Homing end position [gcode_macro G32] section
## Z Endstop Switch offset for Z0 [stepper_z] section
## Probe points [quad_gantry_level] section
## Min & Max gantry corner postions [quad_gantry_level] section
## PID tune [extruder] and [heater_bed] sections
## Fine tune E steps [extruder] section
[mcu]
## Uncomment below if you're using the Raspberry uart0 to communicate with Spider
#restart_method: command
## You need to select 'Communication interface' to USB in 'make menuconfig'
## when you compile Klipper for Spider
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_1E0048001050563046363120-if00
## If you want to use the Raspberry uart0 to communicate with Spider,
## you need to select 'Communication interface' to 'Serial (on USART1 PA10/PA9)'
## in 'make menuconfig' when you compile klipper and set the serial as below
##--------------------------------------------------------------------
#serial: /dev/ttyAMA0
##--------------------------------------------------------------------
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 5000 #Max 4000
max_z_velocity: 30 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 8.0
#####################################################################
# X/Y Stepper Settings
#####################################################################
[stepper_x]
## Connected to X-MOT (B Motor)
step_pin: PE11
dir_pin: PE10
enable_pin: !PE9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: ^PB14
position_min: 0
##--------------------------------------------------------------------
## Uncomment below for 225050mm build
#position_endstop: 250
#position_max: 250
## Uncomment for 300mm build
position_endstop: 300
position_max: 300
## Uncomment for 350mm build
#position_endstop: 350
#position_max: 350
##--------------------------------------------------------------------
homing_speed: 50 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PE7
interpolate: True
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_y]
## Connected to Y-MOT (A Motor)
step_pin: PD8
dir_pin: PB12
enable_pin: !PD9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: ^PB13
position_min: 0
##--------------------------------------------------------------------
## Uncomment for 250mm build
#position_endstop: 250
#position_max: 250
## Uncomment for 300mm build
position_endstop: 300
position_max: 300
## Uncomment for 350mm build
#position_endstop: 350
#position_max: 350
##--------------------------------------------------------------------
homing_speed: 50 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PE15
interpolate: True
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Z Stepper Settings
#####################################################################
## In Z-MOT Position
## Z0 Stepper - Front Left
[stepper_z]
step_pin: PD14
dir_pin: PD13
enable_pin: !PD15
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## In Z- Position
# pretap
# endstop_pin: ^PA0 (pretap)
endstop_pin: probe:z_virtual_endstop
## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
## (+) value = endstop above Z0, (-) value = endstop below
## Increasing position_endstop brings nozzle closer to the bed
## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
#position_endstop: -0.5
##--------------------------------------------------------------------
## Uncomment below for 250mm build
position_max: 170
## Uncomment below for 300mm build
#position_max: 290
## Uncomment below for 350mm build
#position_max: 340
##--------------------------------------------------------------------
position_min: -5
homing_speed: 10
second_homing_speed: 3
homing_retract_dist: 3
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PD10
uart_address: 0
interpolate: True
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
## In E1-MOT Position
## Z1 Stepper - Rear Left
[stepper_z1]
step_pin: PE6
dir_pin: !PC13
enable_pin: !PE5
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z1]
uart_pin: PC14
interpolate: True
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
## In E2-MOT Position
## Z2 Stepper - Rear Right
[stepper_z2]
step_pin: PE2
dir_pin: PE4
enable_pin: !PE3
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z2]
uart_pin: PC15
interpolate: true
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
## In E3-MOT Position
## Z3 Stepper - Front Right
[stepper_z3]
step_pin: PD12
dir_pin: !PC4
enable_pin: !PE8
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
[tmc2209 stepper_z3]
uart_pin: PA15
interpolate: true
run_current: 0.7
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Extruder
#####################################################################
## In E0-MOT Position
[extruder]
step_pin: PD5
dir_pin: !PD6
enable_pin: !PD4
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point
rotation_distance: 22.5078095278 #Bondtech 5mm Drive Gears
## Update Gear Ratio depending on your Extruder Type
## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
## Use 80:20 for M4, M3.1
gear_ratio: 50:17 #BMG Gear Ratio
microsteps: 16
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
## In E0 OUT Position
heater_pin: PB15
## Validate the following thermistor type to make sure it is correct
sensor_type: ATC Semitec 104GT-2
sensor_pin: PC0 # TE0 Position
min_temp: 10
max_temp: 270
max_power: 1.0
min_extrude_temp: 170
max_extrude_cross_section: 50.0
#control = pid
#pid_kp = 26.213
#pid_ki = 1.304
#pid_kd = 131.721
## Try to keep pressure_advance below 1.0
pressure_advance: 0.05
## Default is 0.040, leave stock
pressure_advance_smooth_time: 0.040
## In E0-MOT Position
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 extruder]
uart_pin: PD7
interpolate: false
run_current: 0.6
# hold_current: 0.2
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Bed Heater
#####################################################################
[heater_bed]
## SSR Pin - In BED OUT position
heater_pin: PB4
sensor_type: Generic 3950
sensor_pin: PC3 # TB Position
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.6
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
#####################################################################
# Probe
#####################################################################
[probe]
## Inductive Probe - If you use this section , please comment the [bltouch] section
## This probe is not used for Z height, only Quad Gantry Leveling
## In Z+ position
## If your probe is NC instead of NO, add change pin to ^PA3
pin: ^PA3
x_offset: 0
# pretap
#y_offset: 25.0
y_offset: 0
#z_offset: 0
speed: 20.0
samples: 2
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.01
samples_tolerance_retries: 4
activate_gcode:
{% set PROBE_TEMP = 150 %}
{% set MAX_TEMP = PROBE_TEMP + 5 %}
{% set ACTUAL_TEMP = printer.extruder.temperature %}
{% set TARGET_TEMP = printer.extruder.target %}
{% if TARGET_TEMP > PROBE_TEMP %}
{ action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
M109 S{ PROBE_TEMP }
{% else %}
# Temperature target is already low enough, but nozzle may still be too hot.
{% if ACTUAL_TEMP > MAX_TEMP %}
{ action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
{% endif %}
{% endif %}
#####################################################################
# Bltouch
#####################################################################
#[bltouch]
## Bltouch - If you use this section , please comment the [probe] section
## More infomation at : https://www.klipper3d.org/BLTouch.html
## This bltouch is not used for Z height, only Quad Gantry Leveling
## In Z+ Position
#sensor_pin: PA0
## In Y+ Position
#control_pin: PA2
#x_offset: 0
#y_offset: 25.0
#z_offset: 0
#speed: 10.0
#samples: 3
#samples_result: median
#sample_retract_dist: 3.0
#samples_tolerance: 0.006
#samples_tolerance_retries: 3
#####################################################################
# Fan Control
#####################################################################
## bpopp: swapped PB0 for PB3 because I burned up PB0 with short
[heater_fan hotend_fan]
## Hotend Fan - FAN0 Connector
pin: PB3
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0
[fan]
## Print Cooling Fan - FAN1 Connector
pin: PB1
max_power: 0.4
kick_start_time: 0.5
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
# off_below: 0.10
[heater_fan controller_fan]
## Controller fan - FAN2 Connector
pin: PB2
kick_start_time: 0.5
heater: heater_bed
heater_temp: 45.0
fan_speed: .3
#[heater_fan exhaust_fan]
## Exhaust fan - In E2 OUT Positon
#pin: PB3
#max_power: 1.0
#shutdown_speed: 0.0
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0
#####################################################################
# LED Control
#####################################################################
# Chamber Lighting - In 5V-RGB Position
# [neopixel caselight ]
# pin: PD3
# chain_count: 15
# color_order: RGB
# initial_RED: 1.0
# initial_GREEN: 1.0
# initial_BLUE: 1.0
[neopixel caselight]
pin: PD3
chain_count: 35
color_order: RGB
initial_RED: 1
initial_GREEN: 1
initial_BLUE: 1
#[output_pin caselight ]
# Chamber Lighting - In 5V-RGB Position
#pin: PD3
#pwm: true
#shutdown_value: 0
#value: 1.0
#cycle_time: 0.01
#####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
[idle_timeout]
timeout: 1800
[safe_z_home]
## XY Location of the Z Endstop Switch
## Update -10,-10 to the XY coordinates of your endstop pin
## (such as 157,305) after going through Z Endstop Pin
## Location Definition step.
# pretap
# home_xy_position:205,300
home_xy_position:150,150
speed:100
z_hop:10
[quad_gantry_level]
## Use QUAD_GANTRY_LEVEL to level a gantry.
## Min & Max gantry corners - measure from nozzle at MIN (0,0) and
## MAX (250, 250), (300,300), or (350,350) depending on your printer size
## to respective belt positions
#--------------------------------------------------------------------
## Gantry Corners for 250mm Build
## Uncomment for 250mm build
#gantry_corners:
# -60,-10
# 310, 320
#points:
# 50,25
# 50,175
# 200,175
# 200,25
## Gantry Corners for 300mm Build
## Uncomment for 300mm build
gantry_corners:
-60,-10
360,370
points:
50,25
50,275
250,275
250,25
## Gantry Corners for 350mm Build
## Uncomment for 350mm build
#gantry_corners:
# -60,-10
# 410,420
## Probe points
#points:
# 50,25
# 50,275
# 300,275
# 300,25
#--------------------------------------------------------------------
speed: 150
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.009
max_adjust: 10
#####################################################################
# Displays
#####################################################################
#--------------------------------------------------------------------
[display]
# mini12864 LCD Display
lcd_type: uc1701
cs_pin: PC11
a0_pin: PD2
rst_pin: PC10
encoder_pins: ^PC6,^PC7
click_pin: ^!PA8
contrast: 63
#spi_bus: spi1
spi_software_mosi_pin: PA7
spi_software_miso_pin: PA6
spi_software_sclk_pin: PA5
[neopixel fysetc_mini12864]
# To control Neopixel RGB in mini12864 display
pin: PC12
chain_count: 3
initial_RED: 0.1
initial_GREEN: 0.5
initial_BLUE: 0.0
color_order: RGB
# Set RGB values on boot up for each Neopixel.
# Index 1 = display, Index 2 and 3 = Knob
[delayed_gcode setdisplayneopixel]
initial_duration: 1
gcode:
SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3
#--------------------------------------------------------------------
#####################################################################
# Macros
#####################################################################
[verify_heater extruder]
#max_error: 120
# The maximum "cumulative temperature error" before raising an
# error. Smaller values result in stricter checking and larger
# values allow for more time before an error is reported.
# Specifically, the temperature is inspected once a second and if it
# is close to the target temperature then an internal "error
# counter" is reset; otherwise, if the temperature is below the
# target range then the counter is increased by the amount the
# reported temperature differs from that range. Should the counter
# exceed this "max_error" then an error is raised. The default is
# 120.
#check_gain_time: 40
# This controls heater verification during initial heating. Smaller
# values result in stricter checking and larger values allow for
# more time before an error is reported. Specifically, during
# initial heating, as long as the heater increases in temperature
# within this time frame (specified in seconds) then the internal
# "error counter" is reset. The default is 20 seconds for extruders
# and 60 seconds for heater_bed.
#hysteresis: 5
# The maximum temperature difference (in Celsius) to a target
# temperature that is considered in range of the target. This
# controls the max_error range check. It is rare to customize this
# value. The default is 5.
#heating_gain: 2
# The minimum temperature (in Celsius) that the heater must increase
# by during the check_gain_time check. It is rare to customize this
# value. The default is 2.
#####################################################################
# Macros
#####################################################################
[gcode_macro G32]
gcode:
BED_MESH_CLEAR
G28
QUAD_GANTRY_LEVEL
G28
## Uncomment for for your size printer:
#--------------------------------------------------------------------
## Uncomment for 250mm build
#G0 X125 Y125 Z30 F3600
## Uncomment for 300 build
# CENTER
## Uncomment for 350mm build
#G0 X175 Y175 Z30 F3600
#--------------------------------------------------------------------
[gcode_macro _PRINT_START]
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
{% set BED_TEMP = params.BED|default(70)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER|default(220)|float %}
CASELIGHT_ON
# M104 S150
M140 S{BED_TEMP}
CLEAN_NOZZLE
G32 ; home all axes
M109 S{EXTRUDER_TEMP}
M190 S{BED_TEMP}
_PRIME_LINE
[gcode_macro _PRINT_END]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-1.0 F3600 ; retract filament
G91 ; relative positioning
G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing
TURN_OFF_HEATERS
M107 ; turn off fan
G1 Z2 F3000 ; move nozzle up 2mm
G90 ; absolute positioning
G0 X150 Y300 F3600 ; park nozzle at rear
CASELIGHT_OFF
#BED_MESH_CLEAR
[gcode_macro CENTER]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
G0 X150 Y150 Z50 F5000
[gcode_macro _PRIME_LINE]
gcode:
M117 Prime Line
G92 E0 ;Reset Extruder
# move z axis
G1 Z2.0 F3000 ;Move Z Axis up
# move to prime position
G1 X20 Y20 Z0.28 F5000.0 ;Move to start position
G1 X20 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line
G1 X22 Y200.0 Z0.28 F5000.0 ;Move to side a little
G1 X22 Y40 Z0.28 F1500.0 E30 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F3000 ;Move Z Axis up
[gcode_macro UNLOAD]
gcode:
G28
CENTER
M109 S220 T0 ## heat extruder and wait
M83
G1 E-50 F300
G1 E-50 F300
TURN_OFF_HEATERS
G92 E0 ;Reset Extruder
# Filament change
[gcode_macro M600]
gcode:
PAUSE_MACRO
UNLOAD
[gcode_macro CASELIGHT_OFF]
gcode =
_LIGHTS R=0 G=0 B=0
{action_respond_info("Caselight off")}
[gcode_macro CASELIGHT_ON]
gcode =
_LIGHTS R=1 G=1 B=0.5
{action_respond_info("Caselight on")}
[gcode_macro CASELIGHT_DIM]
gcode =
_LIGHTS R=0.25 G=0.25 B=0.1
{action_respond_info("Caselight 50%")}
[gcode_macro _LIGHTS]
gcode:
# Index 1 = display, Index 2 and 3 = Knob
{% set R = params.R|default(1) %}
{% set G = params.R|default(1) %}
{% set B= params.R|default(1) %}
SET_LED LED=caselight RED={R} GREEN={G} BLUE={B}
SET_LED LED=fysetc_mini12864 RED=0 GREEN=0 BLUE=0 INDEX=1 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED={R} GREEN={G} BLUE={B} INDEX=2 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED={R} GREEN={G} BLUE={B} INDEX=3
[gcode_macro CLEAN_NOZZLE]
variable_start_x: 280
variable_start_y: 296
variable_start_z: 3
variable_wipe_dist: -50
variable_wipe_qty: 10
variable_wipe_spd: 200
variable_raise_distance: 30
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
G90 ; absolute positioning
## Move nozzle to start position
G1 X{start_x} Y{start_y} F6000
G1 Z{start_z} F1500
## Wipe nozzle
{% for wipes in range(1, (wipe_qty + 1)) %}
G1 X{start_x + wipe_dist} F{wipe_spd * 60}
G1 X{start_x} F{wipe_spd * 60}
{% endfor %}
## Raise nozzle
G1 Z{raise_distance}
[gcode_macro ZUP]
gcode:
SET_GCODE_OFFSET Z_ADJUST=0.01 MOVE=1
[gcode_macro ZDOWN]
gcode:
SET_GCODE_OFFSET Z_ADJUST=-0.01 MOVE=1
#####################################################################
# Display Menu definition #
#####################################################################
[menu __main __control __caselightonoff]
type: input
enable: {'output_pin caselight' in printer}
name: Lights: {'ON ' if menu.input else 'OFF'}
input: {printer['output_pin caselight'].value}
input_min: 0
input_max: 1
input_step: 1
gcode:
{% if menu.input %}
_CASELIGHT_ON
{% else %}
_CASELIGHT_OFF
{% endif %}
## Thermistor Types
## "EPCOS 100K B57560G104F"
## "ATC Semitec 104GT-2"
## "NTC 100K beta 3950"
## "Honeywell 100K 135-104LAG-J01"
## "NTC 100K MGB18-104F39050L32" (Keenovo Heater Pad)
## "AD595"
## "PT100 INA826"
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 36.483
#*# pid_ki = 1.871
#*# pid_kd = 177.854
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 26.692
#*# pid_ki = 1.648
#*# pid_kd = 108.103
#*#
#*# [probe]
#*# z_offset = -0.970